Android Testing
// Definition
Testing Android applications using UIAutomator2 as the underlying automation engine. Appium communicates with UIAutomator2 over ADB (Android Debug Bridge), enabling interaction with any visible element including system dialogs. Elements are located by resource-id, content-desc, or UiSelector queries.
// Related terms
Appium
An open-source mobile test automation framework that implements the W3C WebDriver protocol for native, hybrid, and mobile web apps on iOS and Android. Appium drives apps from the outside — no app source code required — using UIAutomator2 on Android and XCUITest on iOS as its underlying automation engines.
Mobile Testing
The practice of verifying mobile applications — native, hybrid, and mobile web — across devices, OS versions, and screen sizes. Mobile testing encompasses functional testing, gesture interactions, permissions handling, context switching for hybrid apps, and OEM-specific behaviour that emulators may not replicate.
iOS Testing
Testing iOS applications using XCUITest as the underlying automation engine. Appium wraps XCUITest through WebDriverAgent — a signed XCTest agent installed on the target device or Simulator. iOS testing requires macOS and Xcode and uses XCUIElementType accessibility attributes and NSPredicate strings for element location.
Real Device Testing
Executing mobile tests on physical hardware rather than emulators or simulators. Real devices expose OEM-customised operating system behaviour, hardware sensors (camera, NFC, biometrics), accurate memory constraints, and battery draw that emulators cannot replicate. Some bugs — particularly around network transitions, memory pressure, specific display resolutions, and vendor-modified system apps — only appear on real hardware. Cloud device farms (BrowserStack App Automate, Sauce Labs Real Device Cloud, AWS Device Farm) provide access to hundreds of device/OS combinations without requiring physical ownership or lab infrastructure. The pragmatic strategy for most teams: run functional suites on emulators in CI for speed, then run a targeted regression matrix on real devices before each release.