Peakin

Any software product or application goes through a life cycle called Software Development Life Cycle (SDLC). Similarly testing of the software product or application goes through the Software Testing Life Cycle (STLC).

Just like the above any Defect or Bug in the software product/ application goes through a Defect Life Cycle or Bug Life Cycle. Before going into it let’s understand what a bug or defect is. 

What is a Bug/Defect?

Bug or Defect is the error that happens in the software program or application. The developer may have made some mistakes that caused the software to not function properly. These flaws in the software program or application are called the bug or defect. 

It is the responsibility of the tester to find as many defects as he can in the software program or application, so that when the software reaches the customer it is of highest quality.

What is a Defect Life Cycle?

Defect life cycle is the various stages a defect will go through in its lifetime. A defect life cycle can change from organisation to organisation or even project to project, but the basic workflow remains the same. 

The reason behind having the Defect life cycle is to track its status and also to ensure the proper handling of the defect. 

Defect Workflow:

Some of the common stages in defect life cycle are as follows. 

  1. New: Tester is testing the software program or application. He finds a fault in the functionality of the software. So he prepares the defect document for the developer to recreate the defect and fix it. At this point, the status of the defect is set as new. 
  2. Assigned: The new found defect is assigned to the development team. The status of the defect becomes assigned. Usually a project manager or lead assigns the defect to the development team. 
  3. Open: The developer keeps the defect status as open when he starts working on the defect. If the developer feels if the defect doesn’t need fixing it may go into one of the following four states: Rejected, Deferred, Duplicate, not a bug. 
  4. Rejected: If the software is working as per the specification and functionality, but it is reported as bug due to misinterpretation or some other factor during testing, the developer rejects the defect and its status is made as rejected. 
  5. Deferred: The developer may set the status of the bug as deferred if a minor bug is found at the end of the release and can be fixed during the next release as it is not important. It is also set as deferred if the fix is already planned in the next release or if it is not related to the current build. If the requirement has changed, the status of the bug is set as deferred.
  6. Duplicate: When the developer finds a defect, which is the same as another defect, even if the concept or logic matches, then the defect is set to duplicate, with reference to the existing defect. 
  7. Not a bug: If the defect does not affect the functionality or features of the software application or product, it is termed as not a bug. 
  8. Fixed: When the developer fixes the software and verifies the change, then the status of the defect can be set to fixed.
  9. Retest: When the developer wants the testing team to test the functionality again to verify if the bug is fixed or not, he sets the status to retest.
  10. Reopen: Testing team tests the bug fix that developer made and if they find the issue or fault still persist, then they set the status to reopen.
  11. Verified: The tester upon retesting finds the bug is eliminated, then he sets the status to verified
  12. Closed: When there is no recurrence of the defect in the system, its status is closed.

Defect tracking:

Defect tracking is one of the main steps in any defect life cycle. There are two main parameters which help in effective resolution of the defects are

  1. Defect Severity
  2. Defect Priority

Defect Priority: 

As the name suggests, defect priority emphasizes how soon the defect needs to be resolved based on the business requirements. 

The different priority levels are P1- Critical, P2 – High, P3 – Medium, P4 – Low. 

Depending on the priority of the defect, developers fix them immediately or in future. 

Defect Severity: 

Defect severity implies the extent of the impact that is caused by the particular defect. 

The defect severity can be in the following levels. S1 – Critical, S2 – Major, S3 – Minor, S4 – Low. 

A high severity and high priority bug is worked on first, while a low priority and low severity bug is fixed later.

Advantages of a Defect Life Cycle :

  • High-Quality Product delivery
  • Lesser Cost of Development
  • Early defect/issue detection
  • Increased customer satisfaction

Difficulties in Defect Life Cycle :

  • Variations of the Bug Life Cycle in different environment
  • No Control on Testing Environment

Defect based testing technique:

The method of deriving test cases from the defects is called defects based testing technique. 

In the defect based testing technique

  1. Requirement or functionality of the software is gathered
  2. All the defects are identified
  3. The defects and the requirements are interlinked or connected
  4. Test cases are developed based on the linked defects

Bug Report:

One of the critical parameters in the defect life cycle is the bug report. The developer actually works on the fix based on the defect document or the bug report. 

 

A good bug report has the following details: 

 

Bug id: The unique id given to the bug.

Title: The title of the bug should be descriptive enough that it is self explanatory. 

Description: Description should be short and good enough for the person reading it to understand the scenario without any assumptions. 

Date: Date which the bug is reported

Priority: How urgent the bug is need to be fixed

Severity: Impact level of the bug or defect

Status: Status of the bug in its defect life cycle

Test case: The test case on which the bug is identified or reported

Build/Release version: Environment details in which the tester worked on and  identified the bug

Reporter: The details of tested who reported the bug in order to contact in case of any issues

Attachments: Visual attachment, screenshots to help the developer recreate the bug. 

Defect handling is just one of the tasks that a tester has. To know more in depth about testing & gain testing skills, contact us. We have various courses that will help you hone your skills in both manual testing and automation testing.