In the previous post, we discussed the basic definition and types of mobile app testing. Today’s post will focus on common problems and strategies in mobile app testing. As earlier stated, mobile app testing is a necessary process but it can also be tedious and tricky especially for those just starting out in app development. Some even skip this process entirely.
So aside from the issue of cost and time, there are other issues that an app developer can face in mobile app testing.
Common Problems in Mobile App Testing
Different mobile device types and sizes
About hundreds of millions of mobile devices were sold in the past few years. Apple alone launched more or less 51 mobile devices. Meanwhile, there are hundreds of brands under Android’s wing. Each of these brands already launched from 1-250 devices of varying sizes. According to DeviceAtlas’ Q4 2016 data, device fragmentation is still a major problem, with different countries favoring different brands and screen sizes.
Mobile operating platforms/systems
A lot of devices from the same brand run differing mobile OS. Sometimes, these devices run on different versions of the same mobile OS.
Mobile network operators
Depending on the source of the data, there are about 400-800 mobile network operators around the world. Arguably, the number of the network operators is not the main problem but the network technologies and infrastructure they are using. For example, some countries only have limited LTE coverage or use obscure networking standards. Another main issue is the location of the network. In order to fully test a specific operator network, you should be in an area where the network has service.
App types (native, web, or hybrid)
Different app types have different installation processes and functionality features to test, therefore, these apps are tested in different ways. Native apps are considered quite complex to test. A successful testing on one device doesn’t necessarily mean that the app will download, run, and successfully execute tasks on other devices. Web-based and hybrid apps are also not free of any testing problems.
Test method (emulator or real device)
You have three options: test on real devices, emulators, or use both. All options have their own advantages, disadvantages, and limitations. For instance, testing on real devices can be costly, time-consuming, and somehow chaotic. Emulators, on the other hand, can’t really emulate all the characteristics of a real device, especially when it comes to real-time behaviors.
It’s actually not difficult to look for mobile app testing automation tools. The problem is that there’s a lot of them. You need to consider if a particular tool is suited for the tests you want to conduct and if it is compatible with the device and OS you are testing for. These tools also use different test interfaces that are far from the real environment of the app.
Mobile App Testing Strategies
Do not discount the use of emulators. Emulators are actually quite useful and can save you a lot of time and money. You can select from three types of mobile app emulators:
- Browser Emulators – emulates mobile browsers
- Device Emulators – some device manufacturers provide their own emulators.
- Mobile OS Emulators – the Android SDK has a device emulator. Apple and Microsoft also offer emulators for their respective devices.
Mobile device selection
It’s almost impossible to test for all devices available, especially with Android devices. You need to find a middle ground and this can be achieved by closely analyzing your target market. Then Select the most widely used device in the region and start from there.
Automate whenever it is possible or practical. This is to achieve consistent results. You can select from two types of automation tools: object-based testing tools and image-based testing tools. Object-based testing tools map the elements on a device’s screen identify them as objects. Image-based testing tools, on the other hand, use the device screen coordinates of elements to create automation scripts.
Implementation of beta testing
Beta testing allows you to cheaply test an app in real-time using real users, different devices, and local mobile network operators.
Cloud testing as mobile app testing solution
Cloud testing, especially device cloud can give you flexibility in performing real-time tests. You can conduct these tests remotely, no matter how complex and dissimilar the app you are testing.
Testing on supported mobile networks
Lastly, you can use tools that mimic mobile network infrastructure in order to test in the app’s supported network. These tools can simulate varying network speeds, bandwidths, and other connectivity conditions.
Next week will be the last installment of the “Mobile App Testing” series. We will discuss various automation tools.