What is a Defect or Bug?
During the process of designing and building a software application, programmers can make mistakes or errors in their code. These types of flaws in the software are called defects or bugs.
Explanation of Defect Life Cycle
The Defect Life Cycle, which can also be referred to as the Bug Life Cycle, is the journey of a bug through its existence. While this cycle is controlled by a software testing process, it can vary depending on the project and organization, as well as the tools that are used.
The Defect Life Cycle involves the following stages:
- New: This refers to when a defect is logged and posted for the first time.
- Assigned: The bug will be posted by the person who tests it, the head of the testing team accepts the bug then transfers it to a developer team. Two scenarios are possible here. With the first, the defect can be immediately assigned to a developer owning the defect functionality. For the second scenario, it can be assigned to the head of the developers, and once they have approve it, can assign it to a developer.
- Open: When a developer begins examining and working on fixing the defect.
- Fixed: In this stage, a developer makes changes in the code and validates them, so they can finally say the problem is ‘fixed’. Also, when the head of the developers sees this status, they know that the defects are available to be tested.
- Retest: During this stage, the changed code can be retested to see if the defect has been properly fixed. When the last build is pushed to the environment, the head of the developers will change the status of all the fixed defects to ‘Retest’. This way, the testing team is informed that the defects are available for testing.
- Reopened: If the tests show that the bug is still there, the status of the bug will be changed to ‘Reopened.’ Then once more, the bug goes through the life cycle.
- Deferred: When the bug is at the deferred stage, it means that particular bug is on hold for this release and expected to be released in a future version. Some of the factors for changing the bug to this stage are that its priority may be low or there may not be enough time before the release or the effect of the bug on the software may not be huge.
- Rejected: When a developer finds that the bug is fake or invalid, they reject it and the bug gets a ‘Rejected’ status.
- Duplicate: When a bug occurs more than once, or there are two bugs referring to the same concept, the status of the bug will be ‘Duplicate’.
- Closed: When the bug is finally fixed, a tester tests it, and if there are no more problems found, the bug gets a ‘Closed’ status, which means the bug is fixed, tested, and verified.
- Enhancement/Change Request: If a customer asks for a revision, like a change of color of a text, it is not a bug, but an alteration in the application’s appearance. This is marked as an Enhancement or Change Request.
The Bug Life Cycle Process Flow
- The defect is detected by a tester.
- The defect is given a ‘NEW’ status.
- A project manager or team lead analyzes the defect.
- The project manager or team lead assesses if the defect exists.
- If the defect is not genuine, it is given the status of ‘REJECTED.’
- If the defect is valid, it is checked to ascertain if it lies within scope. If the severity of the bug is low or it will have a limited impact on the scope of the current sprint, these problems receive the ‘POSTPONED/DEFERRED’ status.
- The manager or lead checks if there were any similar defects logged before, and if duplicates are found, the status of the defect is changed to ‘DUPLICATE.’
- If the bug is valid it will be assigned to a developer and the status will be ‘ASSIGNED/IN PROGRESS’.
- When the defect is fixed, the status is ‘FIXED.’
- The tester examines the defect and if the defect passes the test, it gets a ‘CLOSED’ status. But, if the defect fails the test, it is given a ‘REOPENED’ status, and is reassigned to a developer.
- In the event of a closed bug reappearing, the status of the closed bugs will change to ‘REOPENED.’
When working to correct bugs, it is important to track their progress using an efficient lifecycle process in your software project. For that, you will need to select the best issue tracking tool for use in your project. Happy testing!