A Bug can be defined as the abnormal behaviour of the software. It is a flaw in a component/system that can cause the component/system to fail to perform it’s required functions. The elimination of the bugs from the software depends upon the efficiency of testing done on the software.
In software development process, the bug has a life cycle. Bug life cycle is also Defect life cycle. The bug should go through the life cycle to be closed. The bug attains different states in the life cycle.
The life cycle of the bug can be shown diagrammatically as follows:
- New: When the bug is posted for the first time, its state will be “NEW”. This means that the bug is not yet approved.
- Open: After a tester has posted a bug, the lead of the tester approves that the bug is genuine and he changes the state as “OPEN”.
- Assign: Once the lead changes the state as “OPEN”, he assigns the bug to corresponding developer or developer team. The state of the bug now is changed to “ASSIGN”.
- Test: Before developer releases the software with bug fixed, he changes the state of bug to “TEST”. It specifies that the bug has been fixed and is released to testing team.
- Deferred: When the bug is identified to be of low priority or the bug can be avoided/ignored and it doesn’t hold much importance ,the developer team marks the bug as “DEFERRED” to be considered/looked upon afterwards as required.
- Rejected: When the bug is found to be invalid or not in the scope of the given requirements, it gets “REJECTED” by the developer team.
- Reopened: This state is marked if the bug persists in the system.The tester assigns the bug back to the developer and the bug will go the through the cycle again.
- Verified: If the bug is not identified anymore in the system and it meets the expected condition, the tester changes the status to “VERIFIED”.
Closed: When the bug is fixed and is no longer present in the system, the bug state is marked as “CLOSED” by testing team.