PRACTICAL GUIDE / test cases for mobile app

Test Cases for Mobile App: Complete QA Checklist

Test cases for mobile app projects covering install, login, permissions, network changes, gestures, notifications, performance, security, and upgrades.

By The Testing AcademyUpdated July 10, 202611 min read
All field guides
In this guide8 sections
  1. Define the Test Case Context
  2. Installation, Upgrade, and Launch Cases
  3. Authentication, Inputs, and Account State
  4. Permissions and Device Capability Cases
  5. Network, Offline, and Synchronization Cases
  6. Interruptions, Navigation, and Notifications
  7. Usability, Accessibility, Performance, and Privacy
  8. Select Cases for Automation and Release

What you will learn

  • Define the Test Case Context
  • Installation, Upgrade, and Launch Cases
  • Authentication, Inputs, and Account State
  • Permissions and Device Capability Cases

The quickest way to produce weak mobile test cases is to copy a generic list into a spreadsheet and mark every row “Android/iOS.” A useful case names the state that makes mobile behavior risky: this OS, this permission history, this network transition, this app version, and this interruption point.

The matrices below are a starting set, not a promise of complete coverage. Select rows according to the product's journeys and supported capabilities, then add expected results precise enough that another tester can decide whether the build passed.

Define the Test Case Context

Every executed case should record more than steps and an expected result. At minimum, capture:

  • app build and distribution source;
  • device model, OS version, and available storage;
  • fresh install, upgrade, or previously used state;
  • account role and relevant test data;
  • network type and any transition during the case;
  • permission state before launch;
  • expected client, server, and analytics outcome where relevant;
  • cleanup or recovery needed after execution.

For example, “Verify photo upload” is not repeatable. “On a lower-memory Android device, deny photo-library access on first request, choose the in-app recovery action, grant selected-photo access in Settings, and upload one supported image” identifies the state changes and expected path.

Prioritize by failure impact and likelihood. A rare layout issue on an old tablet is not equal to duplicate payment after reconnection. Label cases with product risk, not only high, medium, and low execution priority.

Installation, Upgrade, and Launch Cases

Users do not all arrive from a clean install. Upgrade and restoration paths carry old databases, credentials, feature flags, and permission decisions.

IDScenarioPreconditionsExpected result
APP-01Fresh install and first launchApp absent, supported deviceApp installs, launches once, and shows correct first-run state
APP-02Upgrade over current store releaseLogged-in user with drafts and settingsMigration completes, user-owned data and supported session state remain
APP-03Upgrade with low free storagePrior version installed, storage near limitUpgrade succeeds safely or reports actionable failure without corruption
APP-04Relaunch after forced terminationUser midway through editable flowApp restores documented state or clearly warns what was not saved
APP-05Launch without networkClean install, airplane modeApp shows designed offline entry state, no endless spinner or crash
APP-06Reinstall after uninstallExisting server accountLocal and server data follow retention policy, onboarding behavior is correct
APP-07Launch after OS updateApp used before OS updateApp opens, permissions and background work remain consistent
APP-08Open unsupported app versionBackend requires upgradeBlocking or optional update message matches policy and link works

For APP-02, install the actual released predecessor and create data before upgrading. Two fresh internal builds do not reproduce a real migration path. Verify database values through the UI and, where possible, a diagnostic or API surface.

Authentication, Inputs, and Account State

Mobile input behavior changes with keyboard, autofill, password managers, copy and paste, biometric prompts, and session lifecycle.

IDScenarioVariationExpected result
AUTH-01Valid sign-inManual typing and password managerOne session created, correct account home opens
AUTH-02Invalid credentialsWrong password, known emailSafe error shown, password not exposed, no partial session
AUTH-03Empty and malformed fieldsPaste, spaces, long valuesValidation is clear, layout remains usable, no request when invalid
AUTH-04Keyboard navigationNext/Done actions, small screenFocus order is logical and primary action is reachable
AUTH-05Biometric success and cancellationEnrolled deviceBoth branches return to correct state without lockout
AUTH-06Session expires in backgroundApp backgrounded beyond expiryResume requires authentication and protects sensitive screen snapshot
AUTH-07Password changed elsewhereExisting mobile sessionReauthentication behavior follows security policy
AUTH-08LogoutOffline and online variantsLocal credentials and sensitive cached data are cleared as specified
AUTH-09Account switchTwo different rolesNo data, notification, or cache leaks between identities

