Mobile Apps Testing: Sample Test Cases & Test Scenarios

โšก Smart Summary

Mobile application testing spans functional, performance, security, usability, compatibility and recoverability checks, and each type contributes a distinct set of sample test scenarios that teams reuse when validating a new build.

  • ๐Ÿ”˜ Functional first: Confirm mandatory fields, installation, start and stop behaviour, payments and navigation before anything else.
  • โ˜‘๏ธ Interruptions matter: Calls, messages and reboots must leave the application in a recoverable state.
  • โœ… Performance limits: Measure response time, battery drain, memory leaks and behaviour when the network switches.
  • ๐Ÿงช Security depth: Cover authentication, session expiry, certificate pinning, injection attacks and insecure local storage.
  • ๐Ÿ› ๏ธ Usability rules: Touch targets, consistent icons, readable text and a clear undo path decide whether the app feels fast.
  • ๐Ÿ“Š Device coverage: Screen sizes, resolutions and OS versions all change the result, so compatibility runs across a device matrix.

Mobile apps testing sample test cases and test scenarios

A frequent question from our learners is how to test mobile apps. Below are sample test scenarios and test cases for a mobile application.

You may execute some or all of these test cases based on your mobile testing requirements. The cases are organised by mobile testing type.

Functional Testing of Mobile Application

Functional testing of a mobile application is the process of testing the functionality of the app, including user interactions and the transactions a user might perform. Its purpose is to ensure quality, meet the specified expectations, reduce the risk of errors and keep customers satisfied.

The various factors which are relevant in functional testing are:

  1. Type of application based upon the business functionality usages (banking, gaming, social or business)
  2. Target audience type (consumer, enterprise, education)
  3. Distribution channel which is used to spread the application (e.g. Apple App Store, Google Play, direct distribution)

Those factors decide how deep each area below goes, as the diagram shows.

Functional testing of a mobile application covering user interactions and transactions

The most fundamental test scenarios in functional testing can be considered as:

  1. To validate whether all the required mandatory fields are working as required.
  2. To validate that the mandatory fields are displayed on the screen in a distinctive way from the non-mandatory fields.
  3. To validate whether the application works as per requirement whenever the application starts or stops.
  4. To validate whether the application goes into minimized mode whenever there is an incoming phone call. To validate the same, use a second phone to call the device. This is the core of interrupt testing.
  5. To validate whether the phone is able to store, process and receive SMS whenever the app is running. To validate the same, use a second phone to send an SMS to the device being tested, on which the application under test is currently running.
  6. To validate that the device is able to perform the required multitasking whenever it is necessary to do so.
  7. To validate that the application allows necessary social network options such as sharing, posting and navigation.
  8. To validate that the application supports any payment gateway transaction such as Visa, Mastercard or PayPal as required by the application.
  9. To validate that the page scrolling scenarios are enabled in the application as necessary.
  10. To validate that the navigation between relevant modules in the application is as per the requirement.
  11. To validate that truncation errors are kept to an affordable limit.
  12. To validate that the user receives an appropriate error message such as โ€œNetwork error. Please try after some timeโ€ whenever there is a network error.
  13. To validate that the installed application enables other applications to perform satisfactorily, and that it does not eat into the memory of the other applications.
  14. To validate that the application resumes at the last operation in case of a hard reboot or system crash.
  15. To validate whether the installation of the application can be done smoothly provided the user has the necessary resources, and that it does not lead to any significant errors.
  16. To validate that the application performs auto start according to the requirements.
  17. To validate whether the application performs according to the requirement on all mobile network generations, that is 3G, 4G and 5G.
  18. To perform Regression Testing to uncover new software bugs in existing areas of a system after changes have been made to them. Also rerun previously performed tests to determine that the program behaviour has not changed due to the changes.
  19. To validate whether the application provides an available user guide for those who are not familiar with the app

Performance Testing Test Cases

Once features behave correctly, the question is whether they hold up under load.

The fundamental objective of this type of testing is to ensure that the application performs acceptably under certain performance requirements, such as access by a huge number of users or the removal of a key infrastructure part like a database server.

