← All work

Quality / QA

Self-Healing E2E Test Suites

Tests that repair their own selectors when the UI moves — and only ask a human when intent is genuinely ambiguous.

70–80%
fewer hours on selector-drift fixes
Healthier
coverage — fewer muted or skipped tests
Review-gated
every auto-fix ships as a pull request

The problem

60–80% of “broken” end-to-end tests aren't real bugs — they're selectors that drifted as the UI evolved. Engineers burn hours chasing them, flaky suites get muted, and coverage quietly rots.

Our approach

An agent that owns the suite, not just runs it. On failure it captures context — DOM, screenshot, logs — reasons about what changed, and classifies cosmetic vs behavioural. Cosmetic drift is auto-patched and shipped as a pull request; behavioural failures escalate. Every edit is branch-isolated and review-gated — the agent never touches source code or merges to main.

How it works

Where the AI agent acts, and where a human stays in the loop.

TriggerAI AgentWorkflowDecisionHuman
Trigger

Test run fails

A CI or scheduled run fails; the suite captures the DOM, a screenshot, and console logs.

AI Agent

AI agent investigates

Compares the test's expectation to the current page and recent code changes to find what moved.

Decision

Classify the failure

selector drift
AI Agent
Auto-patch the selector
copy / label change
AI Agent
Update the assertion
timing / race
AI Agent
Add a wait / retry
structural / real regression
Human
Escalate with evidence
Workflow

Re-run & open a pull request

On a passing patch, opens a PR on an isolated branch with the diff for review.

Human

Engineer reviews the PR

A human approves the auto-fix before it merges. No direct writes to main, ever.

AI agentBrowser test suitePull-request workflowMessaging appSandboxed runs

Want something like this for your team?

We'll find one workflow worth automating and the ROI behind it. No slides.