How to write Test Cases for Mobile Applications
By Sandra Felice, Community Contributor - August 18, 2022
Mobile Apps constitute the core of many businesses around the world; hence, it is essential to develop quality applications to meet the fast-paced and dynamic demands of the mobile technology industry. To develop quality apps, one must create smart and efficient Mobile App test cases that can uncover the issues that impact the user experience. Creating test cases is also essential in an Agile and continuous Software Development Life Cycle (SDLC) environment.
This guide details the different test cases for mobile application testing.
What is a Test Case?
Test Case is a detailed step-by-step instruction on how to perform certain tests on your system, software, or application. It is the first level action for the test execution and is derived from test scenarios. These are usually written by the QA team members.
In order to write a test case, one must have the requirements to derive inputs along with the test scenarios so that none of the features get missed out. Also, the test case template should be followed to maintain uniformity among the test cases. This makes it easy to report the defects and for regression testing in the future.
Test Case Template
A Test Case consists of the following fields:
- Test Case ID: This is a unique ID for a test case. Conventions are followed here. For example – TC_UI_1 indicates “User Interface Test Case #1”.
- Test Priority: Test priority can be low, medium, or high depending on the business requirements. This comes in handy while executing the tests.
- Module Name: The name of the module or sub-module being tested is specified here.
- Test Designed by: The name of the tester who designed the test.
- Test Designed date: The date when the test was designed.
- Test Executed by: The name of the tester who executed the test. This field is filled after the test execution.
- Test Execution date: The date when the test was executed.
- Test Title/Name: Test case title/name
- Test Summary/Description: Test objective
- Pre-condition: Any requirement that must be fulfilled before this test case is executed. It’s good to list all the pre-conditions to execute this test case successfully.
- Dependencies: Identify and determine dependencies on other test cases or requirements
- Test Steps: List all the test steps with details and in the order of test execution.
- Test Data: Input for the test case is defined here. You can provide different sets of data with the exact values to be used as input.
- Expected Result: Mention the expected result, including messages or errors that should appear on the screen.
- Post-Condition: State of the system after running this test case
- Actual Result: Actual result obtained after the test case execution is filled here.
- Status (Pass/Fail): If the actual result is not as expected, mark this field as Fail; otherwise, mark it as Pass.
- Notes/Questions/Comments: Special conditions to support the above test fields or any questions related to the test case can be mentioned here.
The following fields can be added if necessary:
- Defect ID/Link: For failed tests, including defect link or defect number can be mentioned here.
- Test Type/Keywords: Classifies tests based on different types – functional, usability, etc.
- Requirements: Requirements for which test case is written.
- References/Attachments: Used when the test scenarios are complex. Contains the actual path of the flow diagram or document.
- Automation: To track automation status and identify whether the test cases are automated or not.
Also Read: How to create Mobile Test Case Scenarios
Examples of a Mobile Test Case
Consider a sample business requirement – Ensure the user logs in to their Gmail Account. Let’s consider the test scenarios for an existing user.
- User Login with a valid username and password.
- User Login with an invalid username and invalid password.
- User Login with an invalid username and a valid password.
- User Login with a valid username and an invalid password.
All of the above test scenarios could be expanded into a set of positive and negative test cases. The first test scenario can lead to a positive test case, whereas the rest of the test scenarios lead to negative test cases.
Following is how the test case will look based on the first test scenario.
Important Test Cases for Mobile Applications
Let’s explore the primary test cases available for the different types of testing for Mobile Applications.
1. Functional Testing Test cases
The basic functionality of a mobile application is tested in Functional Testing. Some of the most fundamental ones are the follows:
- To verify whether the application behaves as expected whenever it starts/stops.
- To verify if all the mandatory fields work as expected.
- To verify if all the mandatory fields are displayed in a distinctive way.
- To verify whether the application goes into minimized mode at the time of interruptions such as incoming phone calls, notifications, etc.
- To verify whether the scroll function of the application works as expected.
- To verify if the page navigation between the different modules works as per the requirement.
- To verify whether the auto-logout or auto-login functionality is working as per the requirement.
- To verify whether the application can fulfill the multi-tasking requirement.
- To verify truncation errors and check if it’s crossing the allowed limit.
- To verify whether the application allows social media options such as navigation, sharing, posting, etc.
- To verify whether the application allows third-party integrations.
- To verify whether the application throws appropriate error messages in erroneous scenarios.
- To verify whether the application interrupts the functioning of other active applications in the background.
- To verify whether the application resumes at the last operation in case of a hard reboot or system crash.
- To verify whether the application provides an available user guide for those unfamiliar with the application.
2. Performance Testing Test cases
The basic performance of a mobile application, especially under certain performance requirements like access by many users, etc., is tested in Performance Testing. Some of the general test cases are as follows:
- To verify whether the application can handle the proposed load.
- To verify whether the application can perform as expected under various loads.
- To verify whether the application’s response time is as per the requirements.
- To identify the application and infrastructure bottlenecks that prevent the application from performing at the required acceptability levels.
- To verify the application performance under various network strengths – wifi, 2G/3G/4G, and other irregularities.
- To verify the application’s memory usage, leaks, CPU performance, camera performance, GPS, etc.
- To verify whether each CPU cycle is optimized as per the requirement.
- To verify how the application performs in a different client-server configuration.
- To verify the application longevity whenever the user load is rigorous.
3. Network Testing Test cases
Network testing helps in analyzing and testing the network to which our application is connected. Some of the general test cases are as follows:
- To verify whether the application behaves as expected when connected to networks of varied strength such as 2G, 3G, 4G, etc.
- To verify whether the application behaves as expected when connected to WIFi.
- To validate whether there is any packet loss between the source and the destination.
- To verify the latency of the application.
- To verify the application behavior when the network can be barely reached or is out of reach.
- To verify the behavior of the application once it’s been restarted.
4. Security Testing Test cases
Security testing ensures that the application’s data and networking-related security are met as per the guidelines. Some of the general test cases are as follows:
- To validate whether the application can withstand any brute force attack.
- To validate If the attacker can breach the application and access sensitive customer data.
- To verify if the application can defend against malicious injections on the client-side and during run time.
- To validate the dynamic dependencies and take measures to prevent any attacker from accessing these vulnerabilities.
- To verify if the application has a strong password protection system.
- To verify the session expiry time of the application.
- To verify if any cryptography code is broken and is repaired.
- To verify how well the application can keep up with SQL attacks.
- To verify if the certificates are validated.
- To validate whether the application can prevent memory corruption.
- To verify data stream vulnerabilities.
- To validate if the business logic implementation is secured.
- To verify the file system interactions and determine any vulnerability.
- To verify the cookies and prevent any malicious attacks.
- To provide regular audits for data protection.
5. Usability Testing Test cases
Mobile App Usability Testing ensures that we have an application that is easy to use and has industry-accepted interfaces. Some of the general test cases are as follows:
- To ensure that the buttons are of the right size.
- To ensure the right placement of the buttons.
- To ensure that the buttons with the same function have the same color.
- To ensure that the font size is readable.
- To validate the zoom-in and zoom-out functionalities.
- To ensure that the icons are consistent.
- To verify the navigation process and ensure it’s simple.
- To ensure that the application allows you to go back or undo an action.
- To ensure Text visibility.
- To ensure the right content across the app.
- To ensure the menu is easy and discoverable.
- To ensure Keyboard minimization and maximization.
6. Battery usage Testing Test cases
Some of the general test cases are as follows:
- To verify the overall energy consumption for the application.
- To verify the battery performance when the system is under heavy load.
- To verify the application behavior when the battery is low, and the application is at a high load.
- To verify the Battery usage leak.
- To verify how the new features impact battery usage.
7. Compatibility Testing Test cases
Compatibility testing is performed to check whether the application is compatible with the different mobile sizes, screens, etc. Some of the general test cases are as follows:
- To verify if the application is backward compatible.
- To verify if the UI is stable across various devices and OS versions.
- To ensure readability of the text across various devices and OS versions.
8. Localization Testing Test cases
Localization testing ensures that the mobile application delivers a flawless user experience in a specific locale per the targeted language and country. Some of the general test cases are as follows:
- To validate content accuracy.
- To validate the Time and date format.
- To ensure that the language is properly formatted.
- To ensure that the layout of the content is error-free.
- To ensure that the colors are appropriate across the application.
- To ensure that terminology is consistent across UI.
- To ensure currency is local equivalent.
- To verify text alignment, mirroring, etc.
- To ensure that the licenses and rules obey target region laws and regulations.
9. Recoverability Testing Test cases
Some of the general test cases are as follows:
- To validate the capability of the application to restore itself after a sudden crash.
- To verify the application behavior at the time of transaction interruptions.
- To verify how the application behaves at the time of power failure.
- To validate if the application re-establishes itself when the connection is suspended.
10. Regression Testing Test cases
Some of the general regression testing test cases are as follows:
- To verify how the new code changes are affecting the application.
- To verify whether the new functionality mutates the application.
- To verify if the existing functionality is in sync with the requirement.
With businesses investing more into mobile applications, testing them becomes more and more crucial, which can bring in many challenges. Hence, designing effective mobile testing scenarios and related test cases is advisable based on your mobile testing requirements.
No matter what your test cases are, you can run your tests using a real device cloud like BrowserStack for accurate results.