The general test scenarios for performance testing in a mobile application are:

  1. To determine whether the application performs as per the requirement under different load conditions.
  2. To determine whether the current network coverage is able to support the application at peak, average and minimum user levels.
  3. To determine whether the existing client-server configuration setup provides the required optimum performance level.
  4. To identify the various application and infrastructure bottlenecks which prevent the application from performing at the required acceptability levels.
  5. To validate whether the response time of the application is as per the requirements.
  6. To evaluate product and/or hardware to determine if it can handle projected load volumes.
  7. To evaluate whether the battery life can support the application under projected load volumes.
  8. To validate application performance when the network is changed to Wi-Fi from 4G/5G or vice versa.
  9. To validate that each of the required CPU cycles is optimised.
  10. To validate that battery consumption, memory leaks and resources such as GPS and camera performance are well within the required guidelines.
  11. To validate the application longevity whenever the user load is rigorous.
  12. To validate the network performance while moving around with the device.
  13. To validate the application performance when only intermittent phases of connectivity are available.

Security Testing Test Cases

Performance and security overlap: the local storage that speeds an app up is what an attacker reads first.

Security testing checks for a mobile application covering data, storage and network protection

The fundamental objective of security testing is to ensure that the applicationโ€™s data and networking security requirements are met as per guidelines.

The following are the most crucial areas for checking the security of mobile applications.

  1. To validate that the application is able to withstand any brute force attack, which is an automated process of trial and error used to guess a personโ€™s username, password or credit-card number.
  2. To validate that the application does not permit an attacker to access sensitive content or functionality without proper authentication.
  3. To validate that the application has a strong password protection system and that it does not permit an attacker to obtain, change or recover another userโ€™s password.
  4. To validate that the application does not suffer from insufficient session expiration.
  5. To identify the dynamic dependencies and take measures to prevent any attacker from accessing these vulnerabilities.
  6. To prevent SQL injection related attacks.
  7. To identify and recover from any unmanaged code scenarios.
  8. To ensure that the certificates are validated and to check whether the application implements certificate pinning.
  9. To protect the application and the network from denial of service attacks.
  10. To analyze the data storage and data validation requirements.
  11. To enable session management to prevent unauthorized users from accessing unsolicited information.
  12. To check if any cryptography code is broken and ensure that it is repaired.
  13. To validate that the business logic implementation is secured and not vulnerable to any attack from outside.
  14. To analyze file system interactions, determine any vulnerability and correct these problems.
  15. To validate the protocol handlers, for example by trying to reconfigure the default landing page for the application using a malicious iframe.
  16. To protect against malicious client side injections.
  17. To protect against malicious runtime injections.
  18. To investigate file caching and prevent any malicious possibilities from the same.
  19. To prevent insecure data storage in the keyboard cache of the applications.
  20. To investigate cookies and prevent any malicious deeds from the cookies.
  21. To provide regular audits for data protection analysis.
  22. To investigate custom created files and prevent any malicious deeds from the custom created files.
  23. To prevent buffer overflows and memory corruption cases.
  24. To analyze different data streams and prevent any vulnerabilities from these.

Usability Testing Test Cases

A secure app that nobody can operate still fails, so usability sits beside the technical checks.

Usability testing checks for touch targets, icons and readable text in a mobile application

