Where Traditional UI Frameworks Get Expensive
Appium, Espresso and similar tools are not bad choices. They are just front-loaded. Before a single assertion runs, somebody has to install SDKs, pin driver versions, wire a device farm or emulator pool, and get the whole thing reproducible on a colleague’s machine.
Then the second cost arrives, which is maintenance. A script encodes a path through the UI. When a designer moves a button or a release renames a label, the script does not fail loudly at the concept level, it fails at a locator. Your regression suite reports a defect, and an engineer spends an afternoon discovering the app is fine and the selector is stale.
For a large product with a dedicated automation team, that trade is reasonable. For a smaller team that mostly wants to know “does the checkout flow still work on the three phones we care about”, the overhead often exceeds the value. That gap is where describing a test case instead of coding one becomes attractive.
A Different Entry Point: Describe the Test
iEasyRun approaches mobile UI automation testing from the other end. Instead of writing locators, you describe the case.
Open the conversation entry, pick an online target phone, and write the case the way you would explain it to a colleague: open the app, go to the cart, apply a coupon code, continue to payment, and confirm the total updates. The AI performs those steps on a real device.
Two modes matter for QA. Direct conversation mode is right when the case is already precise. The AI refining mode is for when the case is still fuzzy, and it works the steps through with you before anything executes. That second mode is closer to writing a test plan than writing a script.
| Dimension | Script-based framework | Described test case |
|---|---|---|
| Setup before first test | SDKs, drivers, device pool | Install workstation, connect a phone |
| Who can author a case | Engineers who know the framework | Anyone who knows the product |
| What encodes the UI path | Locators and selectors | A workflow template |
| Behaviour on UI change | Selectors break, needs a code fix | Update or recapture the affected step |
| Runs on | Emulators, simulators, devices | Real phones over USB or wireless |
Freezing a Case Into a Regression Workflow
A described test is only exploratory until you save it. Once the steps produce the behaviour you expect, freeze the sequence in the workflow library.
The canvas view is where the regression discipline lives. You can arrange the steps visually, validate the ordering, and see the case as a reviewable artefact rather than a chat log. AI workflow collaboration can generate or modify steps when the case needs to grow, for example adding a step after a new dialog appears in the flow.
Where a control is difficult to match by its text, add an image template for it. This is particularly useful for icon-only buttons and overlays, which are exactly the elements that make hand-written selectors brittle in the first place.
Practical habit: capture a case at the moment you find a bug. Reproduction steps you just performed are the cheapest regression test you will ever write.
Managing the Device Matrix With Groups
Most regression failures that look like bugs are actually device or environment problems. Groups reduce the confusion.
Onboard each phone through the devices guide, give it an alias, and assign it to a group that means something to your matrix, such as small-screen-android, tablet-ios, or release-candidate. Then a dispatch targets a tier rather than a list of serial numbers.
Two constraints to design around:
- An offline device can be seen but not run. If it is offline, the case will not execute on it. Check device status before reading a red result as a defect.
- The workstation is local. Scheduling is local too, so the machine has to stay on, and each target device must be online or able to reconnect at the scheduled time.
If your team already works inside an AI assistant, the MCP server at http://127.0.0.1:9866/mcp exposes query tools such as list_devices, list_device_groups, and list_workflows, so an assistant can report what is in the matrix and which workflows exist. Executing a case still happens inside iEasyRun, in the conversation or workflow entry.
Reading Results and Errors in Execution History
Exploratory testing ends with a feeling. Regression testing needs a record, and that record is execution history. Every run reports its result and any error per device.
Triage in three passes:
- Environment first. Was the device offline, or did it drop mid-run? That is not a product bug.
- Then the step. Which step succeeded last, and what does the error say, for example a missing image, an unrecognized screen, or a timeout?
- Then the app. If the step fails consistently across every device in the group, and the screen still matches, you are probably looking at a real defect.
This ordering matters because it keeps you from filing tickets against your own test setup.
Where This Approach Fits, and Getting Started
Be honest about the boundary. Describing a test in conversation is not a substitute for a full code-driven suite with assertions wired into CI, and it does not pretend to be. What it does well is cover the flows your team actually cares about, on real phones, without asking anyone to maintain a script codebase.
It is a good fit when your regression needs are flow-shaped: login, search, cart, checkout, profile edits. It is a weaker fit when a case depends on precise data assertions or deep instrumentation.
Onboard two phones into two matrix groups, describe your most fragile flow once, and freeze it as a workflow. Run it, read execution history, and adjust the one step that hesitated. That single case is your template for the next twenty.
iEasyRun is free phone automation software for Android, iOS and HarmonyOS that runs locally on your own computer, with no server and no feature paywall. Download it, connect a test phone, and see how much of your mobile UI automation testing checklist you can describe instead of code.
Frequently asked questions
- Is this a replacement for Appium or Espresso?
- It is a different entry point, not a drop-in replacement. Script frameworks suit deep, code-driven suites. Describing a case in conversation suits teams that want regression coverage without maintaining a script codebase.
- Do QA engineers need to write test scripts with iEasyRun?
- No. You describe the test case in plain language in the conversation entry, choose an online target phone, and the AI performs the steps on a real device. The result is then saved as a workflow.
- How does a described test case become a regression test?
- Once the steps produce the behaviour you expect, save the sequence in the workflow library. That template is the regression test, and it can be rerun or attached to a scheduled task on each build.
- Where do I see why a test failed?
- Execution history records the result and any error for each run. Read the last successful step, the error message, and whether the device went offline mid-run, then fix that specific step.
- How should I handle testing on many different phones?
- Onboard each device, give it an alias, and assign it to a group that represents a tier of your device matrix, such as small-screen-android. Groups are the unit you dispatch a regression workflow to.
- Can regression runs happen automatically at a fixed time?
- Yes, through scheduled tasks. Scheduling is local, so the workstation computer must stay on, and each target device must be online or able to reconnect at the scheduled time.
- Does the test run on emulators or real devices?
- iEasyRun drives real phones over USB or wireless. Android, iOS and HarmonyOS devices can be managed together in the same device list.
- Do the tests need a cloud account?
- No. The workstation runs locally on your own computer with no server required, so device lists, workflows and execution records stay on that machine.
Get Started
Describe a Test Case, Then Freeze It
Software is completely free and runs on your own computer. Start with one phone in your matrix.