Is QA testing boring? Recently, Google suggested this question to me. My answer? Absolutely not! We test new apps all the time, and every stage of product development sets different tasks and goals for us.
It’s good to have that in mind when you are a product owner or project manager. Surely, you want to reduce the time for task execution while keeping the high quality of the product.
When you understand what responsibilities a tester has, you can streamline the cooperation with QA specialists. As a result, the development of your product is faster. The chance that the final result will meet your and the user’s expectations increases as well.
About the quality assurance process
The development of a mobile or web app is a complex process that engages many people. What is the tester’s role in it?
Long story short – he or she checks if the product works correctly and whether it meets the client’s requirements. You can find more details in our article about the types of QA tests.
Here, I want to explain what the tester’s work looks like at different stages of the app development process. The tasks are different, the tools are different. We even need a different kind of information.
Stage 1. Preparations
In the initial phase, the team takes part in meetings with the client. It’s the best time to discuss their expectations, basic assumptions, and the most important features. The good practice is to invite testers to such meetings. It enables them to find out what clients need and get to know the main purposes of the project.
It’s important because the tester’s work doesn’t end with checking the app. We also conduct many other activities that allow us to make sure the product is of high quality. We get familiar with the specifics of the customer’s business, review the documentation, and give tips that improve usability.
Tester’s job, at this stage, is to create the plan for tests. In order to do this, we need to:
- Formulate the goals of tests
- Define their scope (write down what will be tested)
- Recommend the best way of conducting tests (e.g., we need to decide whether exploration itself is enough or whether we need to conduct functional tests and regressions as well)
- Analyze what limitations might come up for different testing environments
- Schedule the tests
Useful tools: Jira, UxPin/Zeplin, TestRail
Stage 2. App development: coding and testing
Once we have established all the organizational issues, coding begins. Testers check the quality of the code on an ongoing basis. At the beginning of this stage, we mostly run functional tests. As the name suggests, they are related to functionalities. Their goal could be, for example, checking if customers can add a product to the cart. Testers also compare the views of the app with UI designs.
We conduct tests using physical devices (such as smartphones, tablets). They are differentiated by brand or farm (e.g., BitBar, Sauce Labs). As a result of these activities, we report the detected bugs.
We run additional types of tests soon before the launch of the app:
- Performance tests – involve checking the speed, stability, and response time
- Compatibility tests – involve checking if the product works the same on different platforms
This is also a time when we clarify the requirements. Every change and difference in performance must be verified and discussed.
What is our main goal? We ensure the high quality of the app and take care of its efficiency. Thanks to tests, we can detect bugs in code earlier. It allows software developers to react faster and fix them in less time, so the overall cost is lower.
Useful tools: UxPin/Zeplin, Jira, TestRail, Bitbar/Sauce Labs, TestFlight, Bitrise/AppTester, tools for following requests: Chucker, Wormholy, console
Stage 3. Launch of MVP
When the product launch draws near, we move on to acceptance tests. We check if the app works as it should according to the client’s requirements or product owner. Apart from that, we make sure that bugs from the past don’t reappear. Our team must also check if there has been a crash that prevents the next version from being published. At this point, a tool called TestRail comes in handy. You can find test scenarios in it and the description of expected results.
The more people check the app, the better. That’s why short before the release date, it’s best to share it with a limited number of users outside of the development team. They are so-called, beta testers. You can define what percentage of people should have access to updates (for example, 10% of users). It gives you an opportunity to receive feedback regarding the latest improvements and features. As a result, we can make the app more transparent and implement changes to make it easier to use.
If such tests give a positive result and there is nothing to fix anymore, the app must be verified by Apple App Store and Google Play Store. It’s a condition that needs to be fulfilled if you want to see the product in stores. Once this stage is successfully completed, the app becomes publicly available. From now on, customers can download and install it.
Useful tools: TestFlight / App Tester
Stage 4. Maintenance (continuous development)
Further development of the app involves adding new functionalities. It is also time for improvements based on user feedback, analytics reports, marketing plans, etc.
As with the first version of the app, testers run functional and acceptance tests, and regressions. Next, the product in its improved version goes to beta testers and only after that, it can appear in stores.
Tools in the app testing process
Earlier, I mentioned various tools that QA testers use. There are many of them. Among other things, they help us check software and report problems.
Here, I present three tools that I find particularly important in a tester’s work.
Most people who work in IT use Jira or have at least heard about it. In the case of testers, this tool is mainly for reporting bugs and new functionalities that need to be implemented. Jira helps us plan and coordinate tasks related to app development. Every team member sees the columns with tasks. This way both software developers and testers know when they should start their work.
A table in Jira.
TestRail facilitates conducting full tests before the app is released to the store. Every project is divided into main functionalities, whereas every element and action are described according to the scheme:
- A step that the user must take (on the left)
- Result (on the right)
View from the TestRail tool.
If the result of the step was the same as the one described on the right, then the test case can be accepted. We mark it as passed. However, if we detect some discrepancies, we must mark it as failed. Then, we test the entire case once again and add this bug to Jira, so developers know what they must fix.
Of course, there’s no need to fix all bugs immediately. Each and every one of them is given a proper priority tag. It enables others to see how important it is and which problems require attention the most.
It’s a device farm. How does it work? During app testing, we choose a specific device and operating system (e.g., iPhone 11 iOS 15.5 or Pixel 4 Android 12). Next, we add APK or IPA file (depending on the system) and begin tests. BitBar is very helpful because companies have limited resources for actual devices. Remote work has also contributed to the popularization of such solutions. What is more, BitBar gives us the ability to record or automate certain steps.
The main screen in BitBar is where we choose types of tests.
Uploading the app in BitBar (APK or IPA file) and the start of tests.
App development consists of many stages and requires using many tools. All this ensures that the app that users get is of high quality. As a result, both the client and target group are satisfied. I hope that by presenting this testing process, you will know what the role of the testers is and why they should participate in the project from the very beginning.