Joey McAllister: A lot of applications can now connect with third-party applications on a device. When you’re testing your applications, what are some ways to factor that in?
Jonathan Kohl: One of the things I’ve found when testing mobile apps is “interruptions and interactions”—push notifications, for example. You may be working with something that’s business critical, and a push notification telling you the latest score or a weather change pops up and causes problems.
What’s more fascinating is when applications are written to optimize. One of my friends told me about a problem he ran into. He got a brand new phone, and it would heat up in his pocket and just about burn his leg when his battery was dying. The phone heating up means there are more processes being used and probably contention going on. What he found was that two applications had different optimization algorithms. When the battery was dying, one application would say, “I’m going to turn WiFi off to optimize.” The other application running at the same time said, “I’m going to turn WiFi on to optimize, because wireless broadband takes more battery.” They were in conflict, and they would just go crazy. They’d burn up the cycles on the phone, and these devices aren’t very good with dissipating heat.
It’s vital to have an understanding of how these applications might work. You can’t predict those kinds of things, and that’s why it’s important to try things under different lighting effects, under different battery power, different types of network connections—weak connections, strong connections, changing between connections. One of the biggest issues with web applications is that they’re huge. They may eat up my data plan if I’m traveling, but they also take a lot of processing power to display.
It’s a fascinating thing to find these weird errors when you’re using the application in conjunction with other things. You can use some heuristics, like trying to starve resources. How many apps can I fire up before this thing starts to slow down? Do I know that this particular activity—say, lots of animation and gesturing with a game—tends to wear down battery life? One thing that’s really important is just having awareness of how your device works and being able to create conditions like low battery or poor network connection.
Joey McAllister: Do you have anything specific that you would like to share about what you're working on or what you’ll be presenting at STARWEST 2012?
Jonathan Kohl: I’m going to self-publish a book on testing mobile applications, and I’m working hard on my mobile applications testing course with SQE Training.
As for STAR, I just want to give people a bit of an insight into some of the characteristics that you might see when you’re testing these things—some of the opportunities and challenges. There’s a lot of fun, and it’s kind of given me a shot to the arm with my testing work, because it’s just neat to have fun with these applications and get paid to do it. When people are doing exercises in my course, there’s a lot of laughter. People are having fun. “I can do this? This is allowed? I can get up and move around, and I can wave things around and test the sensors?”
I just want to give people a bit of an insight, because it is really growing and it’s going to get bigger. I see there being a lot more opportunities for people next year where they’ll have an app thrown in front of them. What do I do? Where do I start? I’m trying to blaze a trail for people so they can learn from my mistakes and experience and have some structure.