Appium
// Definition
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.
// Related terms
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.
Test Automation Framework
A structured set of guidelines, abstractions, and shared infrastructure that supports the creation and execution of automated tests. A framework addresses concerns that individual tests cannot — driver lifecycle management, configuration across environments, reporting, and test data — so each test only describes what to verify, not how to set up and tear down the environment.
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.
Page Object Model (POM)
A design pattern that wraps page interactions in dedicated classes. Tests call methods like `loginPage.signIn(email, password)` instead of manipulating selectors directly. Improves maintainability when locators change.