Bug life cycle
The bug life cycle is the sequence of states a defect passes through from the moment it is reported to the moment it is closed. The exact state names vary between teams, but the shape is constant: reported, triaged, being worked on, verified, closed.
The longer version
A defect is a small workflow, and naming its states is what lets a team answer questions about the queue as a whole rather than about individual tickets. The states are not bureaucracy: each one marks a change in who is responsible for the bug next.
The common shape is New or Received for something reported and not yet assessed, Assigned or In Progress once an owner is working on it, Fixed or Resolved when the change is made, Verified once someone other than the author has confirmed the fix against the original report, and Closed when nothing further is required. Two exits sit alongside the happy path: Rejected, for behaviour that turns out to be intended, and Duplicate, for a report that names something already tracked.
The state most often skipped is verification, and skipping it is how a fix that addressed the wrong cause gets closed. Verification is a separate step precisely because it requires somebody other than the person who wrote the fix to reproduce the original report and confirm it no longer reproduces.
A bug can also move backwards. A verified fix that regresses reopens, which is why the life cycle is a graph rather than a line. Teams that measure their process usually watch the reopen rate, because a bug that keeps returning is evidence that the fixes are addressing symptoms rather than the cause.
Common questions
What are the stages of the bug life cycle?
Names vary by team, but the sequence is reported, triaged and assigned, in progress, fixed, verified by someone other than the fixer, and closed. Rejected and Duplicate are the two exits for reports that turn out to describe intended behaviour or something already tracked.
Why is verification a separate stage?
Because the person who wrote a fix is the person least likely to notice that it addressed the wrong cause. Verification means reproducing the original report and confirming it no longer reproduces, done by somebody else. A life cycle without it closes bugs that are not fixed.
Who moves a bug between states in the life cycle?
Each transition has an owner. Whoever triages moves a report from new to assigned, or to rejected or duplicate. The assigned developer moves it to fixed once the change is made. A tester, or any person other than the fixer, moves it to verified after reproducing the original report against the fix, and then closes it. A reporter or tester reopens it if the failure returns.
Bug reports that arrive ready to triage.
Collect replay, console, network and browser context with the Free plan.