We are living in a mobile-first world. It dominates the world, when there are over 10.37 billion mobile connections worldwide, which is even higher than the global population. This number will only increase in the upcoming years. Mobile testing is therefore more critical than ever to accommodate for the ever-rising bar for mobile app quality.
This article is written to help testers of any level and expertise to get started with mobile testing. Here are the items we are going to include:
1. What is Mobile Application Testing?
2. Why Mobile Testing?
3. Types of Mobile Testing
4. Manual Mobile Testing
5. Automated Mobile Testing
6. The Mobile Testing Process
7. Mobile Testing Best Practices
Let’s start with the basic question.
Mobile testing is a comprehensive process that evaluates a mobile app's functionality, user experience, security measures, performance under various conditions, and more.
Let’s use Flappy Bird - a one-hit-wonder mobile game - as an example of the process of mobile testing. In Flappy Bird, the player guides a bird through an endless series of SuperMario-esque pipes by tapping on the screen to flap its wings.
We all know that it is a notoriously difficult game, but that will not be our focus in this article. Despite its simple mechanism, this indie game still needs to be tested before releasing to Google Play and AppStore. Imagine you are the developer - Dong Nguyen. You would have done these steps to test this mobile application:
Read More: Performance Testing vs. Load Testing: A Complete Guide
That is mobile app testing in action. Flappy Bird is a simple game, so all of those steps can be done manually. However, for the more complex mobile apps, manual testing would be a huge challenge.
For example, Facebook would need automation testing to cover all of the necessary test cases. For the Login page alone, there would have been hundreds of different scenarios to consider.
Read More: 100+ Test Cases For The Login Page That You Will Need
Mobiles are diverse. There are 4 major reasons why we need mobile testing:
Not all mobiles are born equal. Some have 480x800 screen resolution, some have 720x1280, some have 1080x1920. You can check the screen dimensions of the recent iPhone generations in this table. Such diversity is great for users but turns out to be a challenge for testers since the UI can break if mobile responsiveness best practices are not followed.
Model | Display Size | Dimensions (mm) |
iPhone 14 Pro Max | 6.7in | 160.7 x 77.6 x 7.85 |
iPhone 14 Pro | 6.1in | 147.46 x 71.45 x 7.85 |
iPhone 14 Plus | 6.7in | 160.8 x 78.1 x 7.8 |
iPhone 14 | 6.1in | 146.7 x 71.5 x 7.8 |
iPhone SE 3 | 4.7in | 67.3 x 138.4 x 7.3 |
iPhone 13 Pro Max | 6.7in | 160.8 x 78.1 x 7.4 |
iPhone 13 Pro | 6.1in | 146.7 x 71.5 x 7.4 |
iPhone 13 | 6.1in | 146.7 x 71.5 x 7.4 |
iPhone 13 Mini | 5.4in | 131.5 x 64.2 x 7.4 |
iPhone 12 Pro Max | 6.7in | 160.8 x 78.1 x 7.4 |
iPhone 12 Pro | 6.1in | 146.7 x 71.5 x 7.4 |
iPhone 12 | 6.1in | 146.7 x 71.5 x 7.4 |
User experience is key to a winning mobile app. With approximately 52,000 mobile apps released on Android alone every month, it is hard to stand out. Good UX is a must-have, and testing plays a role in shipping that. One single bug creating friction in the process of using the app is more than enough to turn users away.
Security & privacy should always be considered. As your app grows in popularity, so does the risk of cyberattacks. Applications for sensitive industries, including Finance, Healthcare, Insurance, or even eCommerce, require an even higher standard for security and privacy.
All of the above translates into a competitive advantage. If you are dedicated to making an application that will make storms, you’d better have all of those boxes checked. With rigorous mobile testing in place, it is entirely possible.
There are many mobile testing types to check off the list:
Read More: 15 Different Types of QA Testing
There is also performance testing where we check how well a device with certain specifications can handle the app, and of course, security testing to identify vulnerabilities of attacks. QA teams usually define what types they’ll do during the planning phase.
After that, we need to choose the approach to execute those tests: either manual or automated.
Let’s analyze the pros and cons of each approach
The Good
The Bad
The Best Practices
Of course, it does not mean you should just ditch manual testing altogether. A practical testing strategy is to combine both: have a little bit of manual testing to discover bugs, and automate it once it becomes repetitive.
The Good
The Bad
Step 1. Choose which test cases to do manually and which to automate
The ideal approach is to blend manual testing with automation testing i.e. a hybrid approach to get the best of both worlds. This phase is known as the Test Planning phase. These are the main criteria to decide if a certain test case is suitable for automation:
It is recommended to have all of those test cases listed in a test case management system. This is where they are categorized, with specific tags assigned to each, and columns dedicated to types of taxonomy, as you can see here in Katalon TestOps
Step 2. Choose the suitable framework/tool
When it comes to mobile testing, you have a lot of options to go with:
Put simply, go with a framework if you have a team of experienced devs and developers. Having a tool is beneficial for teams of any technical expertise. If you’re just switching from manual to automated testing, the simplicity that comes with a tool can speed up the process a lot. If you have an experienced team, a tool boosts efficiency and allows your team to get the best of both worlds.
Read More: Top 10 Mobile Testing Tools Your Team Will Love
Step 3. Choose your testing environment
Step 4. Think about test case management (TCM)
Done right, TCM does wonders for the entire project.
If you went with the manual approach, make sure to have a test case management system in place. A simple spreadsheet works well for a small team. For more advanced needs, you may want a ticket-based task management system like Jira or a dedicated test management tool like TestRail.
Such systems help QA teams track what test cases are being executed, note down their results, and from that generate detailed reports. The downside? It makes test case management a siloed process, without any connection stages to other stages.
If you go with the automated approach, you can incorporate test case management into the testing process. This means from the very moment you write a test case, its taxonomy should have been simultaneously updated in a dedicated test case management system. This system should also update test results after each successful execution, creating a streamlined process.
Read More: A Complete Guide To Test Case Management
Step 5. Write your test cases
This is when the real work begins.
If you choose to use a framework, read through the documentation and familiarize yourself with the syntax. Here are the Espresso docs and the XCUItest doc.
Let’s talk about Espresso. The power is its rich set of view matchers and actions to interact with UI elements. Essentially these view matchers allow developers to locate UI elements based on their attributes. There are also “Actions” to help testers simulate actions like click, text, swipes, etc.
Here you can see we use “ViewMatchers.withId” to choose the Username field, then perform the Action of typeText and to which we assign the “username” value. After that, we once again use the ViewMatchers to find the Login button ID and perform a Click action. It is really simple and straightforward.
@Test
public void testLoginSuccess() {
// Type username and password
Espresso.onView(ViewMatchers.withId(R.id.editTextUsername)).perform(ViewActions.typeText("username"));
Espresso.onView(ViewMatchers.withId(R.id.editTextPassword)).perform(ViewActions.typeText("password"));
// Click on the login button
Espresso.onView(ViewMatchers.withId(R.id.buttonLogin)).perform(ViewActions.click());
Let’s see how that’s done with a tool. In Katalon Studio, the process is even simpler. To start, let’s download it.
Download and Witness The Power of Katalon
Launch it, and go to File > New > Project to create your first test project. The cool thing about testing in Katalon Studio is that you can test anything, from Web and API, to mobile apps and desktop apps. There are keywords ready for you to use for any AUT. Let’s choose Mobile since we are doing Mobile Testing.
Once you have your project created, it is time to create a new Test Case by clicking on the “+” button on the navigation bar.
You now have hundreds of keywords to simulate mobile interactions.
The mechanism is similar to that of Espresso and XCUITest, but you don’t have to write as much code. You have the list of keywords ready for you to choose from, and you can set the values for them as if you’re filling in a form. Talking about simplicity!
Even better, you don’t need to write anything. Just activate Recorder mode, choose your device and start interacting with the system as you would like a manual tester. Katalon records all of your actions and turns them into a functional test script, without you having to code anything.
Step 6. Execute and create reports
Once you have created the tests, it is time to execute. On the navigation bar, there is the “Run” button, and you can see the list of options available. For Android & iOS specifically, you have to configure the SDK with Katalon to gain access to its core functionality.
You can see Katalon Studio in action here:
Want more best practices? Watch a webinar from our Product Support specialists filled with insightful tips for mobile testing & web testing here: