A4Q Foundation Level Tester for Appium study materials
A4Q Foundation Level Tester for Appium study resources

A4Q Foundation Level Tester for Appium cheat sheet

A4Q Foundation Level Tester for Appium · Keep the key ideas within reach.

Quick reference

Mobile Application Testing Fundamentals

  • Native app: built with platform SDKs, uses platform UI widgets, needs a distinct build per platform (iOS/Android).

  • Mobile web app: runs in the device browser, shares one HTML/JS codebase across platforms, no install step.

  • Hybrid app: native shell plus embedded WebView displaying web content; automation must switch contexts between native and web.

  • Test pyramid for mobile: many unit tests, service/API tests, fewer UI tests - UI tests are slowest and most flaky.

  • Device fragmentation: coverage decisions keyed on OS version share, screen size/density, and manufacturer skin.

  • Interrupt testing: exercise incoming calls, SMS, notifications, low battery, and network loss during app activity.

  • Network condition testing: verify behavior on 2G/3G/4G/Wi-Fi, airplane mode, and high-latency or dropped connections.

  • Installation/upgrade paths: fresh install, upgrade over previous version, and uninstall/reinstall must each preserve or clear data as specified.

  • Non-functional axes: battery drain, memory footprint, cold/warm start time, and responsiveness under background load.

Quick reference

Automating Native, Hybrid and Mobile Web Apps with Appium

  • Appium architecture: client sends W3C WebDriver commands over HTTP to an Appium server, which drives platform automation frameworks (XCUITest on iOS, UiAutomator2/Espresso on Android).

  • Desired capabilities: platformName and automationName are required; app/appPackage+appActivity (Android) or app/bundleId (iOS) select the app under test.

  • noReset vs fullReset: noReset keeps app data between sessions; fullReset uninstalls/reinstalls the app; default behavior differs per driver, so set explicitly.

  • Context switching: driver.getContextHandles() lists NATIVE_APP and WEBVIEW_* entries; driver.context(name) switches; hybrid tests must return to NATIVE_APP before native commands.

  • Locator strategy order of preference: accessibility id > id > platform-specific (Android UiAutomator / iOS predicate or class chain) > xpath (slowest, most brittle).

  • Mobile gestures use the W3C Actions API (pointer/touch input sequences) for tap, swipe, long press, and pinch; legacy TouchAction is deprecated.

  • Waits: implicit wait applies globally to findElement; explicit WebDriverWait with expected conditions handles async UI; avoid Thread.sleep in committed tests.

  • WebView automation needs debuggable web content: Android setWebContentsDebuggingEnabled, iOS enableWebInspector on the simulator.

  • Parallel execution requires unique device UDIDs/systemPorts and separate Appium server instances or a Selenium Grid/device cloud.