On this page4 sections
ReferenceBeginner3-5 min reference

Defect Lifecycle

The states a bug moves through from "found" to "closed," who owns it in each state, and which transitions are valid. Workflows vary by tool (Jira, Azure DevOps, GitHub) but the shape is the same. Use this to keep a board honest — link out below for the full triage guide.

Status reference

StatusOwnerMeansGoes to
New / OpenReporterLogged, not yet triagedTriaged, Rejected, Duplicate
Triaged / AssignedLead / PMSeverity + priority set, owner assignedIn Progress, Deferred
In ProgressDeveloperBeing worked onFixed
Fixed / ResolvedDeveloperCode merged, awaiting verificationVerify (QA)
In VerificationQATester re-checking on a buildClosed, Reopened
ReopenedQAFix failed verificationIn Progress
ClosedQAVerified fixed (or won't-fix, agreed)Reopened (if it recurs)
Rejected / Not a bugLeadWorks as designed / can't reproduce
DuplicateLeadAlready tracked elsewhere— (link to original)
DeferredPMReal, but not this releaseTriaged (next cycle)

Resolution vs status

Status is where it is; resolution is why it closed. Common resolutions: Fixed, Won't Fix, Duplicate, Cannot Reproduce, By Design. A bug can be Closed with any of these — always record which.

When to use

During triage, daily bug-board reviews, and when a developer asks "why is this back on my plate?" (answer: it was Reopened after failing verification).

Common mistakes

  • Developers closing their own bugs — closing is QA's call after verification.
  • "Fixed" treated as done; it only means merged, not verified.
  • Reopening forever instead of logging a new bug when the symptom differs.
  • Closing as "Cannot Reproduce" without asking the reporter for environment + steps first.

// Related resources