Skip to content

What is OttoTester

OttoTester is autonomous end-to-end testing for web apps. Point it at a running app. A pipeline of AI agents explores it, writes the tests, runs them, and keeps them working as the app changes. Nothing to record, no scripts to maintain by hand.

OttoTester is for teams that need end-to-end test coverage but don’t have time to write and maintain tests by hand:

  • QA leads setting up coverage on a new app.
  • Engineering managers who want a regression safety net without a dedicated automation team.
  • Developers who’d rather ship features than chase broken selectors.

OttoTester’s engine is a pipeline of AI agents. Each one has a single job:

  • Planner — drives a real browser to explore your app and decide what to test. It produces a set of test cases, one per scenario.
  • Generator — turns each test case into a test script: real, runnable Playwright code.
  • Executor — runs the scripts and records each test’s result.
  • Healer — when a script breaks because the app changed (a moved button, a renamed field, a new modal), the healer reads the trace, fixes the script, and runs it again. Selector drift stops being your problem.

A fifth agent, the auditor, scores the other agents’ work on every run, so test quality is measured, not assumed.

You don’t give OttoTester a script. You give it a target and, if you want, some guidance:

  • A variant is what you point it at — an app at a specific URL and environment. Most teams keep one variant per environment (dev, staging, prod).
  • A Test Authoring Template is a saved run configuration: which phases to run, how many test cases to aim for, which categories to cover, plus execution settings. It also holds an optional Agent Prompt — free-text guidance for the agents, like “the save button takes 2–3 seconds” or “focus on the checkout flow.”

The idea is simple. OttoTester explores on its own by default. The Agent Prompt lets you steer it when you want to. You never write the test — you describe the app and let the agents work.

OttoTester organizes work as a few nested pieces:

Organization your company's account
└─ Workspace a team's container
└─ Application a product you test
└─ Variant that product at one URL / environment
├─ Tests each is a test case (spec) + a test script (code)
└─ Test suites named groups of tests, runnable on a schedule

Every run produces a report — whether you started it from a Test Authoring Template or a schedule fired it. The report shows per-test pass/fail and links to the full Playwright HTML report for each test. The Concepts section has a page on each of these pieces.