The challenge
Most of this consultancy’s work is regression testing for client apps. Every new build means the same routine. Sign in, go through onboarding, place an order, check the receipt. Then do it again on the next phone.
They’d tried scripted automation before. It didn’t last. Every time a client shipped a redesign, the scripts broke, and fixing them took longer than just running the checks by hand.
Emulators had their own problem. The bugs clients reported from the field often never showed up on an emulator: a keyboard covering a button, a permission dialog only one manufacturer shows, a slow cold start on a mid-range phone. The team wanted to test on the phones real users actually carry.
The approach
They set up a small bench of Android phones and paired each one with CodeReviewer. Install the agent app, turn on accessibility, scan a QR code, and the phone shows up in the workspace as online. No rooting, no laptop plugged in.
For each client app, they upload the build and point CodeReviewer at the feature they want covered. It reads the relevant code, uses the app on a real phone the way a person would, and records a suite of test cases. Before anything gets authored, the team looks over the proposed test plan. They cut the cases they don’t need and add a few negative paths of their own.
After that, the suites replay on a schedule. When a client changes a screen, the broken test gets repaired and checked again instead of sitting red. Flaky cases are benched and retried on their own, so one shaky step doesn’t hide real failures. Between releases, the team points Bug Explorer at staging builds to find crashes and dead ends nobody wrote a test for.
The results
Regression passes that used to need someone’s full attention now run on the bench by themselves. Every replay keeps screenshots and a step-by-step trace, so when something fails, the reproduction is already there, ready to send to the client’s developers. The team spends its time on exploratory testing and talking to clients, not clicking through the same flows again.