There are a number of things to consider when automating your mobile app tests, but first and foremost is to decide which tests should be and can be automated. This means understanding the business goals that are most important to your organization, as well as the risks you want to manage and mitigate.
Mobile app testing is ultimately about managing risk, and the only way to do that is to align testing practices with the most critical business processes and goals you need to cover.
These mobile app test automation best practices will help you in whatever stage of the journey you find yourself on.
The success of automated testing is determined by your testing strategy: you must create a test automation plan that identifies the initial set of test cases that will serve as the groundwork for future tests and the testing tools you will use.
A test case or use case scenario is a simulated situation in which a user performs determinate actions when using a particular app. Some typical test cases can be automated, which is a good practice that can save money, time, and keep users happy.
Chances are, there’s already a set of tests you’re running manually as routine tests to check basic functionality on different devices and after every minor update. These tests likely represent the most basic, critical flows for your users. If broken, they would cause interruption to the user experience, and possibly to the flow of revenue to your bottom line.
These tests are a good start for test automation – they are executed repeatedly, and they need to be checked frequently. Ideally, you should execute these tests on every change to the application. However, running them manually at that rate can lead to errors, fatigue, carelessness, inattention, and forgetting steps. This makes the results unreliable and puts the release in jeopardy.
Don’t put the highest priority workflows at risk, and don’t let the talent of your testers be wasted on something an automated script can do better.
Scripting out easy-to-automate tests will have immediate, positive results for your ROI: by combining the highest-priority workflows with the tests that are also the simplest, you can not only reduce the maintenance burden of your test automation, but you can also show immediate, clear, and repeatable results every time your automation is executed.
Stay away from test cases that require complex logic, modeling sophisticated or unpredictable user behavior. These kinds of tests, while demonstrating a certain level of prowess, tend to be very difficult to maintain–or even understand.
The best automated test cases follow a very simple formula, with no branching or opportunity for variation:
Arrange the conditions or data that you need to examine
Act on the app in a way that exercises a particular, granular feature
Assert that the app behaved the way you need, to demonstrate that the test was successful
The best automation suite is one that will survive long after you stop working on it: by writing simple, predictable test cases, you ensure that the person who succeeds you will thank you for your thoughtfulness.
There’s no getting around the fact that, for the same person running the same test 7-10 times on different mobile devices for every release, it’s impossible to maintain the consistent, high level of focus and energy required.
The average manual test case has 20-25 written test steps, which require login information, data manipulation, a meticulous sequence of interactions, and finally judgment–where you decide whether the app did what it was supposed to do. By the end of the third or fourth iteration, your eyes start to glaze over and you lose focus. What if you miss something?
Manual testing is here to stay in many circumstances, but so many tests can be automated! It’s critical that you pick a test framework, then figure out how to scale it effectively. By automating the highest-value tests first, against the most important devices/platforms, removing the most amount of toil from a tester’s daily work, you will immediately start to see ROI on test automation.
Some tests cannot be performed manually. You might be able to perform them manually, the setup is impractical, the results are inscrutable, or the conditions of the test require unreasonable environmental conditions (e.g. distributed over a wide geographic area, bizarre database state, system outage you can’t control reliably, etc).
In these cases, the best practice is to find a way to simulate these conditions using API mocking, and then perform the smallest set of actions you can in order to reproduce the conditions. Once this is created, you can generally re-use the various components, and build a suite of end-to-end tests that help shed light on rare but potentially critical aspects of your system.
Performing these tests manually can’t be reproduced easily or frequently. Automation provides far better ROI, and in these cases isn’t generally all that much more difficult.
With today’s mobile device fragmentation, testing on as many devices as possible should be top priority. Before debuting your app on the App Store or Google Play, make sure the same test can be executed on multiple versions of the OS or device you’re able to target.
Apps generally behave similarly enough between the latest iPhone and the generation before, that you can write one script to cover both. In such cases, you should stretch out and try to go farther back to the oldest version of the device that is still in use by your customers. The same goes for iOS/Android versions, web browsers, and hardware manufacturers.
Related resource:How to Choose Mobile Devices for Testing
When teams don’t know what to test next, they frequently look at automating internal tools and processes, before exhausting opportunities to help guarantee a solid, delightful user experience.
Internal test automation can apply in certain high-risk situations, and it can help smooth out processes that ultimately help your users, but the better ROI comes from identifying, managing, and eliminating risk to your user experience–and to your bottom line–through the lens of your customers.
Do you think you’re completely covered? Talk to the Business Intelligence team to find out if users are using devices or browsers you didn’t know about. Find out if there are critical user flows you aren’t covering. Ask them what are the top 3-5 things they would automate if given a choice.
Above all, remember that without users, you don’t have a company. Be sure to examine every angle of user workflows before you divert focus onto internal apps, because for your users, every experience matters.
Automating mobile app testing is more important than ever: app updates have to be released faster to the market, making app development a continuous development process. Automated testing solutions like Sauce Labs, which can integrate with your preferred CI/CD tool, are designed to help you discover and fix bugs and issues at every stage of development, even in production.
Sauce Labs Mobile App Testing helps software development QA teams release better mobile apps to the market faster with extensive device and test coverage, streamlined beta app distribution, best-in-class error monitoring, and continuous feedback loops throughout your app development cycle. Ensure that your mobile apps work as they should in real-world scenarios, on any device, any browser, every time. Sign up for a Sauce Labs free trial today to start testing your mobile app in minutes.