- July 21, 2016
- Posted by: InApp
- Category: Independent Software Testing
Mobile app testing is a completely different beast when compared with web application testing. The challenge of testing the mobile app across multiple mobile devices, each of which might be of different screen sizes and might be using a different operating system and on top of all; mobility related issues (ex. N/W, internet speed, etc) make mobile app testing tough.
Challenges of Mobile App testing:
1. N/W connectivity: There are hundreds of mobile operators globally. Even the technology used by these operators is not uniform. Some operators use CDMA, some use GSM, etc. Mobile app testing has to verify the functioning of the mobile app across these operators and technologies.
2. Mobile OS: In general it is difficult for the same mobile app to run on mobile OSs. Thus mobile apps are of different types: Native, Hybrid, Cross-platform, the web, etc. (to read about the different mobile app types read our blog: Cross-platform mobile app development – Truth vs Hype). Mobile app testing has to ensure all versions of the app across operating environment work without any glitches.
3. Mobile devices: There is a flood of the mobile device in the market. Thousands of manufacturers across the world and each of the manufacturers have many device models. Mobile app testing becomes a huge challenge in such an environment.
These are just a few of the unique challenges in Mobile App testing. In order to overcome these challenges and to make mobile app testing a success we should take care of the following 5 points:
5 Keys to Mobile App Testing Success
1. Do mobile app testing on the cloud
The cloud creates a mobile environment online on a simulator. To read about cloud computing read our blog: Cloud computing for small businesses & start-ups. This allows for a huge number of scenarios to be tested. Any other way of testing would have a limit on the number of scenarios which can be tested.
The cloud is able to create various operating environments virtually. The mobile app can then be installed on these environments and testing can be performed. The cloud also provides for an unlimited (scalable) amount of space for storing of testing data.
Most companies struggle because it is financially unfeasible to arrange for all the operating environments, devices, etc to be arranged physically. The cost of setting up such a lab is simply too huge. With the cloud, you can get operating environments on demand.
2. Choose a combination of Physical Devices & Emulators for Mobile app testing
As was briefly discussed in the earlier point, physically arranging all the devices is a huge cost. But the alternative of only using emulators is also not practical. Emulators are not always available for all the devices. So what is the solution to this conundrum?
Let’s first understand what an emulator is. An emulator is a software which allows for different environments to be created for the mobile app to be tested. There are many types of emulators:
1. Device emulator: The device manufacturers generally provide their own emulators. This is beneficial from their perspective. Device manufacturers generally want their device to support most mobile apps.
2. Browser emulator: We also have browser emulators. The purpose of browser emulators is to create the browsers virtually for mobile app testing.
3. Operating system emulators: There are many operating systems for mobiles. Amongst the various operating systems, the most popular ones are Android, iOS, and windows. There are emulators which mock the operating systems.
Though there is a wide variety of emulators available. It is just not possible to create all the combination of real-world scenarios on an emulator. Many OEMs, for example, bring in part of their own software to the operating system. The operating system might be android or iOS, but because this system has a combination of code from the OEM it may not be possible for the emulator to re-create this situation. Similarly, N/W conditions in the real world are so worried that it is again impossible to re-create them via an emulator.
Hence it is suggested to have a combination of emulators and physical devices for mobile app testing. Emulators are especially very useful in the initial stages of development of a mobile app. This proves very useful for software developers. Physical devices should be brought in at the later stages of development.
3. Develop special mobile-centric test cases
The test cases that are to be developed for testing of mobile apps should be specific for the mobile environment. Let me show some such situation which will likely happen only in a mobile environment:
1. Mobile handing off from one network to another: it can very easily happen that the mobile moves from the coverage area of a particular switching station to another. In this situation, it would be a change in connectivity or a temporary loss of connectivity. Mobile application should be robust enough to handle such a situation.
2. Mobile running low on battery: The mobile phone (especially today’s smartphones) uses a lot of battery. It should not happen that mobile app contributes to the battery usage dis-proportionately. Research has shown for example that the facebook app uses a lot of battery.
3. The memory is running very low: The mobile phone has a much smaller storage space and it is common of the memory to be very close to being utilized. The mobile app should ideally be able to handle a scenario in which it doesn’t have enough memory space.
These are just some of the mobile-centric scenarios. While doing mobile app testing is it paramount that all the mobile-centric scenarios be included as part of mobile app testing.
4. Automate your mobile app testing: The benefits of automation testing are numerous. Please read our blog: (benefits of automation testing). Ideally, all repeated test cases should be automated and only new ones should be tested manually the first time. Automation saves precious tester time which can be then utilized to increase the test coverage. It also reduces the dependency on human resources. Also, human error can be reduced by automation, leading to a more robust system.
5. Test the performance of your Mobile App: The mobile is a compact device. Also, mobile usage is very high compared to a personal computer or a laptop and it is in a not – work environment. As such the attention span of a person using a mobile phone is much lower. In such a situation performance of the mobile app should be uniform and of a high standard.
As already been explained earlier in the article there are many mobile-centric scenarios, which will eventually affect the performance of the mobile app and the mobile app testing should ensure that the app performs robustly in all situations.