QA & Test Automation

Stop testing on emulators. Validate on real hardware.

Mobile and cross-browser QA automation on physical iOS and Android devices, wired into the pipeline you already run. The handsets your users actually hold — chosen from your analytics, not from a catalogue.

Playwright and Selenium · suites running inside regulated banks · testing-led since 2010

The problem

Emulators miss what real users experience

Hardware-specific behaviour

Fingerprint and face authentication, NFC, camera capture, touch responsiveness and screen refresh behaviour either differ from the emulator or do not exist on it at all.

OS and skin fragmentation

One UI, MIUI, HyperOS and ColorOS change permission dialogs, notification behaviour and background execution limits. Skin differences bite harder than Android version differences, which is the part teams consistently get wrong.

Degraded real-world conditions

Thermal throttling, low-RAM process kills, interruptions from calls and notifications, and a connection that is present but useless. None of it reproduces on a workstation with 32GB of RAM.

What we run

Real-device automation, inside your pipeline

Cross-device regression

Parallel execution with Playwright, Selenium and Appium across emulators for breadth and physical handsets for the paths that need them.

Authentication and integrity journeys

Biometric login, SMS and OTP autofill, device binding, Play Integrity, root and emulator detection, screenshot blocking. These are the flows that refuse to run anywhere but a real device.

Interruption and condition testing

Incoming calls, notifications, network handover, location behaviour, and what happens when the app is backgrounded by an aggressive battery manager.

Resource profiling

Memory growth, CPU spikes, battery drain and thermal behaviour captured on the handset rather than inferred from a desktop run.

Coverage

Eight to twelve devices, chosen from your analytics

A hundred-device matrix is a procurement decision rather than a testing one. We pull ninety days of your own sessions by model and OS, cover down to roughly 80% of real users, then add the floor you still support deliberately.

What runs where, and why
TierWhere it runsWhat it covers
Broad regressionEmulators and a cloud device farmFunctional coverage across many models, overnight
AuthenticationPhysical devices with live SIMsBiometrics, SMS and OTP, device binding
Integrity and anti-fraudPhysical devicesPlay Integrity, root and emulator detection, screenshot blocking
Degraded conditionsPhysical devicesThermal throttling, low-RAM kills, cell handover
Manufacturer skinsPhysical devicesOne UI, MIUI, HyperOS, ColorOS behaviour
Desktop browsersCloud gridChrome, Safari, Firefox and Edge across Windows and macOS

What an emulator cannot reproduce, and how the device list is built: real device coverage in detail.

How we engage

Four steps to a suite that runs itself

  1. Device coverage audit

    Your own analytics, ninety days, by model and OS. We come back with the device list and what each one is there to catch.

    Your users, not market share
  2. Framework and pipeline setup

    Suites written in Playwright, Selenium or Appium against your stack, wired into the CI you already run rather than a new one.

  3. Parallel execution and capture

    Runs execute across devices with video, network logs, crash reports and traces captured on every failure.

  4. Reproducible reports, then verification

    Each defect arrives with the telemetry needed to reproduce it, and the fix is verified on the device that found it.

    Reproducible or it is not a bug report
Track record

Fifteen platforms, in the domains where failure is expensive

Fintech, healthcare, legaltech, e-commerce and Web3 — web, mobile, API and performance. Named, because the work stands up.

Platforms we have tested, and what we tested them with
PlatformDomainStack
Under NDAFintech — lending, invoice factoring, savingsCypress, WDIO + Appium, Postman, k6
Under NDAFintech — payment gatewayCypress, manual
CreditBookFintech — lending and savingsJest, Appium, Selenium + Cucumber (Java)
ForeeFintech — peer-to-peer paymentsSelenium + Cucumber, Appium, RestAssured, JMeter
Foree BusinessFintech — billing aggregationPlaywright
MedtelHealthcarePlaywright (TypeScript)
Castor EDCHealthcare — clinical data captureCypress, Appium
DocsInkHealthcareSelenium + Cucumber (Node)
YouMedicoHealthcareJMeter
GreenSignLegalTechCypress, API automation
MycoWeb3 OTT platformCypress, JMeter
Ren’s PetsE-commerce — Salesforce Commerce CloudManual, exploratory
MailtaleAI customer supportManual
BoatBotAI marine service platformManual, Android
GrapheneOS provisioningDevice automationWDIO + Appium, RethinkDNS, Syncthing
Provisioning real Pixel hardware, end to end

A portable suite that provisions Pixel phones running GrapheneOS from scratch — WDIO and Appium driving the handset, with RethinkDNS and Syncthing configured as part of the run. Device automation below the app layer, on hardware rather than an image.

Every major framework, chosen per stack

Playwright, Cypress, Selenium, Appium, WDIO, Jest, RestAssured, Postman, JMeter and k6 — across TypeScript, JavaScript and Java. We fit the tool to your codebase rather than to our preference.

Mobile is the majority of it

Appium and WDIO run through most of this list. Real-device mobile testing is not a line we added to a web practice — it is where a large share of the work has always been.

Common questions

Questions we get asked

Do you use a cloud device lab or physical hardware?

Both, for different jobs. A cloud farm is right for breadth — a regression run across many models overnight, or reproducing something on a handset nobody owns. It is wrong for anything needing a live SIM, enrolled biometrics, or where latency to a remote device changes what you are measuring. Those run on physical devices.

Can you work with our existing Playwright or Selenium suite?

Usually, and that is the preferred start. Rewriting a working suite is rarely justified. We assess what you have, extend it to the device tier, and wire it into the pipeline you already run rather than introducing a second one.

How do you handle security and data privacy?

Test data is synthetic or masked by default, and anything touching production data stays inside your environment. For regulated clients we work against your systems with your credentials and your approvals rather than exporting anything to ours. NDAs are routine and we sign yours rather than asking you to sign ours.

How many devices do we actually need?

Most teams land between eight and twelve, plus the floor they still support. The audit produces the specific list from your own session data — and it is almost never the handset anyone in the room is carrying.

Ready to stop shipping device-specific failures?

We will build you a device coverage matrix from your own analytics and tell you what it would take to run it. No obligation to proceed.