ProductHow it worksPricingBlogDocsLoginFind Your First Bug
An isometric charcoal diorama of a long row of small stone archway gates receding past the frame, each feeding a thin lime conduit into one lit control panel. Two conduits leave the panel: one runs through a wide open gate with no operator, the other bends to a narrow side gate where a lone figure inspects a single card
TestingRelease ManagementGo/No-Go Decision

What Is the Release Management Process? 10 Gates to Go/No-Go

Tom Piaggio
Tom PiaggioCo-Founder at Autonoma

The release management process is the ordered sequence of testing gates a build passes through between a merge and a production rollout, each one producing evidence a release owner uses to make the go/no-go decision: ship this build, or don't. Build verification, smoke, sanity, system, integration, non-functional thresholds, acceptance, staging shakeout, deployment verification and canary each answer a narrower question than the one before it, and the go/no-go decision is only as good as the evidence those gates actually produced.

The go/no-go used to be a meeting because the evidence was scattered. Someone opened six tabs, pinged whoever ran the acceptance pass, and tried to remember whether the migration had actually been rehearsed. What follows threads every gate in that release management process into one ordered flow: what fires at each stage, who owns it, what evidence it produces, and what a fail there means for the go/no-go criteria.

This is written for the engineer, SDET or release owner who has to decide whether a build ships, or who just got handed the job of naming and running one of these gates. It is not written for the QA lead deciding how to allocate a team's suite strategy across a broader testing org, the person asking whether an AI-generated test suite is actually asserting anything real, or someone choosing boundary values for a single test case. Those are real questions. They live one level up, or one level down, from this one.

The Release Management Process, Stage by Stage

Every gate in a release pipeline answers a version of one question at a different scale: is this specific thing good enough to let through. Naming ten gates only helps if each one also comes with an owner and proof that it ran.

Build verification comes first and asks the narrowest question: does the artifact exist in a runnable state. Smoke testing runs right after, wide and shallow across every critical subsystem, deciding whether the build is worth deeper attention. A sanity check runs only after a specific fix, confirming that one change worked without re-running everything else, a different trigger from a full regression pass asking whether anything, anywhere, broke. System testing checks the assembled product against its requirements as a black box, and the line between system and integration testing is scope of assembly, not vocabulary. Integration and end-to-end checks confirm services and user flows spanning more than one component still work together. Non-functional thresholds compare live readings, latency, load, accessibility, against a budget written down in advance; the functional versus non-functional split is worth reading if that distinction still gets argued about.

StageOwnerEvidenceFail action
Build verificationBuild ownerCompile, deploy, health check passFails fast, never queues
SmokeRelease ownerCore paths respond on fresh buildBlocks promotion to QA
SanityEngineer who made the fixTargeted fix confirmed workingFix reopened, not broadly retested
SystemQA / test ownerAssembled product meets requirementsLogged as a system-level defect
Integration / E2EQA / test ownerCross-service and user-flow paths passDefect ticket, severity assigned
Non-functional thresholdsPerf / SRE ownerLatency, load, accessibility vs budgetLogged as a budget breach

The second half of the flow runs later, once a build has cleared every gate above and is being considered for a real environment or real traffic. Acceptance testing, split between UAT and OAT, asks whether the business and operations team are willing to sign off, a different question from whether the code works. A pre-production shakeout run confirms the staging environment itself is trustworthy before anyone relies on it. Deployment verification checks the deploy mechanism, the migration, the config, the rollback path, independent of whether the feature underneath it is correct. Canary testing runs last, against a slice of live production traffic, the only gate here that sees real users before the rest of them do.

StageOwnerEvidenceFail action
Acceptance (UAT / OAT)Business owner / opsSign-off against real usage criteriaRelease held pending sign-off
Pre-production shakeoutRelease ownerEnvironment-parity checks post-deployDeploy halted, environment fixed
Deployment verificationDeploy / release engineerMigration, config, rollback checks passAutomatic rollback triggered
CanaryRelease ownerLive traffic error rate vs baselineRollout paused, traffic reverted
Ten gates, one evidence trailGate evidence published before the decisionBuild verifySmokeSanitySystemIntegrationThresholdsAcceptanceShakeoutDeploy verifyCanaryEvidence published per gatePassFailAutomated passEvery gate clear, no meetingException reviewOne gate failed, risk named

