text: In this post, we will be discussing the defect/bug life cycle. During development till testing, every bug which has been detected passes through a set of processes, called a bug life cycle.
  As we all know that the development process follows the software development life cycle. But the development process is not easy and not always runs smoothly.
  During the development phase, when the product is under development, bugs or defects arise. So, these bugs are identified and corrected all the way in the development life cycle and the testing life cycle to deliver a bug-free and quality product.
  What is a bug/defect?
  As we have already discussed, a bug or defect is a deviation of the flow of an application from its expected behavior as per the requirement specification. So, it is one of a tester’s important responsibility to find as many defects as possible to ensure the delivery of a quality product.
  Now, Let’s understand about the defect/ bug life cycle in detail along with the phases of the life cycle.
  Bug or Defect Life Cycle
  Bug life cycle mainly refers to the entire phases of detecting a new bug/defect by a tester to closing that bug by the tester.
  The journey of bug cycle varies from organization to organization, and from project to project as development processes, and platforms as well as the testing tools and environments also differ depending upon the organization, and project.
  The below diagram shows the workflow of bug life cycle:
  Phases of the bug life cycle
  It is the first stage of bug life cycle where a new defect/ bug is detected by the tester. The tester prepares a defect documentation and share it with the development team so that the developers can go through it and fix the bug accordingly. If the bug is non reproducible, it is the role of the tester to share the screenshot and time-stamps of the bug. When the testers detect the bug, the bug goes into ‘NEW’ state.
  Defects that are in status ‘NEW will be approved and the defect is assigned to the development team so that they can work on that defect and resolve it. When the defect is assigned to the development team, the bug is in ‘ASSIGNED’ state.
  In the ‘ASSIGNED’ state, the bug is assigned to the development team. When the development team starts working and analyzing the bug, they change the state to ‘OPEN’.
  If the developer feels that the defect is not appropriate, then the developer can assign the states to DUPLICATE, DEFERRED, REJECTED, and NOT A BUG, based upon the specific reasons.
  Let’s discuss these states of bugs which developer can assign:
  - Rejected: If the defect is not considered as a genuine defect by the developer then it is marked as ‘Rejected’ by the developer.
  - Duplicate: If the developer finds the defect as same as any other defect or if the concept of the defect matches any other defect then the status of the defect is changed to ‘Duplicate’ by the developer.
  - Deferred: If the developer feels that the defect is not of very important priority and it can get fixed in the next releases or so in such a case, he can change the status of the defect as ‘Deferred’.
  - Not a Bug: If the defect does not have an impact on the functionality of the application then the status of the defect gets changed to ‘Not a Bug’.
  After the bug is fixed and the necessary changes are done, the developer team marks the bug into the ‘FIXED’ state.
  Once the defect is fixed the developer gives a particular code for retesting the code to the tester. As the code is pending for retesting, hence the status is assigned by the testers as ‘PENDING RETEST’.
  Now, when the tester starts working on retesting the defect to check whether the development team has correctly fixed the bug or not, he assigns the state of the bug as ‘RETEST’.
  If the bug persists after the development team has fixed the defect, then the tester reopens the bug. The bug then has to go to the entire life cycle again and the tester changes the state to ‘REOPEN’.
  If the tester confirms that the bug is fixed after he receives the bug fix from the development team and done with the retesting, then the tester changes the state of the bug to the ‘VERIFIED’ state.
  it is the final state of the bug life cycle. When the tester confirms that the bug is fixed, and retesting is done, and no such bug exist anymore, then the tester changes the state of the bug as the ‘CLOSED’ state.
  Let’s look into the detailed version of the bug life cycle.
  Detailed Bug Life Cycle Explained
  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, the 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.
  That’s all to the bug life cycle. Now let’s look into the advantages and difficulties of following the bug life cycle.
  Advantages of following a Bug Life Cycle
  - Better service ad customer satisfaction.
  - Deliver high quality product.
  - Better communication, teamwork and connectivity.
  - Detecting issues earlier and understanding defect trends.
  - Improve Return on Investment (ROI) by reducing the cost of development.
  - No control on test environment.
  - Variations of the bug life cycle.
  Let’s summarize what we have learned so far:
  - What is bug
  - Workflow of bug
  - States of bug
  - Detailed understanding of the bug life cycle
  - Advantages and difficulties of a bug