Everything OttoTester does

A tour of what OttoTester does — from writing your tests to healing them, grading its own work, and reporting the results where your team already works.

9 areas
40 capabilities
Playwright-native
Start free trial
A

Autonomous test creation

Turn a plain-English goal or a spec into a working test — no recording, no scripting.

Proposes tests from your docs

Reads your PRDs and specs and suggests the test cases they imply, prioritized against what's already covered.

Plans each test on your live app

Drives a real browser through your app to design each test's steps, the data it needs, and what counts as success.

Writes the test itself

Produces a working Playwright test by exploring the app from a plain-English goal — no recording or scripting by you.

Reads your stack and sign-in

Scans a URL to detect the framework, page structure, and where the login lives before any testing starts.

B

Self-healing

Keeps tests green as your app changes.

Fixes tests when your app changes

Diagnoses a broken test, repairs it on its own, and re-runs to confirm the fix still checks the same outcome.

C

It gets smarter over time

Every run leaves behind lessons the next run reuses — and the useless ones get dropped.

Learns from every run

Turns each run into reusable lessons — selectors, timing, anti-patterns — that steer the next run on your app.

Keeps only the lessons that help

Measures whether each lesson actually improved a run and drops the dead weight over time.

Reset learned memory per app

One click clears everything an app's agents have learned, for a clean-slate re-test.

D

Quality auditing — QA of the QA

A separate auditor grades the agents' own work, so you can trust the autonomy instead of taking it on faith.

Grades every test it writes

A separate auditor scores each generated test 0–100 across five quality dimensions.

Grades every plan

Scores each test plan for structural quality before any code is written.

Grades every repair

Scores each self-heal so a fix can be trusted, not just assumed to be safe.

Shows why a test scored low

Every score comes with per-dimension evidence, so you can see exactly why a test got a 1.

E

Sign-in & test data

What real apps need — signing in as each role, and feeding tests real data without two runs fighting over the same account.

Signs in as any user role

Signs tests in per role using stored credentials, multi-step flows, and one-time codes the agent never sees.

Ready-made sign-in helpers

Matches your identity provider — Okta, Login.gov, and more — and signs in without the AI guessing.

Test data as a table or CSV

Give tests rows and columns to fill and check, imported from a CSV or edited in a spreadsheet-style grid.

Single-use rows

Claims an unused row at run time so two parallel tests never grab the same account.

Connect data to a test

Maps a data set to a test and shows a clear diff when a rewrite shifts the fields.

Files as test data

Store files as test data so agents can write and run file-upload tests.

F

Results, triage & reporting

Results you can act on — what broke, whether it's new, how it's trending, and the trace to prove it.

Health dashboard per environment

One overview per environment with an at-a-glance pass/fail health badge.

Sorts failures to act on

Buckets failing tests into new, still-failing, flaky, and resolved.

Flaky tests and trends

Surfaces intermittently-failing tests with their real failure rate, plus pass-rate trends over time.

Compare two releases

Diffs outcomes between two releases or date ranges for a go/no-go call.

Full trace, screenshot, video

Drill from any failed test into the Playwright trace, DOM snapshot, screenshots, and video.

PDF reports and captured errors

Emails a branded PDF on completion and captures the console and network errors seen during a run.

G

CI/CD & integrations

Plugs into where teams already work — pull requests, deploys, defect tracking, and Slack.

Verdict on every pull request

Posts pass/fail back to GitHub as a native status check, with a re-run button. Any CI can trigger runs through the API.

Runs on every deploy

Fires a run automatically when a deployment succeeds.

Trigger runs from any pipeline

A versioned API and a ready-made GitHub Action to launch runs from your build.

Files defects automatically

Opens deduplicated GitHub issues when tests break and closes them when they pass again.

Results in Slack

Routes run results to the Slack channels you choose, by app and event, threaded together.

H

Test management & authoring

Where the tests live and how you keep them organized, versioned, and scheduled.

Apps and environments

Organize each product you test and its per-environment targets — staging, prod, and more.

Every test in one place

One browser for all tests, showing the plain-English intent beside the runnable script.

Version history for every test

Git-backed history with a diff view and one-click restore of any prior version.

Multi-step workflow suites

Chain tests into ordered suites that stop or skip the rest when one step fails.

Saved and scheduled runs

Reusable run setups — including resume of interrupted work — that can run on a daily or weekly schedule.

I

Enterprise, security & trust

The controls a security team asks for.

Workspaces, teams & roles

Two-tier organization and workspace roles with team-based access across your whole company.

Audit log

An immutable record of who did what and when — per organization and platform-wide.

Secrets encrypted at rest

Every stored password, token, and one-time-code secret is AES-256-GCM encrypted.

Bring your own AI models Enterprise

Point the agents at your own model endpoint on a dedicated or self-hosted deployment.

Cost & quality analytics Enterprise

Per-run cost, token, and quality-score dashboards, plus per-model comparisons.

Single sign-on (SSO / SAML) Coming soon

SAML single sign-on for enterprise identity providers — on the near-term roadmap.

See it on your own app

Start a 14-day free trial — your card isn't charged until day 15.

Start free trial