As we know during development of any software product the development teams follow the Software Development Life Cycle (SDLC) processes. But development process is not so easy and always runs smoothly. During the development process when product is being developed different types of defects or bugs arise with product. So these defects are identified and resolved throughout development process just to deliver a good quality software product at last. So in this article, we will discuss these bugs in software development process and how these are identified during software testing, and how these are resolved.
What is a Bug/Defect?
A defect is an error or bug in an application that is created during building or designing software and due to which software starts to show abnormal behaviors during its use. So it is one of important responsibilities of the tester to find as much as defect possible to ensure quality of product is not affected and end product is fulfilling all requirements perfectly for which it has been designed and provide required services to end-user. Because as much as defects will be identified and resolved then software will behave perfectly as per expectation.
Let’s first understand defect life cycle and after that, we will move to workflow and different states of defect.
Defect Life Cycle –
In Software Development process, Defect Life Cycle is life cycle of defect or bug from which it goes through covering the specific set of states in its entire life. Mainly bug life cycle refers to its entire states starting from a new defect is detected to closing of that defect by tester. Alternatively, it is also called a Bug Life Cycle.
The journey of Defect Cycle varies from organization to organization and also from project to project because development procedures and platforms as well as testing methods and testing tools differ depending upon organizations and projects. The number of states that defect goes through also varies depending upon the different tools used and process followed during testing of software.
Workflow of Defect/Bug Life Cycle –
The below diagram illustrates actual workflow of Defect Life Cycle.
The above diagram shows different states of Defect in Defect Life Cycle and these are as follows :
1. NEW –
When any new defect is identified by tester, it falls in ‘New’ state. It is first state of Bug Life Cycle. The tester provides a proper Defect document to Development team so that development team can refer to Defect Document and can fix bug accordingly.
2. ASSIGNED –
Defects which are in status of ‘New’ will be approved and that newly identified defect is assigned to the development team for working on defect and to resolve that. When the defect is assigned to developer team then status of bug changes to ‘Assigned’ state.
3. OPEN –
In this ‘Open’ state the defect is being addressed by developer team and developer team works on the defect for fixing the bug. Based on some specific reason if developer team feels that defect is not appropriate then it is transferred to either ‘Rejected’ or ‘Deferred’ state.
4. FIXED –
After necessary changes of codes or after fixing identified bug developer team marks state as ‘Fixed’.
5. PENDING RETEST –
During the fixing of defect is completed, developer team passes new code to testing team for retest. And the code/application is pending for retesting at Tester side so status is assigned as ‘Pending Retest’.
6. RETEST –
At this stage, tester starts work of retesting defect to check whether defect is fixed by developer or not, and the status is marked as ‘Retesting’.
7. REOPEN –
After ‘Retesting’ if tester team found that bug continues like previously even after developer team has fixed the bug, then status of bug is again changed to ‘Reopened’. Once again bug goes to ‘Open’ state and goes through life cycle again. This means it goes for Re-fixing by the developer team.
8. VERIFIED –
The tester re-tests bug after it got fixed by developer team and if tester does not find any kind of defect/bug then bug is fixed and status assigned is ‘Verified’.
9. CLOSED –
It is the final state of Defect Cycle, after fixing defect by developer team when testing found that the bug has been resolved and it does not persist then they mark defect as a ‘Closed’ state.
Few More States that also comes under this Defect Life Cycle –
1. REJECTED –
If the developer team rejects defect if they feel that defect is not considered as a genuine defect, and then they mark status as ‘Rejected’. The cause of rejection may be any of these three i.e Duplicate Defect, NOT a Defect, Non-Reproducible.
2. DEFERRED –
All defects have their bad impact on developed software and also they have a level based on his impact on software. If the developer team feels that defect that is identified is not a prime priority and it can get fixed in further updates or releases then developer team can mark status as ‘Deferred’. Means from current defect life cycle it will be terminated.
3. DUPLICATE –
Some times it may happen that defect is repeated twice or defect is same as any other defect then it is marked as ‘Duplicate’ state and then defect is ‘Rejected’.
4. NOT A DEFECT –
If the defect has no impact or effect on other functions of the software then it is marked as ‘NOT A DEFECT’ state and ‘Rejected’.
5. NON-REPRODUCIBLE –
If the defect is not reproduced due to platform mismatch, data mismatch, build mismatch, or any other reason then developer marks defect as in a ‘Non-Reproducible’ state.
6. CAN’T BE FIXED –
If the developer team fails to fix defect due to Technology support, Cost of fixing bug is more, lack of required skill or due to any other reasons then developer team marks defect as in ‘Can’t be fixed’ state.
7. NEED MORE INFORMATION –
This state is very close to ‘Non-reproducible’ state. But it is different from that. When the developer team fails to reproduce defect due to steps/document provided by tester is insufficient or Defect Document is not so clear to reproduce defect then developer team can change status as “Need more information’. When the Tester team provides a good defect document then developer team proceeds to fix the bug.
Advantages of following a Defect Life Cycle :
- Deliver High-Quality Product
- Improve Return on Investment (ROI) by Reducing the Cost of Development
- Better Communication, Teamwork and Connectivity
- Detect Issues Earlier and Understand Defect Trends
- Better Service and Customer Satisfaction
Difficulties in Defect Life Cycle :
- Variations of the Bug Life Cycle
- No Control on Test Environment
Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.