You are on page 1of 7

Introduction:

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:
1. New
2. Open
3. Assign
4. Test
5. Verified
6. Deferred
7. Reopened
8. Duplicate
9. Rejected and
10. Closed
Description of Various Stages:
1. New: When the bug is posted for the first time, its state will be NEW. This means that
the bug is not yet approved.
2. 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.
3. 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.
4. Test: Once the developer fixes the bug, he has to assign the bug to the testing team for
next round of testing. 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.
5. 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.
6. 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.
7. 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.
8. Verified: 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.
9. Reopened: 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.
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.
While defect prevention is much more effective and efficient in reducing the number of
defects, most organization conducts defect discovery and removal. Discovering and
removing defects is an expensive and inefficient process. It is much more efficient for an
organization to conduct activities that prevent defects.
Guidelines on deciding the Severity of Bug:
Indicate the impact each defect has on testing efforts or users and administrators of the
application under test. This information is used by developers and management as the basis
for assigning priority of work on defects.
A sample guideline for assignment of Priority Levels during the product test phase includes:
1. Critical / Show Stopper An item that prevents further testing of the product or function
under test can be classified as Critical Bug. No workaround is possible for such bugs.
Examples of this include a missing menu option or security permission required to access a
function under test.
.
2. Major / High A defect that does not function as expected/designed or cause other
functionality to fail to meet requirements can be classified as Major Bug. The workaround
can be provided for such bugs. Examples of this include inaccurate calculations; the wrong
field being updated, etc.
.
3. Average / Medium The defects which do not conform to standards and conventions can

be classified as Medium Bugs. Easy workarounds exists to achieve functionality objectives.


Examples include matching visual and text links which lead to different end points.
.
4. Minor / Low Cosmetic defects which does not affect the functionality of the system can
be classified as Minor Bugs.

FIELDS IN BUG TRACKING TOOL:


1. Bug ID.
2. Bug summary.
3. Bug description.
4. Assigned to
5. Severity.
6. Priority.
7. Status.
8. CC List.
9. Attachments.
10. Comments.
BUG ID:
? A unique id is given for every bug.
BUG SUMMARY:
? Single line explanation about the bug.
BUG DESCRIPTION:
? The details about bug.
ASSIGNED TO:
? To whom the bug is assigned.
SEVERITY:
? Impact of the bug based on the application.
PRIORITY:
? How important the bug has to be fixed.

STATUS:
1. New
2. Deffered
3. Rejected
4. Duplicate
5. Answer only
6. Open
7. Fixed
8. Resolved
9. Verify and Close
10. Failed.
NEW:
? When the test engineers identify the bug he set the status as NEW.
DEFFERED:
? In some cases the bug is not important for the current release then the status will be
DEFFERED.
REJECTED:
? When the bug is invalid then the developer will change the status of the bug to REJECTED.
DUPLICATE:
? When the test engineer identifies the bug if the same bug has been fixed already by
another test engineer then the status will be DUPLICATE.
ANSWER ONLY:
? If the bug is due to environmental issues and not code error then he changes the status to
ANSWER ONLY.
OPEN:
? Development lead will see the bug. If it is valid then he change the status to OPEN.
FIXED:
? After fixing the bug by developer he change the status to FIXED.
RESOLVED:
? After fixing the bug by developer the new build has been created then the developer will
change status RESOLVED.
VERIFY AND CLOSE:
? After the bug resolved then the test engineer will re-execute the test cases when there is
no mismatch in the test cases then test engineer will change the status to VERIFY and then
CLOSE.

FAILED:
? If the mismatch occurs in the test cases means then the tester will change the status to
FAILED.
CC LIST:
? Complete list of e-mail ids we want to sent.
ATTACHMENTS:
? If any bug is identified then the details of the bug has been attached.
COMMENTS:
? If any bug is modified then the tester will add the commands about the bug.

What is Bug/Defect?
Simple Wikipedia definition of Bug is:A computer bug is an error, flaw, mistake, failure,
or fault in a computer program that prevents it from working correctly or produces an
incorrect result. Bugs arise from mistakes and errors, made by people, in either a programs
source code or its design.
Other definitions can be:
An unwanted and unintended property of a program or piece of hardware, especially one
that causes it to malfunction.
or
A fault in a program, which causes the program to perform in an unintended or
unanticipated manner.
Lastly the general definition of bug is: failure to conform to specifications.
If you want to detect and resolve the defect in early development stage, defect tracking and
software development phases should start simultaneously.
We will discuss more on Writing effective bug report in another article. Lets concentrate
here on bug/defect life cycle.

Life cycle of Bug:


1) Log new defect
When tester logs any new bug the mandatory fields are:
Build version, Submit On, Product, Module, Severity, Synopsis and Description to Reproduce
In above list you can add some optional fields if you are using manual Bug submission
template:
These Optional Fields are: Customer name, Browser, Operating system, File Attachments or
screenshots.
The following fields remain either specified or blank:
If you have authority to add bug Status, Priority and Assigned to fields them you can
specify these fields. Otherwise Test manager will set status, Bug priority and assign the bug
to respective module owner.
Look at the following Bug life cycle:

[Click on the image to view full size] Ref: Bugzilla bug life cycle
The figure is quite complicated but when you consider the significant steps in bug life cycle
you will get quick idea of bug life.
On successful logging the bug is reviewed by Development or Test manager. Test manager
can set the bug status as Open, can Assign the bug to developer or bug may be deferred
until next release.
When bug gets assigned to developer and can start working on it. Developer can set bug
status as wont fix, Couldnt reproduce, Need more information or Fixed.
If the bug status set by developer is either Need more info or Fixed then QA responds with
specific action. If bug is fixed then QA verifies the bug and can set the bug status as verified
closed or Reopen.

Bug status description:


These are various stages of bug life cycle. The status caption may vary depending on the
bug tracking system you are using.
1) New: When QA files new bug.

2) Deferred: If the bug is not related to current build or can not be fixed in this release or
bug is not important to fix immediately then the project manager can set the bug status as
deferred.
3) Assigned: Assigned to field is set by project lead or manager and assigns bug to
developer.
4) Resolved/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) Could not reproduce: If developer is not able to reproduce the bug by the steps given
in bug report by QA then developer can mark the bug as CNR. QA needs action to check if
bug is reproduced and can assign to developer with detailed reproducing steps.
6) Need more information: If developer is not clear about the bug reproduce steps
provided by QA to reproduce the bug, then he/she can mark it as Need more information.
In this case QA needs to add detailed reproducing steps and assign bug back to dev for fix.
7) Reopen: If QA is not satisfy with the fix and if bug is still reproducible even after fix then
QA can mark it as Reopen so that developer can take appropriate action.
8 ) Closed: If bug is verified by the QA team and if the fix is ok and problem is solved then
QA can mark bug as Closed.
9) Rejected/Invalid: Some times developer or team lead can mark the bug as Rejected or
invalid if the system is working according to specifications and bug is just due to some
misinterpretation.

You might also like