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
- Documentation
- UI Design and verification
- Proxy Debugging and Networking
- Test Automation
- Performance Testing
- Using IDE for application testing

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.

Same way we did with OS versions we should do with device versions, here is statistic for iOS devices and same for Android

Documentation

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.

Test Automation

When it comes to UI test automation, you have few options:

For iOS only you can use built in XCode test automation tool UIAutomation, basically you can write your own JavaScript or record and play back.

For Android Selendroid, they also recommend iOS-Driver for iOS applications.

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.

Performance Testing

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.

Test mobile applications with XCode
Testing mobile applications with XCode
View Comments

Leave a Comment

Use markdown or basic HTML and be nice.