Ten gates feed one evidence trail, and that trail forks into exactly two outcomes.

That fork, automated pass or exception review, is the argument this whole flow keeps making. Wiring these gates into a pipeline so a fail actually blocks a bad promote belongs to the CI/CD testing guide; the case for a gate mattering even more without a manual QA safety net is in the quality gate argument for AI-generated code.

Four Terms That Blur Together (And Where Each One Actually Sits)

Four terms show up constantly in release discussions and get defined inconsistently almost everywhere they appear. Placed on the same timeline as the ten stages above, each one turns out to name something specific.

Shakeout Testing

Shakeout testing is the first run against a production-like environment immediately after a deployment lands there. It isn't testing the feature. It's confirming the environment: did the right version deploy, does it have the resources and connections it's supposed to have, does the thing even start. A pass means the environment is trustworthy enough to run the rest of the pre-production gates against. A fail usually means the environment is broken, not the code.

Confidence Testing

Confidence testing isn't a distinct gate with its own checklist. It's the informal name teams use for whatever quick pass gives them enough confidence to move forward, and in most organizations that's smoke testing wearing a softer name. The term persists because "confidence" describes the psychological function, can we trust this enough to proceed, rather than the technical one, which subsystems got checked, and both descriptions are trying to name the same gate from different angles.

Pre-Production Testing

Pre-production testing is the band of gates that run in a staging environment before production traffic touches the build: system testing, acceptance, deployment verification, and the shakeout run that confirms the environment underneath all three. It can genuinely tell you whether the build behaves correctly against realistic data and infrastructure. What it cannot tell you, no matter how close staging gets to production, is how the build behaves under real concurrent load or the exact outages and rate limits that only show up once real users are involved. That gap is what canary testing and testing in production exist to close.

Deployment Testing

Deployment testing verifies the deploy mechanism itself, not the feature that mechanism is delivering. Did the migration run cleanly. Did the configuration and secrets load. Does a rollback actually roll back. A build can pass every functional gate above and still take the application down if the deploy script silently fails to apply a migration, and deployment testing is the gate built specifically to catch that category of failure, which every other gate in this flow is structurally blind to.

Four terms, one timelinePlaced relative to the deploy boundaryDeployPre-production testingStaging band before trafficDeployment testingVerifies the deploy mechanismShakeoutFirst check after deployConfidence testingSmoke check

Confidence testing and smoke sit on the same spot on the timeline because they name the same check.

How Autonoma Makes the Go/No-Go Evidence-Driven

The pattern this whole flow keeps running into is the one from the top: the go/no-go turns into a meeting when the evidence behind a gate has to be assembled by hand. Someone pings the person who ran the acceptance pass. Someone digs through a CI tab from three days ago to confirm smoke actually ran against this build, not a stale one. The gate itself might have been fine; the cost was reconstructing proof that it was.

We built Autonoma around the behavioral half of that evidence: the smoke, system, integration and acceptance-execution checks that verify the application through its running UI. Our agents read the codebase directly, generate the checks for the routes and flows that actually exist, and run them against a live, deployed preview rather than a saved snapshot, so a check survives a route rename instead of breaking on the next deploy. Because those checks run on every relevant commit or pull request instead of on a schedule someone has to remember, the gate publishes a current status by default: pass or fail, timestamped, instead of "as of the last time someone ran it by hand." That's what turns "gate status per stage" from a Slack thread into a fact anyone can read.

Mapped onto the flow above, that's the smoke, system, and integration/E2E rows in the first table, plus the execution half of acceptance testing (UAT and OAT still need a human to actually sign off on what the run showed). It does not touch build verification's compile-and-deploy half, the non-functional thresholds, or deployment verification's migration and rollback checks; those stay exactly where they already live, in CI, a load-testing tool, and deploy tooling. The evidence Autonoma contributes is real and current, but it's a subset of the dossier, not the whole thing.

Who Signs Off on a Release, and Who Owns the Go/No-Go

