Survives a redesign
Anything pinned to CSS classes or DOM position is rewritten the first time design touches the page. Resolution by role, label and visible text outlives markup.
Every regression tool looks good the week you set it up. The question is what it costs you in the sprint after a redesign, and what a red run tells you at 6pm on release day when somebody has to decide whether to ship.
Join the waitlist18:04 · suite red
14 failed
AssertionError: expected true
is the app broken, or the suite?
18:04 · the other report
Checkout failed at step 6.
app: “Place order” stayed disabled
7 other checks passed
video · trace · console at the step
Anything pinned to CSS classes or DOM position is rewritten the first time design touches the page. Resolution by role, label and visible text outlives markup.
A suite that only runs nightly finds yesterday's break. Triggering on a pull request, against that branch's preview URL, is where regression pays for itself.
A red run is a question until somebody answers it. The answer should come from the tool: the app misbehaved, the check named something absent, or the runner itself failed.
Video, trace, console and network from the run, not a screenshot and a stack trace. Whoever picks up the failure did not watch it happen.
Start with the flows where a silent break costs you money or locks somebody out. Eight of these, running on every pull request and read by somebody, beats a hundred that nobody opens.
It is the same checks, repeatedly, forever. That changes what matters: not how fast you can author a test, but how little the suite costs you between releases. A suite that needs an afternoon of repair every sprint is a suite that gets skipped the one time it mattered.
Fewer than you think, covering the flows where a break would actually stop revenue or lock users out. Sign-up, sign-in, checkout, and whatever your product's core action is. A hundred shallow checks nobody reads is worse than eight that people trust.
Only once you trust the result. A suite that cries wolf gets overridden, and an overridden gate is not a gate. Run it on every pull request first, watch how often it is right, and make it blocking when the team stops arguing with it.
A run you are happy with is saved as a procedure and replayed on demand, on a schedule, from CI, or against a pull request's preview URL. Replays do not re-plan with the model, so they are cheap and repeatable, and each one carries video, trace and a written report.
Saved procedures can hold per-step visual baselines, and a replay diffs the step against its baseline and shows baseline, actual and diff side by side. That catches the class of break that a functional assertion passes straight through.
Turning a run you trust into a saved check you replay.
Four jobs hide behind the phrase. Which one you are buying.
When the suite's upkeep is the reason it stopped running.
Why recorded clicks are the least durable regression you can own.