✦ Business-aware quality

Know what will break before your customers do.

Vera understands the journeys and rules your business depends on, continuously verifies them across your product, and shows your team when a change creates release risk — before it reaches customers.

No signup, no card. One AI-written test, run in real Chromium.

Requirements‑aware · Real execution · Multi‑actor workflows · Performance · Security signals · CI‑ready

“But how do you know an AI-written test actually tests anything?” — the answer ↓

See it in action

Everything Vera does — shown, not told.

Six things most testing tools make you wire up by hand. In Vera they’re one sentence, one click, or one command.

AI generation

Describe → tested

Type one plain-English sentence. Vera reads your live page and writes real, passing steps — every selector proven, not guessed.

“Test checkout end-to-end” 
goto /checkout
fill [data-testid=email]
click checkout-submit
assert url **/success
Living tests

It repairs itself — and says so

When a selector rots mid-run, Vera snapshots the DOM, finds the real one, retries, and records the fix. The run continues — and the result is reported as passed on heal, never folded into a clean pass.

click button.submit-btn
⚡ self-heal[data-testid=checkout-submit]
retried passed
Local agent + mobile New

Runs on your machine

The agent runs tests right next to localhost — no tunnels, no database access. Native mobile too, via Appium.

$ npx vera-agent start
→ leased run #4812 · checkout
passed · streamed to dashboard
.apk.ipaAppium
Site audits New

Audit any site

Sweep any page for accessibility, SEO, security headers, and Core Web Vitals — issues counted per page, ranked by severity.

A11y0
SEO2
Headers5
Vitals1
Data-driven New

One test, every row

Upload a CSV and each row runs the test with its own values — one authored flow becomes a whole matrix of real runs.

email,qty
amy@…,2
ben@…,1
cara@…,9
row 1
row 2
row 3
No lock-in New

Bring it — and take it

Import from the tools you already use, and export any test back to runnable code. Your suite is never trapped in Vera.

Import
CypressPlaywrightWebdriverIOSelenium (Java/Python via AI)TestCafePostmanHAROpenAPI
Export
PlaywrightWebdriverIOpytestTestCafeJUnit

Why Vera

End-to-end testing breaks the people who need it most.

Every team wants coverage. Almost none can sustain it — because the tests themselves are code, and code rots.

Cost of entry

Writing tests is engineering work

Selectors, waits, fixtures, auth — a QA analyst can describe the flow but can’t code it, so tests never get written.

Decay

Selectors rot on every ship

A renamed class or restructured DOM silently breaks suites. Maintenance quietly outgrows the value of the tests.

Trust

Flaky pipelines get ignored

Once red means “probably nothing,” the suite is dead weight. People stop reading it — and stop trusting it.

Start with the business

Vera starts with what your product is supposed to do.

Not with a blank test file. Hand it the requirements document you already have, and it proposes the rules your product must obey — each one carrying the page and clause it came from.

01

Bring what you have

A BRD or RSD as .docx or .pdf — or an OpenAPI spec, a Postman collection, or your source. No new format to author.

02

Rules, with their evidence

Each proposed rule keeps the document, section and snippet it was read from. You are reviewing a quote, not a summary.

03

Your team approves

Nothing generates against a proposed rule. Approval is a human act, and it is the only door in.

04

Coverage against the approved set

Tests are planned and scored against the rules you signed off — so “covered” means covered against your requirements, not against whatever the app happens to do.

It tells you what it did not read. Vera extracts requirements from structure it can actually see — acceptance criteria, numbered clauses, Gherkin, shall/must statements — and reports the lines it treated as prose rather than guessing at them. A document written as flowing narrative will yield few rules, and the import says so instead of quietly returning a short list.

A scan is refused, not guessed. A PDF with no text layer is images of text. Vera does not run OCR and will not pretend otherwise — it rejects the file and tells you to export a text-bearing one.

And a rule read from a document can contradict your running app — which a rule inferred from the code never can, because it was read out of the implementation and inherits its bugs. Why that distinction decides what a test can prove →

Risk & release confidence

Every change has a blast radius.

Vera does not guess how critical something is. A person sets the factors, the band follows from them, and the band reaches everything linked to that rule — so before you approve it you can see what it will start gating.

Factors — set by a human

blast radius3 / 3
reach3 / 3
irreversibleyes
● band P0 · score 100

Reasons recorded with it: blast-dominant, irreversible-at-ceiling. Not a number a model produced — a judgement somebody signed.

What that band reaches

Refund request — happy path
Refund over threshold — finance approval
Customer submits refund (scenario stage)

The rule: “a customer must not be able to request a refund on an order they do not own.” Approving P0 raises these three and any suite that gates on them.

You see the reach before you approve, not after. An approval that silently starts blocking releases is one nobody makes twice.

And Vera does not claim to watch your repository. It shows what a change to this rule would touch. Where it reports tests affected by a recorded change, an empty list means no change was recorded — which is not the same as nothing having changed, and Vera will not let the two read alike.

A band is only worth as much as the tests it reaches, which is why a test that cannot fail is not counted as covering anything →

Complete workflows

One business process crosses five systems and three people. Test it as one process.

Model the customer, the support agent and the finance approver as named actors, each with their own project, role and environment. Vera runs the handoffs between them and carries what one stage learned into the next.

Customer
submits the refund
Support agent
validates the queue
Finance
approves

handoff · Customer published refundId = REF-4471 → Support and Finance both asserted against it

The handoff is the evidence. Every run records what each stage published, so “the reference the customer got is the one finance approved” is something you read off the report rather than something you hope held. A value marked sensitive is masked in that record and still real in memory for the next stage.

