← Back to blog
GuideMarch 17, 2026

How to Write E2E Tests Without Code

You don't need to know JavaScript, CSS selectors, or async patterns to test your web app end-to-end. Here's how to write browser tests in plain English.

No-code end-to-end testing means writing browser tests in plain English instead of JavaScript or TypeScript. An AI testing agent reads your description, navigates your app in a real browser, and generates a repeatable test with no selectors, no code, and no recording sessions. When the UI changes, self-healing tests adapt automatically.

This guide walks through writing E2E tests without code, with examples you can use today.

Two kinds of “no-code” testing

The term gets used loosely, but there are two fundamentally different approaches worth understanding before you pick a tool.

Visual step builders

Tools like Katalon and TestComplete offer drag-and-drop interfaces where you assemble test steps from pre-built blocks: “Click Element,” “Enter Text,” “Assert Visible.” You avoid writing JavaScript, but you're still manually picking selectors for every interaction. When the UI changes, these tests break the same way coded tests do. You've traded one kind of maintenance for another.

Natural language descriptions

A newer approach skips selectors entirely. You describe the test the way you'd explain it to a colleague — “log in, add a product to the cart, check that the total is correct” — and AI handles navigation, element interaction, and verification. No selectors, no step builders, no recording sessions.

This is the approach we'll focus on for the rest of this guide, since it's what actually removes the engineering bottleneck from test creation.

Writing your first test in plain English

Here is what no-code testing looks like in practice using Diffie. The whole process takes about two minutes.

Step 1: Describe what to test

Open Diffie and create a new test. Type a plain English description of the user flow you want to verify:

Go to the login page.
Enter "test@example.com" as the email and "password123" as the password.
Click the Sign In button.
Verify that the dashboard page loads and shows a welcome message.

That is the entire test. No cy.get(), no page.locator(), no await chains. Just a description of what should happen.

Step 2: Let the AI generate the test

Diffie's AI reads your description, understands the intent, and generates a test that can run in a real browser. It figures out how to find the email field, the password field, and the sign-in button — without you specifying any selectors.

You can watch the generation happen in real time. Diffie shows you what the AI is doing at each step, so you can verify it understood your intent correctly.

Step 3: Run and verify

Click Run. Diffie executes the test in a real Chromium browser in the cloud. You get a full recording of the browser session, screenshots at each step, and clear pass/fail results. If something fails, you see exactly what happened and where.

Step 4: Add to your suite

Once the test passes, add it to a test suite. You can run the suite on demand, on a schedule, or automatically on every pull request through CI integration.

More examples of plain English tests

The power of natural language testing is in its flexibility. Here are real test descriptions that work:

# E-commerce checkout
Go to the product page for "Classic T-Shirt".
Select size Medium and click Add to Cart.
Go to the cart and verify the item appears with the correct price.
Click Checkout and fill in shipping details.
Verify the order summary shows the correct total.
# User settings
Log in as an admin user.
Navigate to Settings > Team Members.
Invite a new team member with email "new@example.com".
Verify the invitation appears in the pending invitations list.
# Search functionality
Go to the homepage.
Type "wireless headphones" in the search bar and press Enter.
Verify that search results appear and contain at least one product.
Click on the first result and verify the product detail page loads.

Notice how each description reads like a QA test case document. That is intentional — the format that works best for AI testing is the same format QA teams have been writing for years, just without the translation step into code.

When no-code works and when it doesn't

No-code testing is excellent for most E2E scenarios, but it is not the right tool for every situation. Here is an honest breakdown.

The sweet spot is user-facing workflows in a browser: login, signup, checkout, search, form submissions, navigation between pages. These are the tests that take the longest to write by hand and break the most often — exactly where removing code from the equation pays off.

Regression testing is another strong use case. After every deploy, you want to know that the checkout flow still works and the dashboard still loads. Describing these checks in plain English and running them automatically is far cheaper than maintaining hundreds of lines of Cypress code.

Where this approach is not a fit: API testing (use a REST client or test framework), unit/integration tests (Jest, Vitest), performance benchmarks (k6, Artillery), and tests that require precise control over network mocking or database state. These all benefit from the granularity that code provides.

Most teams end up using both: plain-English tests for browser-level E2E coverage, and code-based tests for everything underneath.

Start testing in two minutes

The fastest way to see if no-code testing works for your team is to try it. Pick one user flow that matters — your signup flow, your checkout process, or your most important dashboard — and describe it in plain English.

  1. Create a free Diffie account at app.diffie.ai.
  2. Enter your app's URL and describe the test you want to run.
  3. Watch the AI generate and execute your test in a real browser.
  4. Review the results — screenshots, recordings, and pass/fail status.

No setup, no dependencies, no configuration files. If you can describe what your app should do, you can test it.

Written by Anand Narayan, Founder of Diffie

Last updated March 20, 2026

Write your first test in plain English

No code, no setup, no selectors. Just describe what your app should do.