The goal of software testing is to make sure that the software should remain bug-free. And a software tester works to achieve this objective by discovering the errors with minimum time and effort, also by ensuring the software meets the customer requirements. A good engineer can identify as many bugs as possible, but finding the bugs is only a starting point. A bug has to pass through the several stages for reaching a final solution. It’s the responsibility of the test engineer to place the bug in the correct state and track it further. He would do it efficiently if he is well-versed with the software bug life cycle. Alternatively, we call it the defect life cycle.
Next, every organization may have a customized implementation of the bug life cycle fitted to its testing requirements. So, the whole process should have well documented and clearly communicated to the testing teams.
The entire lifecycle of a bug can be long. Beginning with the detection of a defect to a verified fix the process may demand the involvement of testers, developers, and other stakeholders like team leads and project managers. Hence, the duration of the software bug life cycle directly impacts the overall testing efforts so it should be well defined. In the absence of a clear definition or understanding, the product managers and the senior management might think of an unrealistic projection of the time and resources required to test the software.
In the absence of a clear definition or understanding, the product managers and the senior management might think of an unrealistic projection of the time and resources required to test the software. Before we proceed further please check out some of our best posts on the QA and automation testing interview questions.
Let’s now quickly analyze the lifecycle of a typical bug, answer a few questions and review some of the software tools that can ensure the process is smooth and efficient. Just to summarize, we’ll talk about the following points in the next sections.
- Software Bug/Defect Life Cycle – Definition.
- Most Popular Bug Tracking Solutions.
- The Different States in the Bug Life Cycle.
Software Bug Life Cycle (Jira vs. Bugzilla)
It is a cyclic process which a defect follows through during its lifetime. It begins when a tester logs the bug and ends when he decides to close it after thorough verification. Hence, the software bug life cycle is related to the defect found during testing.
Testers in the testing community mostly use the following two software tools.
- Bugzilla bug tracking system.
- Jira allows bug tracking, issue monitoring, and project handling.
Both of these tools help to shorten the downtime, improves productivity as well as communication, and raise customer satisfaction.
Both Jira and Bugzilla have their default version of the software bug life cycle with slight variations. These solutions always allow you to alter the stages as per the structure of your testing framework.
Please have a look at the below snapshots of the two most popular defect tracking solutions. We’ve tried to simplify the stages leaving all the complexity aside so that you can easily remember the defect life cycle steps.
Answer. A software bug can be in one of the following states.
- New – A latent defect the tester enters for the first time, it’s by default in the new state.
- Assigned – when the tester has logged the defect, the technical lead confirms the bug and assign it to the corresponding developer in the development team. The defect then enters into the Assigned state.
- In Progress – The developer starts addressing the bug and is currently investigating the problem. At this point, there are two possibilities of either deferring or rejecting the issue.
- Resolved – The dev team has fixed the defect, and it is ready for testing.
- Verified – The QA team has tested the error with the latest build, and the tester has confirmed the defect as fixed.
- Closed – It is the terminal state of a bug in the life cycle. The tester can close it after retesting or if he finds it as duplicate or considers as NOT a defect.
- Reopened – If the bug persists even after a fix from the developer. The tester changes the status to “reopened”. And, the bug passes through the same life cycle once again.
- Deferred – When there is no scope to address a defect in a particular bug life cycle, then you can move it to the future release.
- Rejected – Any of the stakeholders may dismiss or discard a bug for any of the three reasons. Viz –
- Duplicate defect,
- Not a Defect,
Footnote – Software Bug Life Cycle
In case, you are reading this post to know about the several stages of the bug life cycle and find this post useful then please do share it with your friends.
The software bug life cycle is an integral part of the software testing process and a very dear concept for the interviewers.
Hope you would have got the right answers to your questions.