Mobile App Testing Checklist

Ensure your mobile app works flawlessly across devices, OS versions, and network conditions with a structured testing approach.

Checklist: Mobile App Testing (engineering)

Mobile app testing is uniquely challenging due to device fragmentation, OS version differences, varying screen sizes, and unpredictable network conditions. A comprehensive testing strategy covers functional correctness, device compatibility, performance under constraints, accessibility compliance, and security hardening — all before users encounter your app in the wild.

Checklist Items

  1. Test core user flows end-to-end [critical]: Verify the primary user journeys (sign up, core feature, payment) work completely on both iOS and Android.
  2. Test on minimum supported OS versions [critical]: Verify the app functions correctly on the oldest OS versions you support (e.g., iOS 15, Android 10).
  3. Test on at least 5 real device models [critical]: Cover a range of screen sizes, hardware capabilities, and manufacturers. Do not rely solely on simulators.
  4. Test offline and poor network behavior [important]: Verify the app handles airplane mode, slow 3G, packet loss, and network transitions gracefully.
  5. Verify push notification delivery and handling [important]: Test notification receipt, tap actions, deep linking, and behavior when the app is in foreground, background, and killed states.
  6. Test app lifecycle events [important]: Verify behavior during backgrounding, foregrounding, low memory warnings, and process termination and restoration.
  7. Run performance profiling [important]: Measure startup time, frame rates, memory usage, and battery consumption using Xcode Instruments and Android Profiler.
  8. Test accessibility with screen readers [recommended]: Verify the app works with VoiceOver (iOS) and TalkBack (Android). Check label accuracy, focus order, and gesture support.
  9. Verify secure data storage [recommended]: Ensure sensitive data uses Keychain (iOS) and Encrypted SharedPreferences (Android). No secrets in plain text files.
  10. Test localization and right-to-left layout [recommended]: Verify text, dates, currency, and layout adapt correctly for all supported locales including RTL languages.

Common Mistakes

  • Testing only on the latest devices and OS: Your users are on older devices. Test on at least one device per category: high-end, mid-range, and budget — on both current and previous OS versions.
  • Relying only on emulators: Emulators miss hardware-specific bugs, camera issues, GPS accuracy, and real-world performance. Use real devices for final QA.
  • Not testing interrupted flows: Test what happens when a phone call, notification, or low battery interrupts the user mid-flow. State should be preserved.

Frequently Asked Questions

How many devices should I test on?
At minimum 5 devices covering the range: latest iPhone, mid-range iPhone, latest Samsung/Pixel, mid-range Android, and a budget Android. Use device analytics from your user base to prioritize.
Should I use automated mobile testing?
Yes for regression testing. Use Detox (React Native), XCTest (iOS), or Espresso (Android) for automated functional tests. Manual testing remains essential for UX, gestures, and visual verification.
How do I test on devices I do not own?
Use cloud device farms like BrowserStack, AWS Device Farm, or Firebase Test Lab. They provide access to hundreds of real devices remotely.