In the world of continuous software development, mobile app developers are challenged to remain agile while consistently finding and eradicating user-critical bugs. A myriad of new devices, OS updates, and localization challenges make their jobs that much harder. Creating smart and efficient mobile app test cases help QA and dev teams uncover issues that impact the user experience.
Mobile app test case best practices
Mobile app testing requirements are largely dependent on the type of application under test. While there are many test case best practices to ponder, here are a few to consider when preparing a testing strategy, including:
- Determine the right combination of manual and automation testing.
- Create separate suites for manual test cases and automated test scripts as needed.
- Identify reusable automation scripts and modify them as required.
Related: Check out our nine-step checklist for creating a mobile app testing strategy.
Test cases versus test scenarios
Without test cases, it’s difficult to track, understand, and resolve quality issues. Especially if you’re using an agile and continuous Software Development Life Cycle (SDLC) to streamline the launch and deployment of your products.
Scenario testing helps mobile app developers understand the real use of mobile applications, ensuring that the end-to-end functionality of the application under test is working as expected. In scenario testing, QA teams use the software in real-world use cases… just as end-users would. Test scenarios are tied to user stories and cover a number of steps whereas test cases are usually single steps (to do something and check it).
Here are 9 mobile app test cases to consider while putting together your QA strategy.
1. Functional testing test cases
There are a lot of hands involved in creating a mobile app. These stakeholders may have different expectations. Functional tests determine if a mobile app is in compliance with these various requirements and uses. It examines and validates all functions, features, and competence of a product.
Twelve functional test case scenario questions:
- Is the application working as designed whenever it starts and stops?
- Does the app perform accordingly on various mobile and OS versions?
- Does the app behave accordingly when faced with external interruptions? (ie. receiving SMS, minimized during an incoming phone call, etc)
- Is the user able to download and install the app without issues?
- Is the device able to multitask as expected when the app is in use or running in the background?
- Can other applications perform satisfactorily once the app is installed?
- Are social network options such as sharing, posting, etc. working as required?
- Are mandatory fields working as required?
- Does the app support payment gateway transactions?
- Are page scrolling scenarios working as expected?
- Can you navigate between various modules as expected?
- Are appropriate error messages received as necessary?
There are two ways to run functional testing: scripted and exploratory.
Scripted test execution is just that – a structured, scripted activity where testers follow predetermined steps. This allows QA testers to compare actual results with expected ones.
These types of tests are usually confirmatory in nature, meaning you are confirming that the app can perform the intended function. Testers generally find more issues when they have more flexibility in the test design.
Exploratory testing investigates and discovers bugs and errors on the fly. It allows for testers to uncover software issues manually that are often unanticipated; where the QA team tests in a manner how most users may actually use the app.
Coined by Cem Kaner in 1984, exploratory testing “emphasizes the personal freedom and responsibility of the individual tester to continually optimize the quality of their work by treating test-related learning, test design, test execution, and test result interpretation as mutually supportive activities that run in parallel throughout the project.”
2. Performance testing test cases
The primary objective of performance testing is to ensure the performance and stability of your mobile application.
Eight performance test case scenarios questions:
- Can the app handle projected load volumes?
- What are the various mobile app and infrastructure bottlenecks preventing the app from performing as expected?
- Is the response time as expected?
- Are battery consumption, memory leaks, GPS, and camera performance within required guidelines?
- Is the current network coverage able to support the app at peak, average, and minimum user levels?
- Are there any performance issues if the network changes to/from WIFI and 2G/3G/4G?
- How does the app perform during intermittent phases of connectivity?
- Are existing client-server configurations providing the optimum performance level?
3. Battery usage test cases
While battery usage is a huge component of performance testing, mobile app developers must make it a top priority. Apps are becoming more demanding in terms of processing power, so when designing your mobile app testing strategy understand that battery-heavy mobile apps kill user experience.
Device hardware – including battery life – varies from model and manufacturer. As such, QA testing teams must have a variety of new and legacy devices at hand in their mobile device lab. Additionally, from a battery drain testing perspective, the test environment needs to replicate real-world uses including OS, network conditions (3G, 4G, Wifi, Roaming), and multitasking.
Seven battery usage test case scenarios to pay special attention to:
- Energy consumption of the mobile app
- User interface designs using intense graphics or result in unnecessarily high database queries
- The battery life can support the application to perform under projected load volumes
- Low battery and high-performance demands
- How the app performs if in use when the battery is removed
- Battery and data usage leaks
- New features and updates are not introducing new battery and data usage
4. Usability Testing Test Cases
The usability testing of mobile applications provides end-users with an easy-to-use and intuitive interface. This type of testing is usually performed manually, to make sure that the application is easy to use and meets the expectations of real-life users.
Nine usability test case scenarios ensure:
- Buttons are a user-friendly size.
- Buttons location, style, etc are consistent within the app.
- Icons are consistent within the application.
- Zoom in and out facilities work as expected.
- The keyboard can be minimized and maximized easily.
- Going back, undoing an action, or on touching the wrong item can easily be undone.
- Contextual menus are not overloaded.
- Verbiage is simple, clear, and easily visible.
- The end-user can easily find the help menu or user manual should they need.
5. Compatibility testing test cases
Compatibility testing is performed to safeguard against mobile application errors as devices have different OS, size, resolution, etc. It allows to determine that an app works consistently across various platforms and environments.
Six compatibility test case scenarios questions:
- Have you tested on the top mobile app testing devices and operating systems?
- How does the app work with varying parameters, such as bandwidth, operating speed, capacity, etc?
- Does the app work properly with various mobile browsers like Chrome, Safari, Firefox, Microsoft Edge, etc?
- Does the app’s user interface (UI) remain consistent, visible, and accessible on various screen sizes?
- Is the text readable for all users?
- Does the app work seamlessly across various configurations?
6. Security testing test cases
Security testing ensures that the application’s data and networking security requirements are met as per guidelines. It focuses on identifying possible security risks and vulnerabilities so that the application is not exploited and data is protected.
Twenty four security testing scenarios for mobile applications:
- Can the mobile app withstand any brute force attack to guess a person’s username, password, or credit card number?
- Does the app permit an attacker to access sensitive content or functionality without proper authentication? This includes making sure the communications with the backend are properly secured.
- Is there a strong password protection system within the mobile app?
- Verify dynamic dependencies.
- Measures taken to prevent attackers from accessing these vulnerabilities.
- What steps have been taken to prevent SQL injection related attacks?
- Identify and recover any unmanaged code scenarios.
- Ensure whether certificates are validated and if the app implements Certificate Pinning or not.
- Protect the application and the network from denial of service attacks.
- Analyze data storage and validation requirements.
- Create session management for preventing unauthorized users to access unsolicited information.
- Check to see if cryptography code is broken and repair what’s found.
- Are business logic implementations secured and not vulnerable to any attack from outside?
- Analyze file system interactions, determine any vulnerability, and correct these problems.
- What protocols are in place should hackers attempt to reconfigure the default landing page?
- Protect against malicious client-side injections.
- Protect against malicious runtime injections.
- Investigate and prevent any malicious possibilities from file caching.
- Protect against insecure data storage in the app’s keyboard cache.
- Investigate and prevent any malicious deeds from cookies.
- To provide regular audits for data protection analysis.
- Investigate and prevent any malicious deeds from custom created files.
- Prevent memory corruption cases.
- Analyze and prevent any vulnerabilities from different data streams.
Related: 8 mobile app security threats
7. Localization testing test cases
Localization testing ensures the mobile app delivers flawless user experience in a specific locale per the targeted language and country. It focuses on making sure that the app’s features and content are fully adapted to meet users’ needs in a particular location.
Because fully localized apps and websites outperform competitors, this is one test case that shouldn’t be overlooked. Partnering with a well-respected third-party with a global reach alleviates some of the stress and unknown variables when working with localization. For example, Testlio covers more than 100 countries and over 140 languages.
Ten localization testing scenarios for mobile applications:
- Localized content should be checked for accuracy. This should also include all validation or error messages that may arise.
- Language should be properly formatted. (ie. Arabic format of right to left, the Japanese writing style of LastName, FirstName, etc.)
- Terminology is consistent across UI.
- Time and date are properly formatted.
- Currency is the local equivalent.
- Colors are appropriate and convey the right message.
- Ensure license and rules obeying target region laws and regulations.
- Text content layout is error-free.
- Hyperlinks and hotkey functionality work as expected.
- Entry fields support special characters and are validated as necessary (ie. postal codes)
- Ensure the localized user interface has the same type of elements and numbers as the source product.
8. Recoverability testing test cases
Recovery testing is a non-functional testing technique that determines how quickly a mobile application can recover after experiencing a system crash or hardware failure.
Five recoverability testing scenarios questions:
- Does the app resume at the last operation in case of a hard reboot or system crash?
- What – if any – is causing crash recovery and transaction interruptions?
- How effective is the application recovery after an unexpected interruption or crash?
- How does the application handle a transaction during a power failure?
- What is the expected process when the app needs to recover data directly affected by a failed connection?
9. Regression testing test cases
QA and mobile app testing don’t end once an application is released. When an app is updated – even small changes can create unexpected problems. This is why regression testing is key.
The purpose of regression testing is to make sure that new code changes in software do not cause bugs or breaks.
Related: When to use regression testing
Four regression testing scenarios for mobile applications:
- Check any changes to existing functionality
- Check new changes implemented
- Check new features added
- Check for possible side effects after changes are launched
Creating your mobile app testing strategy
While it sounds daunting, these popular testing cases simply cannot be overlooked. As you build your step-by-step mobile testing strategy, make sure that it focuses on the right priorities.
Testlio can help you ensure exceptional customer experiences. Schedule a free demo today.