Table of Contents
Executive Summary: Why This Old Topic Matters Again
Continuous delivery is not a new subject. The practices in this playbook would have been recognisable to a team in 2018, and most of them would have been recognisable in 2014.
What changed is the cost of not having them.
DORA’s 2025 research - renamed “State of AI-assisted Software Development”, drawing on nearly 5,000 technology professionals and more than 100 hours of qualitative interviews - found that 90% of respondents are now using AI in their work. It also found something less comfortable, stated in the report’s own words:
“AI’s primary role is as an amplifier, magnifying an organization’s existing strengths and weaknesses.”
AI does not automatically improve software delivery performance. It strengthens high-performing teams and exposes weaknesses in organisations with fragmented processes and poorly structured development systems.
AI did not create a new class of quality problem. It multiplied an existing one. Before, defective code entered your repository at the speed a human could type it. Now it enters at the speed an agent can generate it, and every weakness in your test suite, your review process and your deployment pipeline is multiplied by that same factor.
This article is not a set of principles. It is a reference pipeline: what runs at each stage, what it costs, how long it should take, and what it can and cannot catch.
What DORA 2025 Changes About This Conversation
The rename is the finding
The report was previously called “Accelerate State of DevOps”. Renaming it to “State of AI-assisted Software Development” is not branding. It signals that the research scope has expanded because the thing being studied has changed.
AI is an amplifier, not an improvement
This is the finding that should reframe how engineering leaders think about tooling budgets. Two teams adopt the same assistant. The team with a fast, trustworthy test suite and disciplined review ships more, with the same defect rate. The team with a flaky suite and rubber-stamp reviews ships more defects, faster, and discovers them later.
Same tool. Opposite outcome. The variable was never the tool.
Where the returns actually come from
The report is direct about where investment pays:
“the greatest returns on AI investment come not from the tools themselves, but from a strategic focus on the underlying organizational system.”
For anyone who has had to justify time spent on pipeline work against time spent on features, that sentence is a useful thing to be able to cite.
The seven capabilities are not new
DORA’s AI Capabilities Model identifies seven foundational practices that amplify AI’s positive effects and mitigate its risks:
- Clear and communicated AI stance
- Healthy data ecosystems
- AI-accessible internal data
- Strong version control practices
- Working in small batches
- User-centric focus
- Quality internal platforms
Look at items four, five and seven. Strong version control, small batches and quality internal platforms are the core of continuous delivery as it has been taught for a decade. DORA’s own characterisation is that these are “the same battle-tested principles of elite DevOps and product management that high-performers have been cultivating for years”, and that the best preparation for AI is to apply existing high-performance principles to the new context.
The playbook below is, in effect, the engineering half of that list.
The counter-reading worth holding
Not all commentary on the 2025 results has been celebratory, and the sceptical framing - captured in one industry summary as “faster, but are we any better?” - is the right question to keep in mind.
Throughput improving is not the same as quality improving. A team that deploys twice as often with twice the failure rate has not improved; it has just moved faster in an unchanged direction. That is precisely why the metrics section below insists on reading throughput and stability together rather than separately.
The 2026 Follow-Up: Someone Finally Costed the Dip
DORA returned to the subject in April 2026 with the ROI of AI-assisted Software Development report, last updated 22 April 2026. For a pipeline article it matters for one reason: it puts a number on the transition period, and the number is not small.
The accompanying ROI calculator published on dora.dev exposes the model’s defaults, and two inputs are named explicitly:
| Input | Default |
|---|---|
| J-Curve productivity drop (%) | 15% |
| J-Curve productivity drop timeline (months) | 3 |
A 15% output reduction across three months, treated as the expected path rather than a failure case, and reported in the results as a separate J-Curve cost alongside tooling and training in the first-year investment.
Why a pipeline article should care
The calculator will not produce anything until you supply your current deployments per year, current features deployed per year, current change failure rate, failed deployment recovery time, and cost of downtime per hour.
Those are the delivery metrics the next section covers, and the demand for them is the argument for this entire playbook compressed into one form. A team without a pipeline cannot supply those numbers, cannot establish a baseline, and therefore cannot tell whether it climbed out of the dip or simply stopped noticing. The pipeline is not merely how you ship safely; it is the instrumentation that makes the investment legible at all.
DORA sets the expectation carefully. Its methodology note asks readers to “treat these calculations as a high-uncertainty estimate meant to spark a conversation rather than a rigid mathematical formula”, and concedes that “all models are wrong, but we hope this one proves useful”. That caution applies with more force to any ROI figure a vendor hands you.
Reporting on the release, InfoQ summarised the report as arguing that returns come from the underlying organisational system rather than the tools - the same amplifier conclusion as 2025. The full report is distributed behind a download form, so we present that as InfoQ’s account rather than a finding we verified at source.
The Five Metrics That Keep You Honest
DORA’s four software delivery metrics officially became five, with Reliability added as an outcome measure in the 2022 report.
The important discipline is not memorising them. It is never reading a throughput metric without its stability counterpart.
| Read this | Alongside this | Because |
|---|---|---|
| Deployment frequency | Change failure rate | Deploying more often while breaking more often is not progress |
| Lead time for changes | Failed deployment recovery time | Shipping fast matters less if recovery is slow |
| Both throughput measures | Reliability | The user’s experience is the outcome, not your deploy count |
A team that improves deployment frequency by forty per cent and change failure rate by twenty per cent has made things worse for its users while improving a number that looks good on a slide.
Establish a baseline before you change anything
This is the step most teams skip and the one that makes everything afterwards arguable. Measure your five metrics for a normal month before introducing an AI assistant, a new test layer, or a pipeline change.
Without a baseline, every subsequent conversation is a matter of opinion. With one, it is a matter of arithmetic.
Layer 1: Static Analysis and AI Review on the Pull Request
The first layer is the cheapest, fastest and most under-invested.
Linting and type checking come first
Formatters, linters and type checkers run in seconds and catch a class of problems that no downstream layer should have to think about. Anything a type checker can catch should never reach a test suite, because the feedback loop is thirty seconds instead of ten minutes.
The rule of thumb: push every check to the earliest stage that can perform it. Cost per defect rises sharply at each subsequent layer.
AI review on the diff
This is the layer that changed most in the last two years, and the one where implementation quality varies enormously.
The naive approach - send the diff to a model, post the response - produces a reviewer that comments on everything and is muted within a fortnight. The approach that works builds structural understanding of the codebase first. Tools like CodeRabbit construct an abstract syntax tree representation of the repository so that a change to a shared function can be evaluated against its callers rather than in isolation.
The difference is not cosmetic. A reviewer that cannot see downstream callers will either miss real breakages or flag safe changes as dangerous, and both failure modes erode trust.
The false positive problem is the whole problem
Automated review has an asymmetry that is easy to get wrong.
A missed defect costs you once. It reaches production, you find it, you fix it.
A false positive costs you repeatedly. It costs the engineer’s attention on that pull request, and it costs a fraction of their trust in every future comment. Enough of them and the bot is mentally filtered out - at which point its correct findings are lost too, and you are paying for a tool that produces negative value.
This is why raw model capability is a poor proxy for review quality, and why we treat it as a separate question in our companion piece on evaluating models for code review.
Practical guidance: tune for precision over recall at the start. A reviewer that comments rarely and is right earns the trust that lets you widen its scope later. One that comments constantly never gets the chance.
Layer 2: The Test Pyramid, Still
The pyramid has been declared obsolete many times and remains correct, because it describes an economic reality rather than a fashion.
| Layer | Scope | Speed | Runs on | Proportion |
|---|---|---|---|---|
| Unit | One function or module | Milliseconds | Every commit | Most |
| Integration | Real boundaries: database, queue, API | Seconds | Every pull request | Some |
| End-to-end | Full user journey through the UI | Minutes | Critical paths only | Few |
Integration tests are the underweighted layer
Most teams have adequate unit tests and some end-to-end tests, and too little in between.
Integration tests are where the highest-value defects live, because most production incidents are not logic errors inside a function - they are incorrect assumptions at a boundary. A query that returns null where the code expected an empty array. A queue message whose schema drifted. An API that started returning a 202 instead of a 200.
Unit tests cannot see those, because the boundary is mocked. End-to-end tests can see them but are too slow and too fragile to cover them systematically.
Flaky tests are the thing that actually kills pipelines
If there is one intervention worth prioritising above everything else in this article, it is this one.
A flaky test is a test that fails without a corresponding defect. Its damage is not the wasted run. It is that it teaches your team to re-run the suite instead of reading the failure. Once that reflex is established, your test suite has stopped being a quality gate and become a delay, and a genuine failure will be re-run past without being read.
The economics are brutal. A suite with a 2% flake rate across 200 tests fails spuriously on roughly 98% of runs by our arithmetic - meaning a red build carries almost no information. At that point you do not have a slightly unreliable safety net; you have none.
Treat flakes as production incidents. Quarantine them out of the blocking path immediately, track them, and fix or delete them within a fixed window. A deleted flaky test is strictly better than a retained one, because at least the gap is honest.
Time budgets, and what happens when you exceed them
Feedback loops have thresholds beyond which behaviour changes rather than degrading gracefully:
- Under 10 minutes on a pull request - engineers wait for the result.
- 10 to 20 minutes - they context-switch and come back, losing focus.
- Over 20 minutes - they stop waiting, batch larger changes to amortise the wait, and review becomes harder because the diffs are bigger.
That last outcome is worth naming, because it is how a slow CI pipeline quietly damages code review quality - a connection that is rarely made. It also runs directly against DORA’s fifth capability, working in small batches.
Layer 3: Agentic UI Testing, and What It Actually Costs
This is the layer that did not exist in earlier versions of this playbook.
Why selector-based end-to-end tests rot
A conventional end-to-end suite couples tests to implementation details. A CSS class is renamed, a component library is upgraded, a wrapper element is added for layout - and tests fail while the application works perfectly.
The organisational response follows a predictable arc: rewrite selectors, add data-testid attributes everywhere, watch those drift during refactors, stop running the suite in CI because it is too noisy, stop maintaining it. A suite nobody trusts is worse than none, because it consumed the budget a working one needed.
The vision agent approach
Tools like TestDriver.ai take a different bet, summarised in their own phrasing as “no selectors, no DOM, no setup”. A vision agent reads the screen the way a person does and writes the test from a plain-English description of the flow.
The obvious objection is non-determinism, and the answer is caching vision fingerprints of discovered elements so subsequent runs replay deterministically rather than re-reasoning from scratch.
What this approach reaches that selector-based tools cannot:
<canvas>elements, which have no queryable internal structure- Video players, with inconsistent and often shadow-DOM controls
- iFrames and OAuth flows that navigate into pages you do not control
- Native desktop applications on Windows and macOS
- Browser extensions, including popup and background pages
- Third-party software you did not write and cannot instrument
That last category is genuinely useful and rarely discussed. A vendor application your business depends on can be verified after each vendor update, which is otherwise a manual job or no job at all.
The cost, in numbers
Agentic testing is billed by time, and time is what a test suite consumes. TestDriver.ai prices Pro at $20 per user per month including 10 test hours, with overage at $3.60 per hour.
Here is why that matters, and the following calculation is ours:
A suite taking twelve minutes per run, on a repository seeing sixty pull requests per month, consumes roughly twelve hours before any re-runs after fixes. That is already past the included allowance in the first month.
| Monthly usage | Calculation | Cost per user |
|---|---|---|
| 10 hours | Included | $20 |
| 20 hours | $20 + 10 × $3.60 | $56 |
| 40 hours | $20 + 30 × $3.60 | $128 |
The strategic implication is the same one that applies to every metered test platform: suite runtime is a cost centre, not just a delay. Time spent making tests faster pays back directly in both engineer attention and invoice.
Broader platforms price differently again. TestMu AI, formerly LambdaTest until its rebrand on 12 January 2026, bills its KaneAI agent per agent from $19 per month and offers a real device cloud spanning more than 10,000 Android and iOS devices. One detail there catches people out: its Automation free tier is 100 lifetime minutes, not 100 per month.
The honest caveat
Vision-based testing carries risks that caching mitigates rather than eliminates: sensitivity to resolution and viewport changes, theming, animation timing and internationalisation, where text length changes layout.
We have not run an independent benchmark, and we are not claiming these problems occur in practice with any specific product. We are saying that these are the scenarios a serious evaluation puts in front of the tool, because they are where the approach is theoretically weakest.
Layer 4: Human Feedback Is Still a Layer
No agent catches “this feels cluttered”, “the tone is wrong for our brand”, or “a customer will not understand this label”. Those are judgements, and they belong in the pipeline as a deliberate stage rather than as an accident.
The failure mode is not the absence of human feedback - it is human feedback arriving as an email with a screenshot attached, a Slack message with no context, and a phone call describing a button that may or may not be the button in question.
Tools like BugHerd address this by pinning comments to the element they concern and capturing browser, operating system and resolution metadata automatically. The client never has to be asked which browser they were using, which collapses a two-day clarification loop into a single report.
Its pricing model reinforces the workflow: unlimited guests on every plan, so inviting every stakeholder who should review costs nothing. When adding a reviewer is free, feedback arrives inside the system. When it costs a seat, someone forwards a screenshot instead.
Where this belongs: on preview deployments, before production. Which requires having preview deployments.
Deployment: Where Confidence Gets Cashed In
Preview deployments per pull request
Every pull request should produce its own deployment at its own URL. This is not a luxury; it is what converts review from a sequential activity into a parallel one.
Without previews, design review, stakeholder sign-off and manual QA all happen after merge in a shared staging environment that only one branch can occupy. With previews they happen before merge, simultaneously, on isolated URLs.
Both Vercel and Netlify provide this as a default behaviour rather than something to configure.
Rollback should not require a build
This is an operational property worth designing for explicitly. On platforms where rollback means promoting a previous deployment, recovery takes seconds and does not depend on your build pipeline being healthy at the time.
That second clause matters more than it sounds. Incidents and broken builds correlate - the same bad change often causes both. A recovery path that requires rebuilding from an earlier commit assumes working build infrastructure precisely when you have least reason to trust it.
This capability maps directly to failed deployment recovery time, one of the five metrics.
Progressive delivery
Feature flags and canary releases decouple deploying from releasing. Code reaches production without reaching all users, which shrinks the blast radius of anything the earlier layers missed - and something always gets through.
Putting It Together: A Reference Pipeline
| Stage | Runs | Time budget | Blocks merge |
|---|---|---|---|
| Pre-commit | Format, lint, type check | Seconds | Yes |
| On PR open | Unit tests, AI review | Under 5 minutes | Yes |
| On PR update | Integration tests | Under 10 minutes | Yes |
| On PR ready | End-to-end or agentic, critical paths only | Under 20 minutes | Yes |
| On preview deploy | Human feedback | Asynchronous | No |
| On merge | Deploy to production, smoke tests | Under 10 minutes | Yes |
| Post-deploy | Monitoring, alerting | Continuous | Automatic rollback |
Three principles are encoded in that table.
Cheap checks run first and often. Expensive checks run late and selectively. Cost per defect rises at every stage, so catching things early is worth structural effort.
Everything before the preview deployment blocks. Human feedback does not, because it is judgement rather than correctness and blocking on it creates a bottleneck at the slowest human in the process.
The last line is automatic. Post-deployment monitoring with automatic rollback is the layer that catches everything the previous six missed, and it is the only one that operates without a person present.
The Anti-Patterns That Kill Pipelines
Each of these is common, and each converts a quality investment into pure cost.
Flaky tests everyone re-runs by reflex. Covered above. This is the most damaging item on the list because it silently disables every other layer that depends on the suite being believed.
End-to-end tests used as unit tests. Testing business logic through the UI is slow, fragile and hard to diagnose. If a failure requires reading a video recording to understand, the test is at the wrong layer.
CI slow enough that people batch changes. Directly opposes DORA’s small-batches capability, and it degrades code review quality as a side effect that nobody attributes to the pipeline.
Gates that can be bypassed, and routinely are. A required check that is regularly overridden is not a gate. It is a delay with a bypass procedure, and it produces a false sense of coverage.
An AI reviewer noisy enough to be muted. Once trust is gone it does not come back easily, and the tool now costs money to produce nothing.
Measuring throughput without stability. The most seductive failure, because the numbers improve while outcomes worsen.
Where to Start If Everything Needs Work
Most teams reading this will recognise more than one problem. The ordering matters, because some fixes unlock others.
- Fix flaky tests first. Nothing else works while the suite is untrustworthy. Quarantine, then fix or delete.
- Establish the five-metric baseline. You cannot demonstrate improvement without a before.
- Get CI under ten minutes. This unlocks small batches, which improves review quality, which improves everything downstream.
- Add preview deployments. They parallelise review and enable structured human feedback.
- Add AI review, tuned for precision. Start narrow and widen as trust is earned.
- Add agentic testing on critical paths only, having budgeted for the hours.
Notice that the AI-related items come fifth and sixth. That ordering is the whole argument: AI amplifies what is already there, so build something worth amplifying first.
If you are at the point of choosing tooling, our guide to choosing an AI coding assistant covers the readiness check that should precede that decision.
Frequently Asked Questions
Does AI make our test suite less important?
The opposite. DORA’s research found AI amplifies existing conditions, which means a weak suite now lets defects through at the rate an agent generates code rather than the rate a human types it.
How fast does CI need to be?
Under ten minutes on a pull request keeps engineers waiting for the result. Past twenty minutes they batch larger changes to amortise the wait, which makes code review harder and works against small batches.
Should we replace Playwright or Cypress with a vision agent?
Not if your current suite is stable and maintained. Vision agents solve selector rot and reach surfaces like canvas, native desktop applications and third-party software. If selector maintenance is not costing you time, there is nothing to fix.
What is the single highest-leverage improvement?
Fixing flaky tests. Every other layer depends on the suite being trusted, and a suite that fails spuriously teaches the team to re-run rather than read.
How do we know any of this is working?
The five DORA metrics, read in pairs. Throughput alongside stability, always. Deployment frequency improving while change failure rate also rises is not an improvement.
How much should we budget for agentic testing?
Measure one full suite run, multiply by your monthly pull request volume, and add margin for re-runs. At TestDriver.ai’s published rate of $20 per user with 10 hours included and $3.60 per hour after, a twelve-minute suite across sixty pull requests exceeds the allowance in month one.