Many of the testers are often confused and always have questions with the various stages of the defect and their importance in the defect life cycle. As we know, there is always a strong affinity between a tester and a defect/bug so as a bug life cycle.
Hence, to address these questions, here in this post , we would be discussing what is a defect, different stages of the defect, their sequence and their importance.
Before we would be going deeper into the defect life cycle of the defect, we need to understand the actual meaning of the defect.
What is Defect?
Basically, Software Defect or a Bug is a condition which does not meet a software requirement. A software requirement could be specified in the requirement specification or an end-user expectation. A defect is an error or a flaw which produces unexpected or incorrect behaviours in the system. Generally, Defects can be generated during requirement analysis, design, implementation or testing phase.
What is the defect life cycle?
After a defect has been found out, it goes through various stages during its complete lifecycle which is commonly known as Defect Life Cycle. It starts when a defect is found and ends when a defect is closed, after i
So we can say, Defect Life Cycle is sequence of stages or cycle of defect through which it pasess through its whole life. During these stages it get assigned to various member in development team (Manager, Lead, QA, Developer). Every single stage has its own status through which defect is tracked in various defect tracking tools or management tool. In another way, we can say every stage/status does communicate the current status of defect in the line of its fixes. This journey starts with logging the defect/bug with status new in tracking tool and end with closed status.
Here in this picture, we can easily understand the end to end workflow of the defect stages:-
Now, let’s walk through the different stages of the defect life cycle one by one:-
- New:- When a defect has been found out and the tester has logged the defect in the defect tracking/management tool for the first time, then the state of the defect would be “New”.It is set by the testing team or we can say it will be default status assigned by tracking tool.
- Open:- When a new logged defect has been reviewed by QA lead and if the defect is valid, the state of the bug would be “Open” and it is ready to be assigned to the development team and if the bug is invalid QA lead would mark it as “Closed”.
- Assigned:- When QA lead assigns the defect to the corresponding developer, the state of the defect would be marked as “Assigned”. Developer should start analyzing and fixing the bug at this state.
- Rejected / Invalid:– When the developer feels that the bug is not genuine/valid, he rejects the bug. Then the state of the bug is marked as “rejected”.Also, in some defect management tools, it is stated as “Not a Bug”.
- Could not reproduce:- When developer is not able to reproduce the bug by the steps mentioned in Steps to Reproduce by QA then developer can mark the bug as ‘CNR’ (Could Not be Reproduced”). In this stage, QA should provide detailed reproducing steps to the developer.
- Need More information:- If developer is not clear about the steps to reproduce provided by QA to reproduce the bug, then he/she can mark it as “Need more information’. In this case, QA needs to add detailed reproducing steps.
- Ready to test / Fixed:- When a developer makes the necessary code changes, the defect will be marked as “Fixed”. The developer now passes the defect to the testing team to verify so he changes the state as “Ready to Test”.
- Verified:- When tester retests the bug and found it fixed/non-reproducible, he/she marks it as “Verified”.
- Reopened:- If the tester while verifying the defect found that, the defect is still reproducible or partially fixed then the defect would be marked as “Reopened”.Now the developer has to look again into this defect.
- Duplicates:- If the defect logged is repeated twice or the two defects reported has alike results and steps to reproduce, then one defect status is changed to “DUPLICATE” and it should be linked to the another similar defect.
- Deferred:- If there are some issues or hurdles in the current sprint, then the defect would be taken in upcoming releases instead of the current release then it is marked as “DEFERRED”.
- Closed:- If the defect has no issues further and it is properly verified, then the tester or test lead would mark the defect as “Closed”.
Some Important Points to Ponder regarding Defect Life Cycle Implementation:-
- We must make sure that the entire team understands what each defect status exactly means. Also, the defect life cycle should be properly documented.
- We must ensure that each individual in the team clearly understands his/her responsibility in regarding each defect.
- We must ensure that enough detail should be entered in each status change.