Bug Life Cycle in Software TestingTesting
Introduction to Bug Life Cycle
The fault life cycle or defect life cycle is the specific set of states that a fault goes through before it is closed or resolved. When a fault is detected - by a tester or someone else on the team - the life cycle provides a tangible way to track the progress of a bug fix, and during the fault's life, multiple individuals touch it - directly or indirectly. Troubleshooting is not necessarily the responsibility of a single individual. At different stages of the life cycle, several members of the project team will be responsible for the error. This blog will help you understand how many cases the error goes through vary from project to project. The life cycle diagram covers all possible situations.
What’s The Difference Between Bug, Defect, Failure, Or Error?
Bug: If testers find any mismatch in the application/system in the testing phase then they call it a Bug.
As I mentioned earlier, there is a contradiction in the usage of Bug and Defect. People widely say the bug is an informal name for the defect.
Defect: The variation between the actual results and expected results is known as a defect.
If a developer finds an issue and corrects it by himself in the development phase then it’s called a defect.
Failure: Once the product is deployed and customers find any issues then they call the product a failure product. After release, if an end-user finds an issue then that particular issue is called a failure
Error: We can’t compile or run a program due to coding mistakes in a program. If a developer is unable to successfully compile or run a program then they call it an error.
Software Defects Are Basically Classified According To Two Types:
Bug Severity or Defect Severity in testing is a degree of impact a bug or a Defect has on the software application under test. A higher effect of bug/defect on system functionality will lead to a higher severity level. A Quality Assurance engineer usually determines the severity level of a bug/defect.
Types of Severity
In Software Testing, Types of Severity of bug/defect can be categorized into four parts:
Critical: This defect indicates complete shut-down of the process, nothing can proceed further
Major: It is a highly severe defect and collapses the system. However, certain parts of the system remain functional
Medium:/ It causes some undesirable behavior, but the system is still functional
Low: It won't cause any major break-down of the system
Priority is defined as the order in which a defect should be fixed. The higher the priority the sooner the defect should be resolved.
Types of Priority of bug/defect can be categorized into three parts:
Low: The Defect is an irritant but a repair can be done once the more serious Defect has been fixed
Medium: During the normal course of the development activities, defects should be resolved. It can wait until a new version is created
High: The defect must be resolved as soon as possible as it affects the system severely and cannot be used until it is fixed
(A) High Priority, High Severity
An error occurs on the basic functionality of the application and will not allow the user to use the system. (E.g. A site maintaining the student details, on saving record if it doesn't allow saving the record then this is a high priority and high severity bug.)
(B) High Priority, Low Severity
High Priority and low severity status indicate defects have to be fixed on an immediate basis but do not affect the application while High Severity and low priority status indicate defects have to be fixed but not on an immediate basis.
(C) Low Priority Low Severity
A minor low severity bug occurs when there is almost no impact on the functionality, but it is still a valid defect that should be corrected. Examples of this could include spelling mistakes in error messages printed to users or defects to enhance the look and feel of a feature.
(D) Low Priority High Severity
This is a high severity error, but it can be prioritized at a low priority as it can be resolved with the next release as a change request. On the user experience. This type of defect can be classified in the category of High severity but Low priority.
Bug Life Cycle
New: When a new defect is logged and posted for the first time. It is assigned a status as NEW.
Assigned: Once the bug is posted by the tester, the lead of the tester approves the bug and assigns the bug to the developer team
Open: The developer starts analyzing and works on the defect fix
Fixed: When a developer makes a necessary code change and verifies the change, he or she can make bug status as "Fixed."
Pending retest: Once the defect is fixed the developer gives a particular code for retesting the code to the tester. Since the software testing remains pending from the tester's end, the status assigned is "pending retest."
Retest: Tester does the retesting of the code at this stage to check whether the defect is fixed by the developer or not and changes the status to "Re-test."
Verified: The tester re-tests the bug after it got fixed by the developer. If there is no bug detected in the software, then the bug is fixed and the status assigned is "verified."
Reopen: If the bug persists even after the developer has fixed the bug, the tester changes the status to "reopened". Once again the bug goes through the life cycle.
Closed: If the bug no longer exists then the tester assigns the status "Closed."
Duplicate: If the defect is repeated twice or the defect corresponds to the same concept of the bug, the status is changed to "duplicate."
Rejected: If the developer feels the defect is not a genuine defect then it changes the defect to "rejected."
Deferred: If the present bug is not of a prime priority and if it is expected to get fixed in the next release, then the status "Deferred" is assigned to such bugs
Not a bug: If it does not affect the functionality of the application then the status assigned to a bug is "Not a bug".
Defect Life Cycle Explained
The tester finds the defective status assigned to the defect.
A defect is forwarded to the project manager for analysis.
The project manager decides whether a defect is valid.
Here the defect is invalid. The status is "Rejected".
The project manager assigns a rejected status.
- If the bug is not resolved, the next step is to check that it is in scope.
Suppose we have another function - email functionality for the same application, and you find a problem with it. However, it is not part of the current version if such errors are assigned as a deferred or deferred status.
Next, the manager checks to see if a similar error has occurred earlier. If so, a duplicate status is assigned to the error.
If not, the bug is assigned to the developer, who starts correcting the code.
During this phase, the defect is assigned a status in the process,
Once the code is fixed. A defect is assigned a status fixed.
Next, the tester tests the code again. If the test case is passed, the defect is closed. If the test cases fail again, the bug is reopened and assigned to the developer.
- Consider a situation where, during the first release of the flight reservation, an error was detected in the fax order, which has been fixed and the status of closed has been assigned. The same error occurred again during the second upgrade version.
In such cases, a closed defect is opened again.
"That's all to Bug Life Cycle"