The usability testing process of a mobile application is performed to produce a quick and easy application with fewer functions rather than a slow and difficult application with many features. The main objective is to end up with an easy-to-use, intuitive interface similar to the industry-accepted interfaces that are widely used.

  1. To ensure that the buttons have the required size and are suitable for big fingers.
  2. To ensure that the buttons are placed in the same section of the screen to avoid confusing the end users.
  3. To ensure that the icons are natural and consistent with the application.
  4. To ensure that buttons which have the same function also have the same colour.
  5. To ensure that the validation for the tapping zoom-in and zoom-out facilities is enabled.
  6. To ensure that the keyboard input can be minimized in an appropriate manner.
  7. To ensure that the application provides a method for going back or undoing an action, on touching the wrong item, within an acceptable duration.
  8. To ensure that the contextual menus are not overloaded, because they have to be used quickly.
  9. To ensure that the text is kept simple and clear so that it is visible to the users.
  10. To ensure that short sentences and paragraphs are readable to the end users.
  11. To ensure that the font size is big enough to be readable and not too big or too small.
  12. To validate that the application prompts the user whenever the user starts downloading a large amount of data which may not be conducive to application performance.
  13. To validate that the closing of the application is performed from different states and verify whether it re-opens in the same state.
  14. To ensure that all strings are converted into the appropriate languages whenever a language translation facility is available.
  15. To ensure that the application items are always synchronized according to the user actions.
  16. To ensure that the end user is provided with a user manual which helps the end user to understand and operate the application, in case they are not familiar with how it works

Usability testing is normally performed by manual users, since only human beings can understand the sensibility and comfort of other users.

Compatibility Testing Test Cases

The same build must behave identically on hardware the team may never have held.

Compatibility testing on mobile devices is performed because mobile devices have different sizes, resolutions, screens, versions and hardware, so the application should be tested across all the devices to ensure that it works as desired.

The following are the most prominent areas for compatibility testing.

  1. To validate that the user interface of the application matches the screen size of the device, and that no text or control is partially invisible or inaccessible.
  2. To ensure that the text is readable for all users of the application.
  3. To ensure that the call and alarm functionality is enabled whenever the application is running. The application is minimized or suspended on the event of a call, and whenever the call stops the application is resumed.

Recoverability Testing Test Cases

Recoverability testing covers crash recovery and transaction interruptions โ€” what the application does when the device, the battery or the connection gives out mid-transaction.

  1. Validation of the effective application recovery situation post unexpected interruption or crash scenarios.
  2. Verification of how the application handles a transaction during a power failure (that is, the battery dies or the device is shut down manually).
  3. The validation of the process where the connection is suspended and the system needs to re-establish it to recover the data directly affected by the suspended connection. Using the right mobile testing tools helps ensure a seamless recovery process.

Important Mobile Application Testing Checklist

A handful of checks cut across every category above and are easy to forget.

  1. Installation testing (whether the application can be installed in a reasonable amount of time and with the required criteria)
  2. Uninstallation testing (whether the application can be uninstalled in a reasonable amount of time and with the required criteria)
  3. Network test cases (validation of whether the network is performing under the required load, and whether the network is able to support all the necessary applications during the testing procedures)
  4. Check unmapped keys
  5. Check the application splash screen
  6. Continued keypad entry during interrupts and at other times, such as network issues
  7. Methods which deal with exiting the application
  8. Charger effect while an application is running in the background
  9. Low battery and high performance demand
  10. Removal of the battery while an application is running
  11. Consumption of battery by the application
  12. Check application side effects

FAQs

A scenario states what to verify in one line, such as โ€œverify loginโ€. A test case breaks that scenario into steps, data and an expected result. One scenario usually produces several cases.

Run the screen with TalkBack or VoiceOver, raise the system font to its largest setting, check colour contrast, and confirm every control has a label. Exercise dark mode on the same pass.

Switch the device locale and check translated strings, date, time, number and currency formats, right-to-left layouts, text that overflows its container after translation, and keyboard input in the target language.

Trigger each notification with the app in the foreground, in the background and fully closed. Confirm the payload renders, the deep link opens the right screen, and delivery works under battery-saver mode.

Models read requirements, user stories or a recorded session and draft candidate cases with steps and expected results. The output is a first draft that a tester must prune and confirm.

Yes. It drafts page objects, Appium locators and assertion blocks from a short comment describing the screen. Review each suggestion, because generated locators often reference elements that do not exist.

Use emulators for early functional passes because they are cheap and fast. Move battery, camera, sensor, network-switching and interrupt cases onto real hardware, since an emulator cannot reproduce those conditions faithfully.

Verify enrolment, a successful match, a failed match and the fallback to a passcode. For permissions, test grant, deny and later revoke from system settings, and confirm the app degrades gracefully.

Summarize this post with: