Given our worlds are shrinking to a point where it can literally fit into our palms, there are a lot of companies that are investing in developing products that are mobile centric. Hence automation is gaining more importance as these companies want to move faster! But the misconceptions still prevail.
Lets address them:
Automate 100% of all test cases: Automation is essential to move faster but we need to be cognizant of what we want to automate. There’s always the effort involved in designing and developing the test framework, apart from maintaining it. So, one should take into account the ROI of every test case that needs to be automated. For example: if a specific test case requires a tool to integrate with the photo gallery of your android app and currently your test framework doesn’t support it, then the question one should ask themselves is: “What is the impact of automating this test case”? Or in other words, “Is this a P0 test case?”
We test mobile apps, so we only care about the UI automation: Testing involves multiple layers. It can be anything from A/B testing, accessibility testing, API testing, integration testing, acceptance testing, performance testing, load testing, etc. Agreed that UI is the main component of mobile apps but it can’t function if other integrations don’t function properly. If your app is integrated with any hardware/wearable or if your app is integrated with the voice assistant then adding integration tests would help to ensure everything works seamlessly.
Automation should catch “all” bugs: When automated tests are run against a new feature branch and if it causes a crash on an unrelated screen, then this bug is labelled as a “regression” bug. The goal of automation is to help find these bugs and it cannot replace manual testing in its entirety.