In today’s rapidly evolving mobile landscape, ensuring the quality and reliability of mobile applications is paramount. As the number of mobile devices and platforms continues to grow, manual testing alone becomes increasingly challenging. This is where mobile QA automation steps in, offering a powerful solution to streamline testing processes, improve efficiency, and enhance overall product quality. By leveraging automation tools, frameworks, and techniques specifically designed for mobile applications, organizations can effectively validate their mobile software across diverse devices, operating systems, and scenarios. We’re sitting down with two of Perficient’s mobile QA automation experts to discuss how to answer your frequently asked questions about getting started with QA automation.
Meet Perficient’s Mobile QA Automation Experts
Heena Grover is a lead technical consultant in Perficient’s mobile solutions group. She has over 15 years of experience working with mobile QA and managing QA automation teams.
Abhigna Bheemu is a lead technical consultant in Perficient’s mobile solutions group. She has over 13 years of experience with mobile development and has worked with QA automation for 5 years.
Frequently Asked Questions about Mobile QA Automation
I’m interested in setting up QA automation for my Flutter iOS and Android mobile apps, how do I get started?
Heena: First, it is important to have a deep understanding of the project requirements and the capabilities of your development team.
Abhigna: If you’re still in the design phase, you will want to start with the wire frames, design a framework reference the Mobile QA Automation Cheat Sheet.
Glossary of QA Automation Operations
- Test Case – Collection of steps to test application features
- Test Script – Test Case coded in specified programming language for solution
- Test Suite – Collection of Test Cases
- Test Case Repository – Collection of object identifiers
- Test Execution – Using a tool to run Test Cases or a Test Suite
- Open Source – Publicly available source code available for possible modification and redistribution
- Code-Based – Writing code explicitly using Selenium, Cypress, or any other tool for testing
- Code-Less – Drag and drop UI interface and possibly BDD language to write tests in English
- Cloud-based – Any software program or application that’s stored, managed, and available through the cloud accessible via authentication credentials
Mobile QA Automation Cheat Sheet
Step | Tool |
---|---|
1. Develop a relationship and meeting cadence with your Product Owner, Business Analyst and Dev team | |
2. List out feature candidates for QA Automation Test Cases on regular basis | |
3. Do a Proof of Concept to determine tools and framework to assess compatibility with the mobile app | |
4. Select the programming language | Java |
JavaScript | |
C# | |
Python | |
5. Select the Framework | Cucumber |
Page Object Model (POM) | |
Data Driven Framework | |
6. Cloud Platforms for Device Emulation, Testing and Reporting | BrowserStack |
SauceLabs | |
Perfecto | |
AWS Device Farm | |
pCloudy | |
7. Install tools and external libraries for the programming language and framework choices above |
8. Select the Tools – There are a number of options that can suit your needs whether it’s open source or closed/cloud-based
I have a MacBook, will I need additional hardware to set this up?
Abhigna: No, you don’t need additional hardware.
Heena: Mobile automation is more reliable and covers cases for iOS and Android on a MacBook, so you don’t need additional hardware.
Will I need to learn any specific coding techniques to write test cases?
Heena: Once you have decided what language you’re going to use with the framework you definitely need to understand the basics and you need to learn how to use that language. There are so many languages in the market, so if you are starting from scratch and you’re just building your career in automation there are many options available. Reference the Cheat Sheet.
Abhigna: You have options between Code-Based and Code-Less tools, depends on project preference and resource availability.
Do accessibility identifiers make automation easier?
Abhigna: Yes, the accessibility identifiers are the thing we use to uniquely identify an object. So if identifiers are good, automation will go smoothly.
Heena: Basically, you don’t have to overuse the XPath (the locator of an element on an app page) so it is better to use accessibility identifiers.
What is the best way to track accessibility identifiers?
Abhigna: We create and maintain an object repository (Spreadsheet, Class files, Constants files) based on the framework we design. This helps automation engineers to understand rules for how to create and reuse these identifiers.
Heena: We can put these into user stories as new features are developed. If we have a solid framework in place then each story should have these checks. QA engineers can create a YAML file which will server as a living document.
How do I get the best results with automated test runs?
Abhigna: You’ll get the best results when integrated with the developers’ pipeline and with every build executed. If you integrate with the pipeline as soon as the developer pushes the build to QA, the scripts will trigger and generate results.
Heena: If you know you have pipelines ready and we have all our test suites set up in a way that we know when they will run, this is the best practice. The benefit of this is that if one test fails it does not fail all of the test cases. There are multiple ways to do test runs in automation and get the maximum results. I’d also recommend dividing test cases into multiple threads to test out specific features or flows to allow for more flexibility.
Can I leverage a Cloud Platform and what are my options?
Abhigna: There are number of options that can integrate with our framework to leverage the device emulation and reporting features. Integration instructions are available in any cloud platform site. Please refer to the Cheat Sheet.
Heena: It’s important to include a Cloud Platform. You can’t always rely on a physical device. If you want your automated pipelines to run on repository commits, Cloud is required.
What kind of reports are available?
Abhigna: Based on the framework we select, we can generate CSV, XLS, XML or HTML reports automatically, but we can always alter them to suit our needs.
Heena: The reports will be pass fail with the test case titles and reason for failures. For example, you have a suite of 10 Test Scenarios. Reports can give you granular information about each test and show why it passed or failed.
What factors impact cost?
Abhigna: The cost depends on tools, resources and timelines.
Heena: We will also want to consider what we want to include in the reports because each feature has an additional cost. For example, we want a report of a past run, and if you want to add which scenarios failed, and you want to add logs, that will drive up the cost.
Are there any free tools I can leverage?
Abhigna: There are a lot of free tools available, and most people are efficiently using them.
We generally use the following:
Heena: I agree, the tools Abhigna mentioned are the standard industry toolset.
What happens to test executions if I have to re-platform?
Abhigna: You can reuse test executions and test cases if you decide to re-platform. The coding will be the same, but the object identifiers will differ. You could build a repository for them and write a framework to select the appropriate objects so you don’t need to re-write scripts. If you plan the initial setup properly, then everything will go smoothly.
Heena: You can classify your identifiers whether you’re using a web identifier or native identifier. It all depends on what your developer is plugging into. For example, if they’re using native code from iOS they will need to use a native identifier and you can define that in your code.
What resources can I review to get more information on QA automation?
Heena: There are many QA resources available:
Abhigna: There are some great videos and learning materials: