Skip to main content
All articles
QA Fundamentals

How to Test a Mobile App: iOS and Android Guide for 2026

10 min readBy Elmonds Kreslins

Why mobile testing is different from web testing

Testing a mobile app is not simply the same as testing a website on a small screen. Mobile applications run on physical hardware with specific sensors, battery constraints, network variability, and operating system behaviours that create a fundamentally different testing surface. iOS and Android have different interaction models, permission systems, gesture support, and rendering behaviour. A QA strategy that works well for a web application needs to be adapted for mobile, not just scaled down.

Types of mobile testing

  • Functional testing: verifying that features work correctly across supported device and OS combinations
  • Regression testing: confirming new releases haven't broken existing functionality
  • Performance testing: measuring app launch time, frame rate, and memory usage
  • Compatibility testing: testing across different device models, screen sizes, and OS versions
  • Network condition testing: verifying behaviour on slow 3G, LTE, and under network interruptions
  • Accessibility testing: ensuring the app meets WCAG criteria and works with VoiceOver (iOS) and TalkBack (Android)
  • Security testing: reviewing data storage, authentication, and API communication
  • App store compliance: checking that the app meets Apple App Store and Google Play requirements before submission

Real devices vs simulators and emulators

Both have a place in a comprehensive mobile testing strategy:

Simulators and emulators (Xcode Simulator for iOS, Android Emulator) are fast to spin up, free, and easy to integrate into CI pipelines. They are ideal for rapid iteration during development and for automated regression suites. However, they cannot replicate hardware-specific behaviour: touch sensitivity, camera, Bluetooth, NFC, biometric authentication, GPS accuracy, and real-world battery drain.

Real devices are essential for final validation before release. They surface issues that simulators mask, including rendering differences on specific hardware, touch responsiveness problems, and performance under real memory pressure. Services like BrowserStack provide access to large real device farms when you need broad coverage without a physical device lab.

Our recommendation: develop and run automated regression tests on simulators in CI, then validate critical flows and release candidates on a curated set of real devices.

iOS-specific testing considerations

  • Apple's permission model: location, notifications, camera, contacts, and other system resources each require explicit user permission. Test both the granted and denied states.
  • iOS version coverage: test on the latest two major iOS versions as a minimum. Apple's adoption rates are high so this typically covers the majority of active devices.
  • Layout for different form factors: test on both iPhone models with and without the Dynamic Island to ensure nothing is obscured
  • Privacy manifest declarations: required by Apple since iOS 17. Ensure your app's privacy manifest accurately declares all APIs used.

Android-specific testing considerations

  • Hardware fragmentation: Android runs on thousands of device and manufacturer combinations. Screen sizes, pixel densities, and manufacturer OS customisations (Samsung One UI, Pixel Android) all introduce variation.
  • Android version coverage: unlike iOS, older Android versions remain in active use. Test Android 12, 13, 14, and 15 to cover the majority of users.
  • Manufacturer-specific behaviour: Samsung, OnePlus, and Xiaomi customise Android in ways that can break apps that work correctly on stock Android
  • Google Play target API requirements: Google updates the minimum required target API level annually. Ensure your app meets the current requirement before submission.

Mobile test automation tools

  • Appium: the most widely used open-source mobile automation framework. Supports native, hybrid, and mobile web testing on both iOS and Android using a WebDriver protocol. Language-agnostic: write tests in JavaScript, Python, Java, Ruby, or C#.
  • Detox: a grey-box end-to-end testing framework specifically for React Native applications. Tests run on the device alongside the app, enabling more reliable and faster execution than black-box frameworks.
  • XCUITest: Apple's native UI testing framework, integrated into Xcode. The most reliable option for pure-native iOS apps.
  • Espresso: Google's native Android UI testing framework, integrated into Android Studio. Fast and reliable for native Android apps.

For cross-platform teams, Appium provides the broadest coverage. For React Native apps, Detox is generally the better choice due to its tighter framework integration.

Testing network conditions

Real mobile users regularly switch between WiFi, 4G, 5G, and poor network conditions. Your app should handle all of these gracefully. Key scenarios to test:

  • Slow connection (2G/3G): does the app show appropriate loading states and remain usable?
  • Network interruption mid-request: does the app handle errors gracefully without crashing or showing raw error messages?
  • Switching between WiFi and mobile data: does network state update correctly?
  • Airplane mode: does offline state work correctly, and does the app recover cleanly when connectivity is restored?

Both iOS and Android simulators include network condition throttling. For real device testing, tools like Charles Proxy and macOS Network Link Conditioner can simulate poor conditions reliably.

App store pre-launch checklist

Before submitting to the App Store or Google Play, verify:

  • All required metadata is complete: app name, description, keywords, screenshots, and preview video meet each store's requirements
  • Privacy manifest (iOS) and data safety form (Android) are accurate and complete
  • Target API level meets the current store minimum
  • The app requests only the permissions it genuinely needs
  • Crash rate is low: both stores monitor post-launch crash rates and can delist apps that exceed thresholds

Want expert mobile QA before your next release? See our Mobile App Testing service or get in touch.

Related reading: Mobile Accessibility Testing: Applying WCAG on iOS and Android

EK

Elmonds Kreslins

LinkedIn

Lead QA Engineer

Elmonds has led QA programmes at BBC, Bupa, and multiple UK fintech startups. He founded RedQA to give growing product teams access to the same quality rigour as enterprise engineering teams, without the overhead.

QA insights, monthly

No spam. Unsubscribe any time.

Get practical QA guides, testing tips, and industry news sent straight to your inbox. Join engineers and product teams from across the UK.

Ready to Ship with Confidence?

Let's discuss how RedQA can help you deliver better software, faster. Get a free consultation and quote tailored to your project.

Get a Free Quote