How to test mobile applications, strategy and tools
By: Slav Kurochkin
A number of mobile applications are growing, there are more and more companies asking for mobile applications testing experience. It requires knowledge of some tools and it's different from web browser testing. Here are my thoughts on testing strategy and tools.
Identify OS and device versions
when you start to test mobile application first thing to do is identify operating systems and versions you going to test against.
When you select OS versions to develop, test and support good practice in mobile development is to cover 80-90% users, currently, it is not that difficult to do for example in android we can see that if our application supporting versions starting from 4.1, than we covering 90% of the market share, you can see similar statistic for iOS as well.
Once you get all required data you would need take a look at iOS human interface guidelines aka HIG and Android UI guide. Apple kind of painful in-app reviews and it is not like Android if you got rejected it will take few more days to get app out, so it would be good to know average time for app review, usually it is increase during holidays such as Christmas time, because Apple closing office and it is slowing review process.
UI Design and verification
While developing manual test cases good practice would add designs to your spreadsheet or whatever tool you use, so you can visually identify and assert changes.
Proxy Debugging and Networking
In case you need proxy debugging while you send HTTP requests, Charles is awesome, helping a lot to figure out who screwing you up (frontend or backend). You can also map different environments, for example getting production data and post it to the testing environment, which is kind of cool when your data something what affecting app performance. You can also perform simple stress test with Charles, by repeating HTTP calls.
From time to time, you would need to fake different internet connection, mobile data, wi-fi etc. Charles giving you this opportunity.
When it comes to UI test automation, you have few options:
If you want to create a framework and use it against multiple OS versions than I think Appium would be a right tool, the only thing is to have two UI maps one for Android another for iOS, so based on configuration testing framework will pick up the right map. For Android, you can link layout XML and read the date from it, which will allow you to be up to date with dev versions and changes.
For mobile performance testing I been successfully using JMeter it will require some configuration but once it done, there is entire world opening for you.
Using IDE for application testing
Well, there is no secret that mobile devices are less on memory, CPU and over all performance. IDEs (XCode and Android Studio) giving you lots of insides, such as memory usage, CPU usage, you can identify if there are memory leaks, and try to crash your application while monitoring which action eating memory a lot.