Life Cycle Of Software Bugs

Defect life cycle is also known as Bug Life cycle It is the journey of a defect cycle, which a defect goes through during its lifetime. It varies from organization to organization. And also from project to project as it is governed by the software testing process. It also depends upon the tools used.

Bug Life Cycle Status

The number of states that a defect goes through varies from project to project. Below life cycle diagram, covers all possible states.


When a new defect is logged and posted for the first time. It is assigned a status as NEW.


Once the bug is posted by the tester, the lead of the tester approves the bug and assigns the bug to the developer team.


The developer starts analyzing and works on the defect fix.


When a developer makes a necessary code change and verifies the change, he or she can make bug status as “Fixed.”

Pending Retest

Once the defect is fixed the developer gives a particular code for retesting the code to the tester. Since the software testing remains pending from the testers end, the status assigned is “pending request.”


Tester does the retesting of the code at this stage to check whether the defect is fixed by the developer or not and changes the status to “Re-test.”


The tester re-tests the bug after it got fixed by the developer. If there is no bug detected in the software, then the bug is fixed and the status assigned is “verified.”


If the bug persists even after the developer has fixed the bug, the tester changes the status to “reopened”. Once again the bug goes through the life cycle.


If the bug is no longer exists then tester assigns the status “Closed.”


If the defect is repeated twice or the defect corresponds to the same concept of the bug, the status is changed to “duplicate.”


If the developer feels the defect is not a genuine defect then it changes the defect to “rejected.”


If the present bug is not of a prime priority and if it is expected to get fixed in the next release, then status “Deferred” is assigned to such bugs

Not a bug

If it does not affect the functionality of the application then the status assigned to a bug is “Not a bug”.

Explaining The Life Cycle of Software Bugs

  1. Tester finds the defect
  2. Status assigned to defect- New
  3. A defect is forwarded to Project Manager for analyze
  4. Project Manager decides whether a defect is valid
  5. Here the defect is not valid- a status is given “Rejected.”
  6. So, project manager assigns a status rejected. If the defect is not rejected then the next step is to check whether it is in scope. Suppose we have another function- email functionality for the same application, and you find a problem with that. But it is not a part of the current release when such defects are assigned as a postponed or deferred status.
  7. Next, the manager verifies whether a similar defect was raised earlier. If yes defect is assigned a status duplicate.
  8. If no the defect is assigned to the developer who starts fixing the code. During this stage, the defect is assigned a status in- progress.
  9. Once the code is fixed. A defect is assigned a status fixed
  10. Next, the tester will re-test the code. In case, the Test Case passes the defect is closed. If the test cases fail again, the defect is re-opened and assigned to the developer.
  11. Consider a situation where during the 1st release of Flight Reservation a defect was found in Fax order that was fixed and assigned a status closed. During the second upgrade release the same defect again re-surfaced. In such cases, a closed defect will be re-opened.
Software bugs life cycle
Software Bugs Which Cause System Failures

Summing Up

A defect is an error or a bug, in the application which is created. A programmer while designing and building the software can make mistakes or error. These mistakes or errors mean that there are flaws in the software. These are called defects.

One of the most important skills that you need to have in your tester’s tool box is the ability to write a good bug reports. Finding defects is only part of the job, because if developers cannot reproduce the bugs you find, they are going to have a very tough time fixing them. Your bug tracking software should include a number of mandatory fields to ensure that testers give a complete account of the defect they encountered. And testers should hone their descriptive skills.

Rate this post

Leave a Reply

Your email address will not be published. Required fields are marked *