Mobile app testing strategy and tool selection
Pruthvidhar Pendyala
Technical project consultant @ ETS GCC | Expertise in Agile Project Management, Scrum Master, Product/Stakeholder Management, Presales and Solutioning, Project Delivery, Budgeting/Cost Management, Risk Management.
Following are the list of key factors to be considered for a successful mobile app testing strategy that will ensure that out testing activities are closely aligned with the overall customer expectations, business goals, and industry best practices.
1. Selection of target device:
Target devices for testing a mobile application should balance the need to use a representative sample of the expected device population with the need to optimize duration and cost of testing. It’s quite a tough decision to make because the device we are going to choose must cover maximum number of target customers for our application.
i. Simulators vs. Physical Devices:
Use of device simulators can be highly effective in the early stages of product development when features are under development. Simulators are useful to familiarize the test team with various application features. Simulators can be effectively used for testing basic application functionality.
This does not mean that you should bypass the use of physical devices altogether. Testing on physical devices is important to understand the application behavior in real-life scenarios.
Testing on physical devices is essential in understanding application behavior such as touch response and user experience. Stable, defect-free (based on simulator testing) features can then be tested on physical devices. Device usage can be optimized by distributing test cases across various types of devices. Note that this strategy requires that the test tools being used support testing with simulators as well as devices.
ii.Beta Testing of your Mobile:
Beta testing of mobile app can be a very effective method of mobile app testing that gives us access to real-world testers, real devices, actual networks, and wide geographic coverage.
It gives us a chance to test your mobile app for factors like:
- Network Density
- How the app behaves on specific devices
- How real-world users interact with the app
- Different battery states on the devices
- Multiple networks (Wi-Fi, 4G, 3G, etc.)
iii. Mobile Application at Cloud:
Cloud computing provides a web-based mobile testing environment where applications can be deployed, tested, and managed. Besides providing on-demand access to variety of mobile devices, cloud testing environment helps minimize the project costs increases ROI.
In general, cloud application testing deliver following benefits:
- Offer highly regulated and pre-configured architectures, thus drastically reducing the defects associated with erroneous configuration of test environments. This improves the quality of tests to a great extent.
- Saves business from setting up on premise test environments which are time consuming and cause project delays. Besides, there’s no need to invest in advanced testing tools, server configurations, licensing, and testing resources. The result is – reduced time-to-market and increased testing efficiency.
- Cloud testing environments have the capability to support complex apps, which solves the problems associated with testing dynamic, complex, and disparate apps in an in-house environment.
iv. Network Connectivity:
Testing mobile apps in real network environments is essential to get the real picture, to assess the behavior of the app in real mobile networks.
Several network simulation tools are available to test mobile apps in various network speeds, bandwidths variations, etc., which can add great value to the testing activities. In addition to testing the app in a full internet connectivity scenario, other factors such as limited connectivity, connectivity with high latency, no connectivity, and metered connectivity should also be taken into account.
v.Manual vs. Automated Testing:
Automated testing provides a mechanism to consistently repeat a test procedure and verify application results. It can be effective both for regression testing as well for development. However, automation requires a significant initial investment and the ROI is realized when the same automated test is executed multiple times with negligible incremental cost. Therefore, it is important to judiciously select candidate test cases for automation.
The following guidelines are recommended for automation of mobile application testing
- Features that are expected to change in the near future (especially in terms of UI flow) should be avoided for automation.
- Some test cases may be extremely expensive to automate due to technical challenges or unique use cases (e.g. handling real time data from multiple sources), negating the benefits of automation. Such test cases should be avoided for automation.
- Every possible test case should be automated unless it meets the above criteria for avoiding automation.
To achieve the maximum benefit from automation, all automatable test cases from a release should be automated before the next release.
Key use cases for automation in mobile application testing are –
- Verifying application compatibility when a new iOS, Android (or other applicable) OS version is released.
- Verifying backward compatibility when the application is upgraded.
Selecting a test automation tool
The following table lists key criterion which should be considered when selecting an automation tool.
Conclusion
Despite the challenges in mobile application testing, careful selection of target devices, connectivity options, and tools that maximize automation can ensure a cost effective mobile testing process.
An optimal selection of target devices and using a mix of simulators and physical devices can maximize test coverage without the need to test every feature on each device.
The use of Wi-Fi networks for the majority of testing in combination with network simulation tools can reduce the cost and complexity of testing on various cellular networks. Maximizing automation is an effective way of expediting the testing process and reducing long term testing costs.
Factors such as support for applicable mobile platforms, script reusability and total cost of ownership should be taken into account when selecting automation tools. Combining the solutions to mobile specific aspects of application testing with traditional best practices and testing processes can effectively address the challenges of mobile application testing.