Signup/Sign In

What is Defect/Bug Life Cycle in Software Testing

Posted in Programming   LAST UPDATED: NOVEMBER 10, 2022

    In any software development, there are bugs and defects that the tester has to find out. It is important for a tester to know the various stages of the defect life cycle while testing software.

    In this tutorial, you will understand the states of defects and the life cycle of these defects.

    The aim of software testing is to find out errors/mistakes/faults/bugs and make the software as error-free as possible. Let's first recall what is a Defect.

    What is Defect Life Cycle

    What is Defect?

    A defect is an error, flaw, or failure in the software that can be corrected. In other words, it is a mistake made during the development of a product or process that renders it useless, less valuable, or even dangerous. The term is often used interchangeably with “bug” and “error”.

    That's why there are software testers do testing to find out as many defects as possible to bring out the best quality of a product.

    Now, you know what defect is and who finds out them. Let's know more about what is defect life cycle is and the different states of a defect.

    If you want to know which tools are used in app development then here is the complete list of tools for app development.

    What is Defect Life Cycle?

    A Defect Life Cycle in software testing which is often called a Bug Life Cycle is a cycle of states that a defect or bug goes through during the testing.

    The lifecycle of any defect starts when the defect is detected. The goal of the Defect Life Cycle is to easily communicate the current status of the defect which changes to various assignees and makes the testing more manageable and efficient.

    Defect Status

    The Defect Status or Bug Status represents the current state of the defect from which the defect is undergoing.

    The purpose of this defect status is to tell the undergoing state of that defect or stage of the defect in which currently it is.

    There can be a number of states in the defect life cycle, here is the complete list of possible defect states from which a defect can go through-

    • New: When a new defect is detected in software, 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 fixing the assigned defect.
    • Fixed: When a developer makes a necessary code change to fix that defect, the state can be changed to “Fixed”.
    • Pending retest: Once the defect is fixed the developer gives the code for retesting to the tester, if software testing remains pending from the tester's end, and the status assigned is “pending retest.”
    • Retest: The tester check whether the bug is fixed or not, the state of defect is assigned to “Retest” during this retesting.
    • Verified: When the tester ensures there is no defect, the status assigned is “verified.”
    • Reopen: If the bug remains 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, 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 primary or can be fixed later, than the “Deferred” state is assigned to the defect.
    • Not a bug: If it does not affect the functionality of the application, then the status assigned to a bug is “Not a bug”

    Complete Defect Life Cycle Explained

    1. The tester does the testing and finds out a defect.
    2. The tester assigned the state as “New” for the defect.
    3. That defect is sent to the Project Manager for analysis.
    4. The project Manager decides whether the defect is valid or not.
    5. If the Project Manager finds the defect non-valid, then the “Rejected” status is given.
    6. The project manager assigns a status rejected. If the defect is not rejected, then the next step is to check whether it is in scope. Suppose we have another function-email functionality for the same application, and you find a problem with that. But it is not a part of the current release when such defects are assigned as a postponed or deferred status.
    7. Now, the Project Manager checks for similar defects, if similar defects are detected then the defect is assigned the status “Duplicate”.
    8. If it's not similar to any previous defects, then it is assigned to a developer and assigned a status “In-Progress”.
    9. When the defect is fixed, it is assigned the status “Fixed”.
    10. Next, the tester will re-test the code. In case, the Test Case passes, the defect is closed. If the test cases fail again, the defect is re-opened and assigned to the developer.

    This is Defect Life Cycle and all the steps. If you are trying to crack an interview, then check out our top software-testing interview questions and answers.

    Related Questions

    1. Which tool can be used for the defect life cycle?

    Here are some of the best tools which can be used for defect cycle management:

    1. DoneDone
    2. Teamwork
    3. Jira
    4. Trello
    5. Asana

    2. Which process is used to verify a bug fixed by the developer?

    When the assigned developer finishes fixing the bug, he/she marks it as fixed and assigns it to a tester to validate the fix. This stage of the bug cycle is called pending retest.

    3. What is used to find bugs in Software?

    Debugging is a process that is used to find and resolve bugs. It is a multistep process that includes finding the defects in the software and resolving them in order to make the software error-free and efficient.

    Debugging process starts from the very beginning of writing the code and then combined with other parts of the code.


    Now, you know what is Defect and Defect life cycle. We explored all Defect Statuses and their use in Defect Life Cycle. The defect Lie cycle is a cycle of states that every bug goes through until it's completely resolved.

    There are statuses in this defect life cycle like New, assigned, open, fixed, retest, pending retest, reopen, etc. These statuses are used to describe the status of the bug or error or defect.

    Published by: avdhoottt