Test the primary fields with long names, Unicode, apostrophes, leading and trailing spaces, and locale-specific input only where the product accepts such data. Expected normalization must come from requirements, not from a tester's assumption.

For one-time passwords, cover delayed delivery, expired code, reused code, app backgrounding while retrieving the code, and autofill. Do not log real codes or personal phone numbers in test evidence.

Permissions and Device Capability Cases

Permission testing is a sequence. The first denial, repeated denial, “do not ask again” behavior, limited access, and later revocation can produce different screens.

IDCapabilityState transitionExpected result
PERM-01CameraNot asked to allowPrompt appears only at point of need with context
PERM-02CameraDenyManual entry or explanation remains available, no loop
PERM-03CameraDeny permanently, then retryApp directs user to Settings when platform requires it
PERM-04PhotosGrant selected items onlyApp shows only permitted items and handles later changes
PERM-05LocationAllow while using appFeature works only in permitted state, indicator and copy are correct
PERM-06LocationRevoke in Settings while app backgroundedResume detects change and removes protected capability safely
PERM-07NotificationsDeny, then enable in SettingsIn-app preference reflects system state and routing resumes
PERM-08BiometricsHardware unavailable or enrollment changedSecure fallback follows account policy

Do not install a test helper that automatically approves every system dialog. An unexpected permission request is itself a defect. Verify that the app asks for only declared capabilities and that denial does not break unrelated journeys.

Android and iOS wording, timing, and available permission states differ. Share the business expectation, such as “user can continue without location,” but keep platform-specific steps and assertions where the operating systems diverge.

Network, Offline, and Synchronization Cases

The most revealing network cases change connectivity during a state-changing operation, not only before the screen opens.

IDScenarioTransition pointExpected result
NET-01Load cached content offlineBefore launchCorrect cached state and freshness indicator appear
NET-02Submit while offlineBefore tapping submitAction is blocked or queued according to design, with clear status
NET-03Lose network after submitRequest sent, response not receivedNo duplicate record, recoverable pending state is shown
NET-04Wi-Fi to cellular handoffDuring media uploadUpload resumes or restarts according to contract, progress stays honest
NET-05Slow responseDuring list refreshExisting content, loading, cancellation, and timeout behavior are usable
NET-06Server returns errorDuring critical transactionSpecific safe error shown, retry does not duplicate action
NET-07Offline edits reconnectTwo records changed locallySync order and conflict resolution match documented policy
NET-08Captive portalApp appears connected but API is unreachableApp does not misreport success or expose raw transport error

Inspect server state for NET-03 and NET-06. A client message alone cannot prove whether a payment, booking, or message was created. Repeat reconnection and retry actions to detect missing idempotency.

For offline queues, verify ordering, cancellation, edit-after-queue, logout with pending work, and account switching. Data queued under one user must never be uploaded under another.

Interruptions, Navigation, and Notifications

Mobile journeys compete with the operating system and other apps. Execute interruptions at meaningful boundaries.

IDInterruptionWhenExpected result
INT-01Home and returnForm partially completeDocumented draft state remains, keyboard and focus recover
INT-02Lock and unlockSensitive screen visibleApp-switcher and lock-screen privacy policy is enforced
INT-03Process killed by OSUpload or checkout pendingRelaunch reconciles with server and avoids duplicate action
INT-04Incoming call or audio route changeMedia recordingRecording pauses, resumes, or ends with clear state
INT-05Rotate deviceDialog or editable screen openSupported layout preserves data and controls remain reachable
INT-06Push notification tappedApp closed, backgrounded, and foregroundedOne correct destination opens with authorization checked
INT-07Malformed or stale deep linkUser logged out or resource removedSafe fallback appears, no unauthorized content is revealed
INT-08System back or edge gestureMulti-step flowNavigation and unsaved-change handling match platform convention

For notifications, validate foreground presentation, badge count, grouping, action buttons, duplicate delivery, expiration, and privacy on the lock screen. A correct notification that opens the wrong tenant or stale record is still a serious failure.

