Bug reporting
Bug life cycle
The bug life cycle is the sequence of states a bug passes through from the moment it is reported until it is closed: new, assigned, in progress, fixed, verified and closed, with side exits for duplicates and bugs nobody can reproduce.
Each state has an owner, so the life cycle is really a record of who is holding the bug and what they owe next.
At a glance
| State | Meaning | Who moves it on |
|---|---|---|
| New | Reported, not yet confirmed; Chromium keeps new reports on an Unconfirmed list until someone verifies them (Chromium) | Triage, by reproducing it |
| Assigned | Confirmed and owned (Chromium) | The assignee, by starting work |
| In progress | A fix is being written (Chromium) | The assignee, by landing the fix |
| Fixed / resolved | The fix has landed and is awaiting verification by the reporter (Jira) | The reporter or QA, by re-testing |
| Verified | The fix confirmed by Quality Assurance (Bugzilla) | Whoever closes the release |
| Closed | Finished, and the resolution is correct (Jira) | Reopened only if the bug returns |
| Side exits | Duplicate, cannot reproduce, or not planned, each recorded as the reason for closing (GitHub, Jira) | Triage, with a reason |
| Tracked with | OverlayQA Issue Tracking | Your team, across open, in progress, resolved, verified and closed |
Why it matters
Without named states, "fixed" means one thing to the developer and another to the person who reported the bug. Bugzilla's status and resolution fields exist to say exactly where a bug stands, "from not even being confirmed as a bug, through to being fixed and the fix confirmed by Quality Assurance" (Bugzilla). Jira draws the same line: Resolved means a resolution has been taken and is awaiting verification by the reporter, Closed means the resolution is correct, and Reopened means it was not (Jira). GitHub closes an issue when the bug is fixed, when feedback is acted on, or to show the work is not planned, so a close always carries its reason (GitHub).
What are the stages of the bug life cycle?
- 1. New. Someone files the report. Chromium treats it as unconfirmed until a second person reproduces it.
- 2. Assigned. Triage confirms the bug, sets severity and priority, and names an owner.
- 3. In progress. The owner accepts it and starts the fix; Chromium labels this state In Progress (Accepted).
- 4. Fixed. The change has landed. In Jira this is Resolved, and the reporter is expected to check it.
- 5. Verified. The reporter or QA re-runs the steps on the fixed build and confirms the bug is gone.
- 6. Closed. The release ships with the fix, and the record stays closed unless the bug returns.
- Reopened. The bug came back or the fix was wrong. Jira moves the same record back to assigned or resolved rather than opening a new one.
Bug states across trackers
| Stage | Chromium | Jira |
|---|---|---|
| Reported | New, on the Unconfirmed list | Open or To Do |
| Owned | Assigned | Open, with an assignee |
| Being fixed | In Progress (Accepted) | In Progress |
| Fix landed | Fixed | Resolved, awaiting the reporter |
| Confirmed fixed | Verified | Closed |
| Came back | Reported again or reopened | Reopened |
Common mistakes
- Closing on "fixed". Jira keeps Resolved and Closed apart so the reporter can confirm the fix before the record is finished.
- Closing without a reason. Fixed, duplicate, cannot reproduce and not planned are different outcomes; GitHub and Jira both record which one it was.
- Reopening by filing a new bug. The history, the steps and the discussion live on the original. Jira reopens the same record.
- Leaving bugs in new forever. A report nobody has confirmed is not yet a bug. Chromium keeps the unconfirmed list separate so it gets worked.
- States nobody can define. Bugzilla lets each installation customize its workflow and asks that every status and resolution be documented, so a state means one thing to everyone.
Frequently asked questions
What is the difference between resolved and closed?
In Jira, Resolved means a resolution has been taken and the bug is awaiting verification by the reporter; Closed means the resolution has been confirmed correct. A resolved bug can be reopened if the reporter still sees it; a closed one can be reopened too, but it should not need to be.
Who verifies a bug fix?
The person who can reproduce the original report: the reporter, or a QA contact. Bugzilla records a QA contact on each bug as the person responsible for quality assurance on it, and Jira expects the reporter to verify before a resolved bug is closed.
What is a reopened bug?
A bug that was marked resolved and then found to be wrong or back. Jira describes Reopened as a work item that was once resolved but whose resolution was deemed incorrect; from there it is assigned or resolved again on the same record.
How many stages does a bug life cycle have?
It depends on the tracker. Chromium names five: New, Assigned, In Progress, Fixed and Verified. Jira adds Reopened and Closed, and Bugzilla lets each installation customize the workflow. The shape is the same everywhere: reported, confirmed, fixed, verified, closed.
What does closing a bug as not planned mean?
The team has decided not to fix it. GitHub closes issues to show that work is not planned as well as when a bug is fixed, and Jira records the same decision as a resolution of Won't do, so the record is finished without claiming the bug is gone.
Sources: Chromium, Bug Life Cycle and Reporting Guidelines, Atlassian, What are work item statuses, priorities, and resolutions?, Bugzilla, Understanding a Bug, GitHub Docs, Closing an issue.
Last updated October 22, 2026