The honest answer isn't "it depends," and it isn't a committee either. The pattern that holds up is a single named release owner accountable for the decision, not a group vote. Google's SRE practice describes the same split, with a dedicated release engineering role owning the process rather than the feature teams feeding into it. Everyone else in the flow contributes evidence to that one person or role; they don't co-sign the decision itself.

The build owner contributes build verification and deployment-verification status. QA or the test owner contributes smoke, sanity, system and integration results, plus the open-defect list. The performance or SRE owner contributes the non-functional threshold readings. The business or operations stakeholder contributes the acceptance sign-off. The release owner takes all of that in and makes exactly one of two calls.

The go/no-go decision is only as good as the evidence it's built on. If that evidence has to be reconstructed by hand, the meeting isn't reviewing a decision. It's still trying to make one.

The first call is an automated pass: every gate is green, every threshold is inside its budget, and there's no meeting because there's nothing left to discuss. The second is an exception review: something failed, or something is being knowingly shipped with a known risk attached, and that's the one case that deserves a room full of people. The meeting isn't where the decision gets made from scratch. It's where a named risk gets accepted, or the release gets held, on the record, with a real release sign-off attached to whoever accepted it.

This is also where the release management process, as scoped here, stops. Deciding how a QA org allocates its testers, or which gate deserves automation first, is a different question from deciding whether today's build clears the gates it already has. This page answers the second one.

Who feeds the release ownerContributors don't co-sign, one owner decidesBuild ownerQA / test ownerPerf / SRE ownerBusiness / opsRelease ownerMakes exactly one callPassFailAutomated passNo meeting neededException reviewNamed risk, decision logged

Four roles feed evidence to one accountable owner, who makes exactly one of two calls.

What the Evidence Actually Is: The Software Release Checklist

Every gate above needs to publish something more specific than a green checkmark, or the go/no-go is still just a story someone tells in a meeting. Six kinds of evidence make up any software release checklist worth trusting, each tied back to a gate from the flow above.

Gate status per stage is the baseline: pass or fail for build verification, smoke, sanity, system, integration, non-functional thresholds, acceptance, shakeout, deployment verification and canary, timestamped against the exact build being considered, not "usually passes." Coverage of the critical paths says which subsystems the smoke and system gates actually touched, not just that some test ran. The open-defect list, with severity attached, tells the release owner what's already known to be broken and how bad it is. Non-functional threshold readings show the actual latency, load and accessibility numbers against the budget someone wrote down, not a subjective "it felt fine." Rollback verification confirms the deployment-testing gate actually exercised a rollback, not just a forward deploy. And the explicit list of knowingly-accepted risks is what turns an exception review into a real decision instead of a guess: naming, in writing, exactly what's being shipped anyway and why.

Every gate here is really an entry and exit criterion for the next one; the fuller definition is worth reading if this flow is getting formalized into a written policy. A filled-in version of this exact dossier, as a checklist you can copy, sits next to this page; that one hands over the template, this one explains what each row means.

Six evidence types, one dossierEach row ties to a gateGate statusPath coverageOpen defectsNFR readingsRollback proofAccepted risksRelease dossierOne artifact, not six threadsOwner reads it, not assembles

Six evidence types collapse into one dossier the release owner reads instead of chasing down.

What Autonoma Doesn't Decide For You

A release dossier has rows no execution agent should fill in, and saying so is part of using any of this correctly. Beta feedback, where real users validate a build in ways no automated check can simulate, stays human. The validation half of verification vs validation, does this solve the user's problem, is a judgment call, not a pass or fail check. Exploratory testing, someone poking at the product because something felt off, runs on a hunch an agent doesn't have. Load testing, accessibility audits, and contract testing between services stay their own specialties, with their own tooling. Unit-level structural coverage isn't something a UI-driving agent should claim either.

None of that is a gap. It's a boundary, and a release dossier that pretends otherwise is worse than one that's honest about which rows still need a person.

Where This Leaves the Go/No-Go

