Developing a mobile test automation scenario isn’t really that complicated. Developers and testers use a variety of commercial test automation frameworks or open-source tools such as Selenium and Appium to do automation. However, when trying to execute these tests on real devices or integrate them into an Agile or CI workflow, things can get a little complicated.
The Major Challenges Around Mobile Test Automation
The essence of developing test automation is to be able to use and re-use scripts many times across platforms and environments. Test automation should be as maintainable as possible, especially as new platforms and product features are released. Many organizations that develop test automation for their mobile apps face the following challenges:
- Executing the tests against a variety of real mobile devices.
- Executing these tests in parallel.
- Leveraging existing test code (re-usability) for new tests.
- Including real end-user environments and conditions (i.e., changing network conditions, low battery) in the tests.
- Overcoming unexpected interruptions (i.e., incoming calls, apps running in the background).
- Running these tests unattended overnight as part of a Jenkins CI job.
These are just a few of the challenges organizations we confront when trying to progress from older SDLC processes and meet faster releases and enhanced Dev > Build >Deploy > Test >Deploy cycles.
7 Mobile Test Automation Tips
Overcoming these challenges starts with few changes in the overall mobile app development and test processes.
Consider these seven recommendations for building sustainable unattended automation.
The key to mobile test automation is to start with a small number of test cases, automate those test cases, and assure that they are robust enough and can be executed both in parallel and unattended. Only then should you invest more and grow the test suite.
An important question to ask at the start is: What should I be automating? Organizations often do not choose the right tests to automate, resulting in lost development time, weak ROI, and an over-reliance on manual testing.