Friday, October 11, 2013

Bug/Defect Life Cycle


Bug: A software bug may be defined as a coding error that causes an unexpected defect,fault or flaw. In other words, if a program does not perform as intended, it is most likely a bug or The presence of error at the time of execution of the software.
Error: A mismatch between the program and its specification is an error in the program.An error is a human action that produces the incorrect result that results in a fault.
Defect: Defect is the variance from a desired product attribute (it can be a wrong, missing or
extra data). It can be of two types – Defect from the product or a variance from customer/user
expectations. It is a flaw in the software system and has no impact until it affects the
user/customer and operational system. 90% of all the defects can be caused by process
problems.
Fault: State of software caused by an error.
Failure: A defect that causes an error in operation or negatively impacts a user/ customer. Deviation of the software from its expected result. It is an event.
Quality Assurance: Is oriented towards preventing defects. Quality Assurance ensures all
parties concerned with the project adhere to the process and procedures, standards and
templates and test readiness reviews.
Quality Control: quality control or quality engineering is a set of measures taken to ensure
that defective products or services are not produced, and that the design meets performance
requirements.


Bug/Defect life cycle is a cycle which a defect goes through during its lifetime. It starts when defect is found and ends when a defect is closed, after ensuring it’s not reproduced. Defect life cycle is related to the bug found during testing.
The bug has different states in the Life Cycle. The Life cycle of the bug can be shown diagrammatically as follows :

                       Bug Life Cycle(Block Diagram)

                       Bug Life Cycle(Pictorial Diagram)

Bug /Defect Life Cycle includes following steps or status:
  1. New:  When a defect is logged and posted for the first time. It’s state is given as new.
  2. Assigned:  After the tester has posted the bug, the lead of the tester approves that the bug is genuine and he assigns the bug to corresponding developer and the developer team. It’s state given as assigned.
  3. Open:  At  this state the developer has started analyzing and working on the defect fix.
  4. Fixed:  When developer makes necessary code changes and verifies the changes then he/she can make bug status as ‘Fixed’ and the bug is passed to testing team.
  5. Pending: A bug accepted by the developer may not be fixed immediately. In such cases, it can
    be put under Pending state.
  6. Pending Retest:  After fixing the defect the developer has given that particular code for retesting to the tester. Here the testing is pending on the testers end. Hence its status is pending retest.
  7. Retest:  At this stage the tester do the retesting of the changed code which developer has given to him to check whether the defect got fixed or not.
  8. Verified:  The tester tests the bug again after it got fixed by the developer. If the bug is not present in the software, he approves that the bug is fixed and changes the status to “verified”.
  9. Reopen:  If the bug still exists even after the bug is fixed by the developer, the tester changes the status to “reopened”. The bug goes through the life cycle once again.
  10. Closed:  Once the bug is fixed, it is tested by the tester. If the tester feels that the bug no longer exists in the software, he changes the status of the bug to “closed”. This state means that the bug is fixed, tested and approved.
  11. Duplicate: If the bug is repeated twice or the two bugs mention the same concept of the bug, then one bug status is changed to “duplicate“.
  12. Rejected: If the developer feels that the bug is not genuine, he rejects the bug. Then the state of the bug is changed to “rejected”.
  13. Accepted: The bug is then assigned to a developer for a fix. The developer then accepts if valid.
  14. Deferred: The bug, changed to deferred state means the bug is expected to be fixed in next releases. The reasons for changing the bug to this state have many factors. Some of them are priority of the bug may be low, lack of time for the release or the bug may not have major effect on the software. 
  15. Not A Bug:  The state given as “Not a bug” if there is no change in the functionality of the application. For an example: If customer asks for some change in the look and field of the application like change of colour of some text then it is not a bug but just some change in the looks of the  application.
  16. Not Accepted/Won’t fix: If the developer considers the bug as low level or does not accept it
    as a bug, thus pushing it into Not Accepted/Won’t fix state.
    Such bugs will be assigned to the project manager who will decide if the bug needs a fix. If it
    needs, then assigns it back to the developer, and if it doesn’t, then assigns it back to the tester
    who will have to close the bug


     

    No comments:

    Post a Comment