everythingpossible - Fotolia
Automated testing gets expensive quickly, and the costs go up even more for mobile apps. To tabulate the costs of test automation, consider what it takes to write, run and maintain each test. When the software is a mobile app, that list of costs will be longer.
When you invest money in automated tests, you ideally get back higher confidence in software quality. It's often easy to test a web application via a headless browser, or even a testing tool that avoids the browser entirely. Mobile applications, however, require a simulator, emulator or a real device to run the mobile OS and the application. This necessity is what inherently makes the cost of any mobile test higher than that of a web test. Thus, QA engineers and developers should take extra care when they write and automate mobile app tests.
Additionally, there are greater risks when testing mobile applications. Mobile tests take longer to run than their equivalent browser-based tests, and there are many more devices with different physical capabilities to consider -- not to mention the critical need to secure these apps and data. Mind these challenges of mobile application testing and it will pay off, with customers who trust your apps.
Challenges of mobile application testing
- Test scope can get too bloated;
- Need to prioritize crucial users, devices; and
- Huge data security risks.
Let's cover three unique challenges around mobile application testing, and how you can overcome them.
Challenge 1: Unchecked test scope
First, avoid a bloated test suite. With too many tests for too many things, you're likely to see a rise in flaky tests that are unable to provide useful feedback to developers, testers and project stakeholders. Instead, limit the number of tests. Write tests that cover end-to-end scenarios of features and user stories, rather than smaller tests that only assess limited parts of a feature. Low-quantity, high-quality test suites mean reduced rework after features get updated, so team members spend less time writing tests. Fewer tests also means faster run time and lower costs.
Another reason to limit test suite scope is the negative exponential curve found in the relationship between the number of tests and the number of bugs found. Metrics like average percentage of faults detected examine those two numbers. The first tests you write find the majority of defects. To find additional bugs requires a disproportionate number of subsequent tests. So, an exhaustive automated test suite often provides less value than you would expect.
Challenge 2: No set of target personas
Mobile applications often provide a more immersive experience for the user than a web application. Built-in device capabilities, like a camera or fingerprint reader, give the user more tuned functionality. However, these features and the complexity they add create one of the big challenges of mobile application testing. Mobile applications require testing with native features across multiple possible user-owned devices.
Create and manage a reasonable set of device personas. Limiting this list helps development and testing teams cope with the expansive number of devices and capabilities in the mobile landscape. Device personas consist of the most representative user devices that will run the application. For example, choose the two latest generations of the Apple iPhone, but not every generation since it came out.
Identify user personas -- characters that represent an ideal user -- in addition to expected devices. With this user and device data, you can serve the customers who matter most.
Challenge 3: Overlooked data security
Security is a big challenge in mobile application testing. Mobile phones contain a litany of personal information. Consider how much we all fear losing a device -- it's not because of the cost of the phone, but because of the data it contains.
To adequately test a mobile application, focus on the security of application data, as well as any data sent over network traffic. The OWASP Mobile Security Testing Guide is one helpful resource to help QA engineers and developers understand the various aspects of application security.