Defect life cycle means the states and the status of the defect when the defect passes through various phases of the software development life cycle.
As we have seen, that a defect discovered in one phase may be identified in some other phase and can be fixed some other phases of the software development.
A defect may run parallel to the software development phases.
A defect is identified by its states and status, and therefore we shall see all the states and status that are possible for a defect. Below are some of the states of a defect:
- New: When we say New it means, the defect is encountered for the first time and is logged for the first time. This defect has to be studied to find the level of severity, it has. Because nothing similar has happened yet, therefore, the defect is just assigned as New.
- Assigned: Assigned is also a status given to the defect, it means that the defect is assigned its status whatever it, and is also posted, which means, it is transferred to the developer team to be identified and measure the degree of its' severity. However, Assigned it itself a status of the defect.
- Open: Open is a status of the defect, signifying that the defect has reached the concerned team and the developers or the testers have started to work on it. A defect in Open does not mean, that the defect is being operated, but it crucially means that the defect in under observation and work also.
- Fixed: Fixed is a status when the developer or the tester has confirmed that the defect has been fixed and all the changes which are to be made and saved and updated.
- Pending Retest: This status is assigned to the defect when the defect has been fixed, and necessary code changes have been made, but the fixed part not been yet tested by the concerned tester for its validity. This is important, because even when a fix may work fine, the code added may not be genuine to the software.
- Verified: When the defect is re-tested and the bugs of the defect are found fixed, then the status of the defect is assigned as Verified.
- Reopen: Even after the verification. there is any defect or bugs left in the software, then the defect is assigned the status as Open, which means the defect will be again sent to the developer or the testing team, to get it inspected. The defect life cycle again starts here from the beginning.
- Closed: After re-verification, if there are no bugs left, then the status is updated to Closed.
- Duplicate: The status Duplicate is assigned to the defect when the same defect is encountered again. This status is important because it when the defect is encountered again, it means, that the necessary steps which were taken to fix the defect, did not work and something new is required.
- Rejected: This is a status, imposed on the defect if the developer or the tester feels that the defect is not a genuine defect, that is, something which cannot be termed as a pure defect.
- Deferred: This status is assigned to the defect if the defect will not be fixed in the current phase of testing or the current release of the software. Deferred, means that the defect will be tested and checked not now but on the later or the upcoming release of the software.
- Not A Bug: There can be a defect in the software, which may not be termed as a bug, as it may if it does not hamper the functionality of the software. In that case, the defect is termed as Not a Bug.
Below see the Defect Life Cycle:
As shown in the above diagram, we can see how the decision over the defect is taken. And from the diagram, it can be clearly inferred, how the defect's status is changing from time to time.
Initially, the defect detection starts at the top block in the L.H.S. The defect is encountered by the tester. And since the defect is encountered for the first time, so, the status for the defect is set to New.
Then the defect is transferred to the team to analyze the defect.
The team or the project manager may decide whether the defect is valid or not. If it is an invalid defect (defect which cannot be considered as a defect or is neither a bug
) then the status for the defect is set to Rejected
Or, if the defect is a valid defect, then the next step is to assign a New
status to the defect. Now in case, the defect is a similar one, then the defect is assigned as duplicate, but the similar iterations goes on.
In this article, we have seen how a defect can be assigned a different status. When the defect is encountered, it is assigned a status as New. And when the defect is fixed and is approved by the tester, then the status is set to Closed.
In this way, the defect goes through different phases. This is called a defect life cycle.
It should be noted that the defect, with a status assigned, must go through the consecutive phases and the tester should be very clear about the correct and consistent meaning of the status. Otherwise, the defect may be ignored or may just waste the tester's time, if checked again and again.