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
- 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.
- 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).
- 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.
- Test offline and poor network behavior [important]: Verify the app handles airplane mode, slow 3G, packet loss, and network transitions gracefully.
- 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.
- Test app lifecycle events [important]: Verify behavior during backgrounding, foregrounding, low memory warnings, and process termination and restoration.
- Run performance profiling [important]: Measure startup time, frame rates, memory usage, and battery consumption using Xcode Instruments and Android Profiler.
- Test accessibility with screen readers [recommended]: Verify the app works with VoiceOver (iOS) and TalkBack (Android). Check label accuracy, focus order, and gesture support.
- Verify secure data storage [recommended]: Ensure sensitive data uses Keychain (iOS) and Encrypted SharedPreferences (Android). No secrets in plain text files.
- 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.