None of the ten gates above get shorter by being organized this way. What changes is what a release owner does at decision time: read a dossier instead of assembling one. When every gate publishes its own status by default, the go/no-go stops being a meeting where people report what they remember and becomes a read. Green across the board is an automated pass, and the only thing worth convening a room for is the one gate that failed, or the one risk someone is choosing to accept anyway, with a real release sign-off attached to that call.

Getting there doesn't require rebuilding the whole flow at once, just each gate no longer depending on someone's memory for whether it ran. For the behavioral gates in that flow, smoke, system, integration, acceptance execution, connecting a codebase to Autonoma is what keeps that status current without anyone chasing it down before a meeting that, increasingly, doesn't need to happen.

Frequently Asked Questions

It's the ordered sequence of testing gates a build passes through between a merge and a production rollout: build verification, smoke, sanity, system, integration, non-functional thresholds, acceptance, pre-production shakeout, deployment verification, and canary. Each gate produces evidence, and a release owner uses that evidence to make the go/no-go decision on whether the build ships.

A single named release owner, not a committee. Other roles, the build owner, QA or test owner, the performance or SRE owner, and the business or operations stakeholder, contribute evidence from the gates they own, but they don't co-sign the final call. That accountability pattern is what turns a group discussion into an actual decision with one name attached to it.

Shakeout testing confirms the environment right after a deployment: did the right version land, are resources and connections available, does the process even start. Smoke testing confirms the build's behavior once that environment is trusted: do the critical subsystems respond correctly. Shakeout answers 'is this environment safe to test against'; smoke answers 'is this build worth testing further.'

No. Confidence testing is an informal name for the same gate smoke testing describes. It names the psychological function, enough confidence to move forward, rather than the technical mechanics, which subsystems got checked, but in the vast majority of pipelines the two terms point at the exact same run.

It does the heavy lifting the decision depends on. Autonoma generates and runs the behavioral checks behind the smoke, system, integration, and acceptance-execution gates, so the evidence a go/no-go rests on is current and assembled for you instead of gathered by hand at the last minute. The call itself, including any risk someone is knowingly accepting, stays with the release owner by design, which is exactly where accountability should sit. Autonoma's job is to make sure that call is made on fresh evidence rather than a stale spreadsheet.

The criteria are the evidence each gate owes the decision, not a subjective readiness call: pass or fail status for all ten gates timestamped against the exact build, coverage of the critical paths, the open-defect list with severity attached, non-functional threshold readings against a written budget, proof that a rollback was actually exercised, and a written list of any risks being knowingly accepted. If all of those are green and inside budget, the release is an automated pass. If one is not, it becomes an exception review.

Pre-production testing is the band of gates that run in a staging environment before production traffic touches the build: system testing, acceptance, and the shakeout run that confirms the environment underneath them. Deployment testing is narrower and sits at the deploy boundary itself, verifying the mechanism rather than the feature: did the migration run, did config and secrets load, does a rollback actually roll back. A build can pass every pre-production gate and still fail deployment testing.

Related articles

Quara the frog standing beside a vertical panel of twelve status lights, ten glowing steady lime, one dimmed amber, one dark, above a single large lime go/no-go toggle at the base of the panel

Release Readiness Checklist: All 12 Gates, Filled In

The filled release readiness checklist: twelve gates as a live table, worked pass, waived and blocked statuses, and which rows still need a human signature.

Testing in production: an orderly lime-lit staging room opens through a gate into a larger, darker landscape of scattered irregular production nodes

Why Testing in Production Beats Staging Alone

Testing in production means checking live traffic on purpose. The four things staging can't fake, the practices that do it safely, and where the line sits.

Isometric dark scene where five lime-lit rails carrying cargo sleds merge into a single track through one gate, with Quara waiting just beyond it.

What Is Acceptance Testing? 5 Types, One Gate

Acceptance testing has five types, not one. The complete map, who runs each, and why acceptance is the least automatable gate in the release pipeline.

Isometric scene of a wide dark stream of traffic cubes flowing past untouched while one thin lime lane peels off, passes through a lime scanning gate and rejoins downstream, watched by the Autonoma frog mascot at a diverter lever

Why Your Canary Testing Keeps Missing Real Bugs

Canary testing fails silently when thresholds sit below what the traffic can prove. The metric, threshold and sample-size math that fix it.