Actors can also run at the same time. Where the workflow genuinely has independent people, stages run concurrently and a dependent stage waits for all of them — and concurrency is opt-in per scenario, so a workflow written as a sequence never silently starts running two actors at once. The two races that would make it unsafe — two stages publishing the same variable, one actor in two concurrent stages — are refused when you save the scenario, not debugged at three in the morning.

Built for products where the work changes hands: marketplaces, approval workflows, and regulated or operational handoffs. If a fail is only visible to the third person in the chain, one-actor testing was never going to find it.

Where it fits

Three shapes this fits, and the bug each one hides.

The same machinery pointed at three business shapes. These are modelling exercises you can copy rather than case studies — each names the actors, the handoff between them, and the one sentence a human has to approve before anything is generated from it.

Marketplace Buyer, seller and ops, each in their own portal with their own session. The bug that survives single-actor testing is the one only the third party sees: ops cancels an order after the seller dispatched it, and the buyer is left reading “cancelled” while the parcel is still moving. Catching it means asserting the buyer’s view after the ops action — an assertion that has to happen in somebody else’s session. an order cannot be cancelled once it is dispatched
Approval workflows Requester, manager, finance. Expense, procurement, leave, access requests — the shape is the same and most teams have at least one. The classic escape: an amount under the threshold gets its single approval, is then edited upward, and keeps it. No one testing as a single user finds that, because it needs an approval to already exist before the edit happens. an expense above the threshold needs finance as well as the manager
Regulated & operational handoffs Care teams, dispatch, chains of custody — wherever who may see what is a requirement rather than a preference. This is where the role matrix earns its keep: a cell marked denied counts only when Vera watched the refusal happen, so “the scheduler cannot open clinical notes” is a measurement rather than an assumption. A 500 or a broken selector would satisfy a naive check; it never satisfies this one. a scheduler may book an appointment and may not read the notes

The sentence in monospace is the actual unit of work. It goes in the project’s rule book, a person approves it, and the tests are generated from the approved sentence rather than from a model’s reading of your UI. That is the difference between a test that encodes what the product must do and one that encodes what the product currently does — the second kind passes forever, including on the day the behaviour was wrong.

None of these is a vertical edition, and there is nothing to switch on. They are the same actors, environments and rules the rest of this page describes, arranged the way that industry already works.

Critical-journey coverage

Which business outcomes are protected?

Not “how many tests do we have?” — that number goes up while the checkout stays unprotected. Vera maps the journeys your business depends on and tells you, per journey, whether anything is actually guarding it.

JourneyCriticalityCoverageHealth Checkout critical partial flaky Finance approval critical covered failing Refund request critical covered flaky Discount rules high covered healthy Account recovery high uncovered unknown

“Covered” does not mean “passing.” A journey is covered when the tests linked to it exist and have run — whether they passed is the health column, and whether they assert anything at all is a third question again. Finance approval above is covered and failing; that is not a contradiction, it is the point. One blended percentage would hide all three.

A journey with a deleted test reads partial, never quietly thinner: the broken link stays visible until somebody decides about it.

Vera can propose journeys by crawling your app — and they stay suggested until a person confirms them. An unconfirmed guess never counts as coverage, and never enters the denominator. How Vera proves a test tests something →

The hard question

“Anyone can generate a test. How do you know it tests anything?”

A test that passes no matter what your app does is worse than no test — it reports green, and it counts as coverage. Four gates stand between a generated test and that word. The third is the one that matters.

01

It is written against your real page

Vera maps the live DOM first, so the model writes against selectors it has checked exist.

02

Empty tests never reach you

No interaction, no assertion, or a step missing its selector — caught before you see it.

03

The negative control: it has to be able to fail

Vera re-runs the test with its expectations flipped. Every control must fail. If it passes both ways, the assertions are inert — and Vera says so.

04

Coverage that refuses to flatter you

A rule counts as covered only once a test that proved it can fail has run against it.

The test, as authored
qty 9999 · expect reject → rejected
qty 1 · expect pass → accepted
negative control
qty 9999 · expect pass ← flipped
control failed — as it must
verdict: sensitive — this test can tell the difference
The distinction most tools cannot make

Vera has a status that is worse than untested. It is tested by a test that proves nothing — and it is reported as a problem rather than folded into a percentage.

How Vera proves it, mechanism by mechanism →

Who it’s for

Sharp enough for one person. Governed enough for a company.

For individuals & small teams

Ship like you have a QA department

Everything you need to stop shipping regressions, without writing or maintaining test code.

  • Record or describe — click through your app once, or type one sentence and let the AI build the suite.
  • Your AI key, your cost — generation and healing run on your own Anthropic, OpenAI, or Google key. No markup, no credits.
  • Evidence for every run — video, traces, and failure screenshots you can actually debug from.
  • Share proof with clients — one revocable public link to a read-only run report.
  • Set-and-forget schedules — cron runs against staging or production with alerts when something breaks.
For engineering teams

Make the pipeline trustworthy again

Org-grade controls on top of the same engine — so green means green and red means real.

  • Gate PRs on real failures — the GitHub Action treats quarantined and passed-on-retry tests as warnings, not blockers.
  • Quarantine & flake scores — flaky tests keep running and recording, but stop poisoning CI.
  • Coverage map — your critical user journeys vs. what’s actually tested, and how healthy each one is.
  • Custom roles & invitations — permission-level RBAC, not just admin-or-member, plus an append-only audit log.
  • Environments — preview, staging, production — each with its own URL, variables, and auth.
  • ROI you can report up — trends, flakiest tests, and minutes saved by AI generation and healing.

Get started

Your next critical regression should be found by Vera — not by a customer.

Show Vera what your business depends on and start protecting it before the next release. Free plan, your own AI key, no credit card.