Plain English Test Scripts: A Developer Guide
May 1, 2026

Most test scripts read like assembly instructions for a robot that hates you. driver.findElement(By.xpath('//android.widget.EditText[@resource-id="com.app:id/email"]')).sendKeys("test@example.com") does one thing: log in with an email address. You could write that in four words. You didn't, because the framework demanded ceremony.
Plain English test scripts flip that contract. You describe what a real user does. An AI agent handles the translation into executable steps. The test reads like a sentence a product manager could write, and it runs like a script an engineer built. That combination is why teams using natural language test automation are cutting test authoring time and eliminating the brittle selector chains that break every time a developer renames a CSS class.
This guide covers how plain English test scripts work technically, where they outperform traditional automation, and what to look for in the tools that support them. If you've been burned by Appium XPath failures or spent Fridays fixing tests instead of shipping features, this is the playbook you need.
#01Why traditional test scripts break before your users do
Traditional automation frameworks tie tests to implementation details. XPath selectors, CSS class names, resource IDs: these are internal artifacts that developers change constantly during normal feature work. A designer renames a button component. A sprint later, forty tests fail on CI. Nobody touched the feature those tests cover. The tests just aged out.
This is the selector problem. Not a corner case. The default outcome. Appium XPath failures are so common they have their own debugging culture, complete with dedicated Stack Overflow threads and internal Slack channels full of engineers asking why their locator stopped working (see our breakdown of Appium XPath Failures: Why Selectors Break).
The cost is real. Test maintenance often consumes more engineering time than test authoring. Teams end up with test suites that are technically passing but never run because nobody wants to maintain them. Coverage drops. Confidence drops. Manual testing creeps back in.
Plain English test scripts sidestep this entirely. When you write 'Log in with the test account and verify the dashboard loads,' there is no XPath to break. The test describes intent, not implementation. The AI agent resolves the current UI state at runtime. If the button moves, the agent finds it. If the input's resource ID changes, the agent doesn't care, because it was never looking for a resource ID.
This is not theoretical. It's why intent-based approaches are replacing selector-based testing on teams that have tried both.
#02What 'plain English' actually means in a test script
Not every natural language testing tool means the same thing by 'plain English.' There are three distinct patterns in the market, and confusing them leads to bad tool choices.
The first pattern is code generation. You describe a test in natural language, the tool generates code, and you maintain the code. Cypress Studio AI works this way (Cypress.io, 2026). The natural language is an input interface, not the test artifact. You still end up owning code.
The second pattern is NLP-to-automation. Tools like Functionize and Virtuoso QA parse natural language test plans and generate execution logic internally (Functionize, 2026). The test artifact stays human-readable. You edit prose, not code.
The third pattern is agentic execution. You write a plain English description of a flow, and an AI agent executes it directly against the running application, making real-time decisions about how to interact with the UI. No code is generated or maintained.
For most development teams, the third pattern is the right one. It eliminates the maintenance problem completely because there is no generated code to drift out of sync with the UI.
A well-written plain English test script for mobile looks like this:
Log in with test@example.com and password Test1234
Navigate to the account settings page
Update the display name to 'Alex'
Verify the confirmation message appears
That is the whole test. Not a wrapper around code. The test itself. An agent reads that, interacts with the app, and returns a pass or fail with screenshots. Readable by a product manager, executable by an AI, maintainable by anyone.
See how intent-based testing compares to selector-based approaches for a deeper breakdown of the technical trade-offs.
#03Who can write plain English test scripts (and who should)
The most common objection to plain English test scripts is that they sound too simple to be trustworthy. Engineers worry that removing code removes control.
The opposite is true. Code gives you the illusion of control while the selector underneath quietly becomes stale. Plain English gives you durable intent that survives UI changes.
More importantly, plain English test scripts expand who can contribute to test coverage. On a team running traditional Appium automation, test authoring is gated by engineers who know the framework. The backlog of untested flows grows. QA becomes a bottleneck. Product managers know exactly which user journeys matter most but can't write the tests themselves.
With plain English test scripts, a product manager can write: 'Add an item to the cart, proceed to checkout, enter valid payment details, and confirm the order.' An engineer reviews it. It runs. Coverage expands without expanding the team.
This is not about replacing engineers with non-technical writers. It's about removing the framework tax that forces every test to be an engineering task.
The teams that get the most value are the ones where engineers set up the infrastructure and test suites, then let anyone with product knowledge contribute flows. Engineers stay in the loop for review. The authoring bottleneck disappears.
For startups especially, this matters. A two-person engineering team can't afford a dedicated QA engineer. Plain English test scripts let developers ship features and write tests in the same sitting, without switching mental models from feature work to test framework syntax. See how QA automation for startups handles this constraint at scale.
#04How Autosana runs plain English test scripts on real apps
Autosana is built specifically around the plain English test authoring model. You write a test as a natural language Flow, upload your iOS .app or Android .apk build, and the AI agent executes the test against your actual application.
A Flow in Autosana looks exactly like the examples above. 'Log in with the test account and verify the home screen loads.' That description is the test artifact. You don't compile it. You don't translate it. The agent reads it and runs it.
The results include screenshots of each step, so you can see exactly what the agent saw when it executed your test. When tests run inside pull requests, Autosana provides video proof of the feature or bug fix working end-to-end, embedded directly in the PR. That is useful signal for code reviewers who don't want to pull down a branch and test manually.
Autosana also generates and runs tests automatically based on PR context and code diffs, which means plain English test scripts in Autosana don't stay static. They evolve as the codebase evolves. A developer ships a new checkout flow. Autosana reads the diff and creates relevant test coverage for that flow. No manual test authoring required.
For CI/CD integration, Autosana connects to GitHub Actions. Every new build triggers the test suite automatically. The test suite grows with the product, runs without intervention, and never breaks because a developer renamed a selector.
This is the full picture of what plain English test scripts look like in production: authored in natural language, executed by an AI agent, integrated into the pipeline, and maintained by the codebase itself.
#05Where plain English test scripts still have limits
Plain English test scripts are not the right tool for every testing problem. Be specific about where the limits are.
Performance testing is a poor fit. Load testing requires generating concurrent synthetic users and measuring latency under pressure. That work needs code and infrastructure, not natural language flows.
Low-level unit testing is also a mismatch. Testing that a sorting algorithm returns the correct output for a given array requires direct function invocation. Plain English can describe the behavior but can't replace the unit test structure.
Highly stateful flows with complex preconditions can require careful prompt engineering. 'Create a new user, complete onboarding, trigger a referral, and verify the credit applies after the referred user signs up and makes a purchase' is technically writable in plain English, but the agent needs the app to be in the right state at each step. This is solvable with proper flow design, but it's not automatic.
Finally, visual regression testing at pixel level sits outside plain English territory. Detecting that a button shifted two pixels or a font changed from 16px to 14px requires a visual diffing mechanism, not a behavioral description.
For end-to-end user journey testing, regression testing on deployed builds, and smoke testing before releases, plain English test scripts are faster and more durable than any code-based alternative. Outside those use cases, use the right tool for the job.
#06The workflow that makes plain English tests stick long-term
Most teams that fail with plain English test scripts don't fail because the technology doesn't work. They fail because they treat test authoring as a one-time activity instead of a continuous practice.
Here is a workflow that compounds over time. Write a Flow for every user-facing feature before it ships. Keep flows short: one scenario, one outcome, five to ten steps maximum. Don't try to test everything in one Flow. Test one thing clearly.
Integrate your test suite into CI from day one. Autosana's GitHub Actions integration means this is a one-time setup. After that, every PR triggers the suite automatically. Tests that pass give the team confidence to merge. Tests that fail surface regressions before users see them.
Review test results the same way you review code. Screenshot and video outputs aren't just debugging artifacts. They're documentation of what the product does. A new engineer joining the team can watch test run videos and understand the app's core flows in twenty minutes.
Delete tests that no longer reflect the product. A plain English test suite should be a living description of how the app works today. Stale tests create noise. Remove flows that cover features you've deprecated.
The teams that maintain the highest test coverage are the ones that make test authoring the smallest possible task. Plain English test scripts make that possible because writing 'verify the password reset email arrives and the link works' takes thirty seconds. That speed compounds into coverage.
For a detailed look at how natural language test automation works under the hood, including how the AI agent resolves ambiguous instructions, that guide covers the technical mechanics in full.
Plain English test scripts are not a simplification of testing. They are a redefinition of what a test artifact is. The test is the intent, expressed clearly. The agent handles execution. The CI pipeline handles scheduling. The codebase handles evolution.
If your team is spending more time fixing broken selectors than writing new tests, that is a solvable problem. If product managers know which flows matter most but can't contribute to test coverage, that is a solvable problem. If new builds go to production without regression coverage because nobody had time to maintain the test suite, that is a solvable problem.
Autosana is where to start. Write your first Flow in plain English, upload your iOS or Android build, and watch the AI agent execute it with screenshot results. Do that for your five most critical user journeys before the next sprint ends. You'll have more durable test coverage than most teams build in a quarter of traditional automation work.
Frequently Asked Questions
In this article
Why traditional test scripts break before your users doWhat 'plain English' actually means in a test scriptWho can write plain English test scripts (and who should)How Autosana runs plain English test scripts on real appsWhere plain English test scripts still have limitsThe workflow that makes plain English tests stick long-termFAQ