Device and browser compatibility
Running key flows across the device, OS and browser matrix.
Mandatory for 15 of 46 product types. Usually run by a QA engineer.
What it catches
- layout breaks
- API differences
- OS-version crashes
What it misses
- logic errors present everywhere
Which product types need it and why
| Product type | Status | Reason or condition |
|---|---|---|
| desktop application | mandatory | Risks: App rejected or removed by a store, Records silently wrong |
| fleet and logistics tracking | mandatory | Risks: User actions lost on bad networks or devices |
| grocery delivery app | mandatory | Risks: App rejected or removed by a store |
| smart home or IoT app | mandatory | Risks: User actions lost on bad networks or devices, App rejected or removed by a store |
| kids app | mandatory | Risks: App rejected or removed by a store |
| language learning app | mandatory | Risks: App rejected or removed by a store |
| loyalty program app | mandatory | Risks: App rejected or removed by a store |
| mobile banking app | mandatory | Risks: App rejected or removed by a store |
| ride-hailing app | mandatory | Risks: App rejected or removed by a store |
| software as a medical device | mandatory | Risks: User actions lost on bad networks or devices, Physical or psychological harm to a user |
| SDK or client library | mandatory | Risks: App rejected or removed by a store, Third-party dependency fails |
| stock trading app | mandatory | Risks: App rejected or removed by a store |
| travel booking app | mandatory | Risks: App rejected or removed by a store |
| video conferencing tool | mandatory | Risks: App rejected or removed by a store |
| wearable companion app | mandatory | Risks: App rejected or removed by a store |
| dating app | recommended | Becomes mandatory when crash reports concentrate on specific device models or OS versions. |
| e-signature service | recommended | Becomes mandatory when a signature captured on one platform fails validation in a recorded case. |
| ecommerce store | recommended | Becomes mandatory when a native app ships alongside the website. |
| electronic health record system | recommended | Becomes mandatory when facilities run the client on browser or operating system versions the team does not use. |
| ERP system | recommended | Becomes mandatory when users switch between the desktop client and web app for the same tasks. |
| EV charging app | recommended | Becomes mandatory when the app runs on in-car screens. |
| expense management tool | recommended | Becomes mandatory when receipt capture moves to a new camera or image pipeline. |
| government services portal | recommended | Becomes mandatory when usage data shows older devices in the user base. |
| online marketplace | recommended | Becomes mandatory when sellers list mainly from phones. |
| mental health app | recommended | Becomes mandatory when crash reports cluster on specific phone models or OS versions. |
| messaging app | recommended | Becomes mandatory when out-of-order or missing messages between clients appear in support tickets. |
| mobile game | recommended | Becomes mandatory when crash reports concentrate on low-memory devices. |
| neobank | recommended | Becomes mandatory when sign-up drop-off differs by device model. |
| patient portal | recommended | Becomes mandatory when analytics show a large share of patients on older phones or browsers. |
| pharmacy delivery app | recommended | Becomes mandatory when store reviewers or support report a device-specific upload failure. |
| social network | recommended | Becomes mandatory when the support list covers older OS versions still in store distribution. |
| telemedicine app | recommended | Becomes mandatory when support tickets show video or camera permission failures on specific devices. |
| event ticketing platform | recommended | Becomes mandatory when mobile tickets replace printed tickets at the gate. |
| buy now pay later service | optional | The checkout widget is embedded in many merchant themes and browsers, so layout breaks can hide the plan terms. |
| crypto exchange | optional | Optional: may catch crashes on older devices before app store reviews do. |
| identity and access management service | optional | Optional: helps when relying apps embed sign-in in mobile webviews. |
| insurance app | optional | Claim photo upload depends on camera and file handling that differs across phones. |
| lending platform | optional | Document upload of pay stubs from older phones may fail on camera or file-type handling. |
| LLM-based assistant | optional | May help: streaming output and file upload behave differently across mobile browsers. |
| accounting and invoicing SaaS | not needed | Not needed: the product is a web app on current desktop browsers. Becomes recommended when a mobile receipt or invoice app ships. |
| clinical trial management software | not needed | Not needed: site users work on a defined browser list in the validation package. Becomes recommended when participants use their own phones for eCOA. |
| data pipeline | not needed | Not needed: the pipeline runs on one managed platform. Becomes recommended when it must run on a second cloud or warehouse. |
| email marketing platform | not needed | Not needed: no attached risk comes from how email clients render a template. Becomes recommended when broken rendering is linked to complaints or unsubscribes. |
| machine learning model service | not needed | Not needed: clients call one HTTP endpoint. Becomes recommended when an on-device model ships. |
| peer-to-peer payment app | not needed | Not needed beyond release smoke on current OS versions. Becomes recommended when crash reports cluster on older devices. |
| subscription box service | not needed | Not needed: sign-up, skip and cancel are the same account screens on the website and in the iOS and Android apps, and the release smoke check runs them on every release build. Becomes recommended when crash or layout reports cluster on a device or OS version. |
Done conditions used on playbook pages
Each mandatory cell has its own done condition, written for that product type.
- desktop application (Infrastructure and developer products): Install, update and uninstall cases pass with no Gatekeeper or SmartScreen warning on each supported macOS, Windows and Linux version and on both Intel and Arm machines where offered.
- fleet and logistics tracking (Infrastructure and developer products): Tracking, log sync and photo capture work on each tablet and phone model in the support list with battery saver on, and unplugging the tablet from the engine module raises a malfunction flag in the driver's log.
- grocery delivery app (Commerce): Basket, slot booking and checkout complete on the oldest and newest supported iOS and Android versions, including when every slot is full.
- smart home or IoT app (Infrastructure and developer products): Device setup, local control and push alerts work on each phone model and OS version in the support list, including with the phone on a different Wi-Fi band from the device, and the demo home opens without hardware on each.
- kids app (Education): The app installs and plays on each supported tablet and phone model and OS version, including shared family devices with parental controls on, and the parental gate appears before any purchase or link on each.
- language learning app (Education): Microphone permission, speech scoring and audio playback work on each supported phone model and OS version, including with Bluetooth headphones, and the paywall shows price and renewal terms on each model.
- loyalty program app (Commerce): Sign-in, earn and redeem complete on the oldest supported iOS and Android versions and on the web member area.
- mobile banking app (Fintech): The release build installs, logs in and shows the account list on the oldest iOS and Android versions named on the store listing.
- ride-hailing app (Commerce): Request, track and pay complete on the oldest supported phone and OS for riders, and accept and navigate complete on the oldest supported driver device.
- software as a medical device (Healthcare): On each supported phone model and OS version, including the latest OS beta, critical alarms sound with focus mode, low power mode and notification summaries turned on.
- SDK or client library (Infrastructure and developer products): The SDK builds and runs in sample host apps on the oldest and newest supported OS, language and package manager versions, and each iOS sample host app build passes App Store Connect validation with the SDK's privacy manifest.
- stock trading app (Fintech): The order ticket opens and submits on the oldest and newest iOS and Android versions the app supports, and the login, quote and order ticket screens open without a crash.
- travel booking app (Commerce): Search, booking and the trip page work on the oldest and newest supported iOS and Android versions, including dates where the supplier returns no availability.
- video conferencing tool (B2B SaaS): The current and previous OS versions on iOS, Android, Windows and macOS install the client, pass notarization or store pre-checks, and join the same meeting.
- wearable companion app (Healthcare): Pairing, background sync and alerts work on each phone model and OS version in the support list, with battery-saver mode both on and off.
Tools
Alphabetical. Not recommendations.
device and browser compatibility
- AppiumCross-platform mobile UI automation over WebDriver. iosandroidopen-source
- ApplitoolsVisual comparison of screens across builds. webiosandroidcommercial
- BrowserStackCloud of real devices and browsers. webiosandroidcommercial
- Firebase Test LabRuns app tests on hosted devices. iosandroidfreemium
- LambdaTestCloud browser and device grid. webiosandroidcommercial
- PercyVisual review of UI changes. webcommercial
- PlaywrightBrowser automation for Chromium, Firefox and WebKit. webopen-source
- Sauce LabsCloud test infrastructure for web and mobile. webiosandroidcommercial
- SeleniumWebDriver-based browser automation. webopen-source