Deep links need authentication and authorization checks after routing. Test a valid resource owned by another account, not only a syntactically invalid URL.

Usability, Accessibility, Performance, and Privacy

Some important checks are observations rather than pass/fail scripts. Give them explicit evidence and conditions.

AreaCaseEvidence to record
AccessibilityComplete critical flow with VoiceOver or TalkBackFocus order, names, roles, announcements, blockers
Text scalingUse largest supported system textClipping, overlap, scroll access, preserved meaning
LocalizationLong translated copy and right-to-left layoutTruncation, mirroring, input and date correctness
TouchUse one hand on compact and large deviceReachability, target accuracy, accidental activation
StartupCold and warm launch on representative hardwareDefined readiness point and measured distribution
ScrollingLong realistic list on lower-memory deviceFrame drops, loading behavior, memory growth
BatterySustained location, upload, or media useDevice energy diagnostics and background activity
PrivacyBackground app on sensitive screenApp switcher, logs, clipboard, notification exposure
StorageDownload with insufficient spacePrecheck, partial-file cleanup, recovery message

Set performance budgets from product expectations and representative devices. One manual timing is not a benchmark. Capture repeated measurements, build, device temperature, network, and readiness definition.

For security, verify server authorization, token expiry, secure local storage, logging, screenshots where restricted, clipboard behavior, and account deletion. Perform intrusive testing only in an authorized environment.

Select Cases for Automation and Release

Automate cases that are stable, repeated, valuable across builds, and observable through supported tooling. Good candidates include launch, login, critical navigation, core transaction smoke, API-backed data setup, and selected offline recovery. Keep visual judgment, exploratory interruption combinations, early feature behavior, and hardware feel in manual sessions.

Before release, choose a risk-based subset rather than running every row blindly:

  • one fresh install and every supported upgrade path;
  • critical journeys on representative Android and iOS devices;
  • denial and revocation for every high-risk permission;
  • a network loss during the most important mutation;
  • background, process death, and session expiry recovery;
  • notification and deep-link routing for each account state;
  • accessibility pass through the primary journey;
  • crash, analytics, privacy, version, and production configuration checks.

Your next action is to take the product's three most expensive failure journeys and assign five context variations to each: installation history, permission state, network transition, interruption, and device class. Write exact expected client and server outcomes for those 15 cases. That focused set will find more release risk than importing hundreds of context-free rows into a test-management tool.

// FIELD DISPATCH

Get the QA Field Notes

Weekly QA battles, AI testing guides, and interview drills. Free on Substack.

The Testing Academy editorial desk

Practical QA guidance built around test evidence, production tradeoffs, and interview-ready explanations.

Published July 10, 2026 / Reviewed July 10, 2026

PRIMARY REFERENCES

Verify the details at the source

QABattle guides are practical explanations. Product behavior, standards, and APIs can change, so use these primary references for the canonical details.

  1. 01
    ISTQB glossary

    ISTQB

    Shared testing terminology for test design, defects, levels, and lifecycle concepts.

FAQ / QUICK ANSWERS

Questions testers ask

What are important test cases for a mobile app?

Important mobile app test cases cover install, launch, onboarding, login, permissions, navigation, forms, gestures, offline behavior, network changes, interruptions, notifications, deep links, upgrades, performance, accessibility, security, logout, and crash recovery.

How do I write mobile app test cases?

Start from user journeys and mobile risks. Define device, OS, app version, preconditions, test data, steps, expected results, and priority. Include positive, negative, boundary, permission, interruption, and upgrade scenarios.

Should Android and iOS have the same test cases?

They can share business scenarios, but each platform needs platform specific cases for permissions, navigation, gestures, keyboards, app store behavior, notifications, and OS conventions. Do not assume identical behavior unless the product requires it.

How many mobile test cases are enough?

Enough mobile test cases cover critical user journeys, supported devices, OS versions, risky permissions, network states, upgrade paths, and past defects. The number depends on product risk, not a universal checklist size.

Can mobile app test cases be automated?

Stable smoke and regression cases can be automated with tools such as Appium, Espresso, or XCUITest. Exploratory, usability, device feel, and one time release checks often remain manual or partly assisted.