Recommended Free Tools
The most useful mobile app testing scenarios follow complete user tasks, then test how those tasks behave when the device, operating system, network, permissions, or user needs change. Start with the workflows that matter most to your app; add the conditions most likely to interrupt them; and select devices based on your supported configurations and audience. There is no universal checklist or minimum device matrix that fits every app.
Start with complete user tasks
List the important things a person can do in the app, from the screen where each task begins through its observable result. A screen-by-screen inventory helps you find controls and states, but a task-based scenario also reveals whether data survives navigation, an error, or a return to the app.
As an Amazon Associate I earn from qualifying purchases.
For each task, record four things:
- Starting state: For example, signed in or signed out, an empty list or one with existing items, and any relevant permission or network state.
- Action: The user’s actual sequence of taps, entries, selections, or gestures.
- Expected result: What appears or changes, including confirmation, saved data, or a clear error.
- State to preserve: What should remain correct after navigating away, retrying, or resuming the app.
Android Developers’ core app-quality checklist recommends navigating screens, dialogs, settings, and user flows. Apple’s UI-testing guidance likewise describes checking direct interactions and workflows, such as entering data in a form and verifying the result. Use those principles to build scenarios for your own features rather than assuming an app has features it may not have.
Functional cases to add to each applicable task
- Valid, invalid, missing, and boundary-value input.
- Empty, loading, success, and error states.
- Back navigation, repeated taps, and returning to a previous screen.
- Retry and recovery after a failed step, without losing prior valid work or duplicating an action.
- Editing or content creation, gameplay, media playback, or in-app purchases only when the app supports them.
Test interruptions and resuming the app
Run the critical tasks under interruption. Android’s app-quality checklist specifically calls out interruptions from other apps, network changes, battery function, GPS availability, system load, app switching, sleep and resume, and lock and resume. Choose the conditions that make sense for your app and supported platforms.
#1 Best Overall
- Begin a task and trigger a phone call or notification; dismiss it and continue.
- Switch to another running app, then return to the task.
- Send the app to the background, lock or sleep the device, and resume.
- Change network connectivity during a step that reads or saves data; restore connectivity and follow the app’s recovery path.
- For location-dependent tasks, change GPS availability where practical; for resource-sensitive tasks, repeat under conditions relevant to your users.
Watch for lost unsaved work, duplicated submissions, stale content, a spinner that never ends, or a return state that leaves the next action unclear. Define the expected result before running the test: some tasks should resume, some should ask the user to retry, and sensitive tasks may need to require confirmation again.
Choose device, OS, and layout coverage
Build a matrix from the configurations your app supports and the devices your audience uses. Include representative OS versions and device classes, screen sizes and resolutions, orientations, and form factors that the product claims to support. Android’s guidance recommends common target-user form factors in emulators, a small number of representative physical devices, and testing on the latest Android version; it does not require testing every device on the market. Apple’s accessibility guidance advises testing each device type the app supports, such as iPhone, iPad, and Mac.
| Coverage dimension | Scenario to select | What to verify |
|---|---|---|
| OS version | Latest supported version and representative older versions within your support policy | Task completion, OS integration, and any behavior affected by version changes |
| Device and form factor | Representative target-user devices and each supported form factor | Controls, content, and key tasks remain available and usable |
| Screen and orientation | Relevant sizes, resolutions, orientations, and layout transitions | No clipped or obscured controls, and task state remains correct |
| Physical versus emulated | Emulators for representative configurations; physical devices where the behavior requires them | Real-device behavior, including assistive technology that is unavailable in a simulator |
For Android apps that support adaptive or foldable layouts, test rotation and fold/unfold transitions. Check that the app still offers the expected functionality, uses the available layout appropriately, preserves task state, and renders correctly. Treat the exact matrix as a product decision informed by usage, support commitments, and risk; platform guidance does not establish one minimum matrix for all apps.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Fix the driver behind crashes, sound loss and screen glitches3Clear out junk files and repair common Windows errorsRank #2
Exercise permissions in context
For each permission-dependent task, test the path with permission granted, denied, and later changed in system settings where the OS allows that change. Verify that a denial does not leave the app stuck or imply that a feature worked when it did not. Android’s guidance recommends requesting runtime permissions when the relevant feature is accessed and explaining why the permission is needed.
- Does the permission request appear at the point the user tries to use the feature?
- After denial, is there a useful explanation or a reasonable way to continue without that feature?
- After permission is changed in settings, does the app reflect the new state when the user returns?
- Does the task handle unavailable permission-dependent functionality without losing unrelated work?
Add checks for authentication, session behavior, data handling, and sensitive logs according to the app’s threat model and applicable requirements. NIST Special Publication 800-163, Vetting the Security of Mobile Applications, is a planning reference for organizations setting requirements, considering vulnerability types and testing methods, and deciding whether an app is acceptable for deployment. Its publication page is not a universal short-form security checklist.
Check accessibility while completing real tasks
Do not limit accessibility testing to a single screen or an automated audit. Apple recommends trying main tasks with VoiceOver, Voice Control, Switch Control, and Assistive Access one at a time. Its guidance also covers Dynamic Type reflow, contrast, button shapes, motion, flashing content, and captions, descriptions, or transcripts for media as appropriate.
Rank #3
- Can the user find and activate each control needed to complete a task?
- Are spoken labels, status changes, and errors meaningful in context?
- Does larger text remain legible without overlap or hidden actions?
- Can the task be completed without sight where that is appropriate for the product?
- Do relevant motion, flashing, and media alternatives work as expected?
Audit the screens used in each workflow rather than assuming one representative screen covers the rest. Apple notes that VoiceOver testing requires a physical device because VoiceOver is not available in Simulator.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Measure performance and stability during workflows
Run the main tasks while observing crashes, hangs, startup, rendering, memory, energy and resource use, and waits on files, threads, network, or other resources. A test that checks only whether a screen eventually appears can miss a slow or unstable workflow.
Keep platform-specific targets labeled as such. Android’s current app-quality checklist says to show progress feedback if startup takes longer than two seconds and to verify rendering at least 60 frames per second. These are Android checklist targets, not universal thresholds for every mobile product. Android also describes using StrictMode to identify potentially problematic network, storage, and memory work. Apple recommends collecting baseline performance metrics and using Instruments to examine launch time, memory, CPU stalls, blocked work, graphics hitches, energy use, and concurrent task efficiency.
Repeat performance checks on critical workflows after changes likely to affect them. Compare results with a baseline for the same supported configuration rather than treating a single observation on one device as representative of all users.
Use a layered test portfolio
Scenario testing is one layer, not a replacement for tests closer to the code. Apple recommends many fast, isolated unit tests, fewer integration tests, and UI tests for common use cases, with performance tests for regression coverage of critical code. XCTest and XCUIAutomation can automate interface sequences; Apple also documents varying devices and languages and handling UI interruptions in tests.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Automate repeatable flows where it is reliable, then reserve manual device work for checks that require human judgment, physical hardware, or assistive technology. Generic exploration and code coverage alone may not exercise the business conditions that make a task succeed or fail.
Best Value
In a 2024 study, Shengcheng Yu, Chunrong Fang, Mingzhe Du, Zimin Ding, Zhenyu Chen, and Zhendong Su evaluated their ScenTest approach on 124 mobile apps and eight testing scenarios. The authors reported finding 80+ distinct real-world bugs against representative baselines in that evaluation. This is a result of that study and comparison, not an estimate of how many bugs mobile apps generally contain.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Prioritize when you cannot test every combination
Use these decision factors to choose the next scenario. They are practical prioritization axes, not a mandated scoring system.
- User impact: Is the task common or mission-critical? Could failure lose money, data, or access?
- Likelihood and exposure: How many users, devices, and OS versions encounter the condition, and how often?
- Change risk: Did the workflow, OS integration, dependency, permission, or UI recently change?
- Recoverability: Can the user safely retry, or could an interruption cause a duplicate or lost action?
- Platform specificity: Is the behavior different across iOS and Android, form factors, or assistive technologies?
- Cost and repeatability: Can the scenario be automated consistently, or does it require a physical device or human evaluation?
A useful first pass is to cover every critical task on representative supported configurations, then add the interruption, permission, accessibility, and performance conditions that could change its outcome. Expand the matrix when usage, support commitments, or risk justify it.
Capture visual evidence for web-based app surfaces
For a mobile app workflow that includes a web page or web-backed surface, browser screenshots can help compare layouts across viewport sizes or record a result for review. They do not replace running the native app on supported devices: a website screenshot API cannot validate native controls, lifecycle behavior, or assistive technology in the app. For a do-it-yourself check, open the relevant web page at the viewport sizes you support, complete the relevant web flow, and capture the resulting page in the browser. Compare the output against the expected layout and state.
Or skip the browser setup
If you need a screenshot of a web page in that workflow, ScreenshotNeo takes a URL and returns an image or PDF. For example, this cURL request captures a web page; replace the URL with the relevant page you are authorized to capture. See the ScreenshotNeo API documentation for request options.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
ScreenshotNeo removes known cookie and consent banners, newsletter popups, and chat widgets before capture, and each of those steps can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed; the response includes page-verdict and billed headers. Its MCP server provides screenshot tools for AI agents, including Claude, Cursor, and other MCP clients. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000. These browser captures are for web content, not a substitute for native-device scenario testing.
Learn about ScreenshotNeo, or sign up free for 1,000 screenshots a month with no card.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




