ANR (Application Not Responding)
// Definition
An Android system dialog triggered when the main thread of an app is blocked for more than 5 seconds while handling a user input event, or more than 10 seconds for background processing. The OS determines that the app is unresponsive and presents the user with 'Application Not Responding' — options to wait or force-close. ANRs signal that expensive work (network calls, database queries, file I/O, complex computation) has been performed on the main thread instead of being offloaded to a background thread. Android Vitals (Google Play Console) tracks ANR rate as a core quality metric. Reproduce and diagnose ANRs using Android Studio's CPU Profiler, StrictMode (which detects main-thread IO in debug builds), or Perfetto traces. iOS does not use the term ANR but has an equivalent concept: main-thread hangs that trigger watchdog terminations.
// Related terms
Cold Start
The time from when a user taps an app icon to when the first interactive frame is visible, measured when the app process is not already in memory. A cold start is the worst-case launch scenario: the OS must create a new process, load the app binary from disk, initialise the runtime (JVM on Android, Swift/ObjC runtime on iOS), and render the first frame. Warm starts — where the process exists in memory but the activity was destroyed — are faster. Hot starts — where the activity is merely paused — are fastest. Google's Android Vitals targets 5 seconds as the threshold beyond which users abandon the launch; well-optimised apps aim for under 2 seconds. Testing cold start requires clearing the app from memory (via adb shell am force-stop or equivalent), then timing the launch with Perfetto, Xcode Instruments, or platform-native profiling tools.
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.
Android Testing
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.