Meaning of Bug
Bug can be defined as the abnormal behavior of the software. No software exists
without a bug. The elimination of bugs from the software depends upon the
efficiency of testing done on the software. A bug is a specific concern about
the quality of the Application under Test (AUT).
Bug Life Cycle
In software development process, the bug has a life cycle. The bug should go
through the life cycle to be closed. A specific life cycle ensures that the
process is standardized. The bug attains different states in the life cycle. The
life cycle of the bug can be shown diagrammatically as follows:
The different states of a bug can be summarized as follows:
When the bug is reported for the first time, its state will be “NEW”.
After a QA has reported a bug, the lead of the tester approves that the bug is
genuine and he changes the state as “OPEN”.
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”.
Once the developer fixes the bug, he reassign the bug to the testing team for
next round of verification. Before he 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.
The bug, changed to deferred state means the bug is expected to be fixed in next
releases. There can be ‘n’ number of reasons for changing the bug to this state.
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 etc.
If the developer feels that the bug is not genuine, he rejects the bug. Then the
state of the bug is changed to “REJECTED”.
If the same bug is repeated twice or the two bugs mention the same concept of
the bug, then one bug status is changed to “DUPLICATE”.
Once the bug is fixed and the status is changed to “TEST”, the tester tests the
bug. If the bug is not present in the software, he approves that the bug is
fixed and changes the status to “VERIFIED”.
If the bug still exists even after the bug is fixed by the developer, the tester
changes the status to “REOPENED”. The bug traverses the life cycle once again.
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.