Signup/Sign In

What is Defect/Bug Life Cycle in Software Testing

Posted in Programming   LAST UPDATED: APRIL 5, 2023

    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.


    The Defect Life Cycle in software testing is a process that tracks the various stages a defect or bug goes through from detection to resolution. The different states in the Defect Life Cycle include New, Assigned, Open, Fixed, Pending Retest, Retest, Verified, Reopen, Closed, Duplicate, Rejected, Deferred, and Not a Bug. This process helps to communicate the status of defects to different stakeholders, making testing more manageable and efficient. Understanding the Defect Life Cycle is essential for software testers to identify and resolve issues, leading to better quality software.

    Now, you know what is Defect and Defect life cycle. In this article, We explored all Defect Statuses and their use in Defect Life Cycle.

    Thank you for visiting!!!

    Related Questions

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

    Tools that can be used for the deflect life cycle are:

    • DoneDone
    • Teamwork
    • Jira
    • Trello
    • Asana

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

    The process that is used to verify a bug fixed by the developer is called pending retest in which he/she marks it as fixed and assigns it to a tester to validate the fix.

    3. What is used to find bugs in Software?

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

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

    4. What is the purpose of the Defect/Bug Life Cycle?

    The purpose of the Defect/Bug Life Cycle is to provide a systematic approach for managing and resolving defects or bugs in software applications. It helps in identifying and tracking the status of defects, assigning responsibilities, and ensuring that they are resolved in a timely and efficient manner.

    About the author:
    Proficient in Java, Python, and web development; has a knack for writing clearly about complex topics. Dedicated to giving readers the tools they need to learn more about computer science and technology.