What is Software Bug ? Defect Life Cycle Explained

Software Bug

A software bug is a fault in a software program which can produce unexpected outcome or terminates the program unexpectedly. If bug is not handled properly in the software, it may lead to haphazard results. These bugs may occur due to error in the source code or in proper design of the program. Sometimes these bugs may be inconsequential but in some critical operations these bugs may lead to major unwanted effects.

Following are the real-life examples wherein software bugs have had disastrous effects:
1) The hole in ozone layer of Antarctica remained undetected for long period of time because the software designed for mapping the values for ozone layer deviated to a large extend from expected. There was a bug in the data. Eventually, when the data was reviewed the error was exposed.
2) Many of the helicopter crashes have happened in the past because of a system bug. In 1994 in Scotland, a Chinook helicopter crashed and almost 29 passengers were killed because of the system error which was exposed in an inquiry conducted to inspect the mishap.

We all develop softwares which are used in the real world, so it is very important to test the software carefully so that we can save our money and lives.

Software Defect

One of the important phases in software development is testing. Software testers are given several test cases and when the output of any test case scenario deviates from expected result, the tester raises a defect. Eventually, the development team works on the defects to remove bugs from the software.
There are several tools which are used for raising and maintaining defects. One of the popular examples is HP Quality Centre.

Classification of Defects

Defects can be classified on the basis of various parameters

1. Severity wise classification

1) Severity 1 / Critical
Severity 1 defects cause the system to crash or close abruptly. It needs to be fixed on priority.
2) Severity 2 / High
Severity 2 defects can cause failure of some of the major functionality of the software.
3) Severity 3 / Low
Severity 3 defects will not cause failure in the execution of any of the functionalities of the software.

2. Error wise classification

1) Database error
Database error occurs when incorrect data is caught in the database or if database is not accessible to a particular module of code.
2) Design error
When the designing of the software is not appropriate or there are some missing contents in the design.
3) Ambiguous Design error
No content is missing in the design but the placement of the content is ambiguous. Due to such error developers are not able to fully understand the requirements of the customer and end up developing something which doesn’t meet customer’s needs.
4) Logic Error
Logical error is caught in the execution of any of the functionality of the software e.g. a wrong formula to calculate some figures.
5) Performance Error
Error related with performance of the code. For instance, any of the servers installed for the execution of application causes more utilization of the CPU.

Defect Life Cycle

Software Bug Life Cycle & Guidelines, Process Bug Life Cycle Stages
Life Cycle of a Defect
Defect life cycle is the life cycle of the defect when it is caught during testing till it is resolved and closed at the end.
1) New
When the defect is raised for first time, its status is saved as New in HP Quality Centre.
2) Assign
When the defect is raised in HP Quality Centre, it is declared as a valid defect by the lead of tester team then the defect is assigned to the developer for fixing.
3) Open
In this stage, the developer starts working on fixing of the defect.
4) Fixed
In this stage, the developer has tested the faulty code and fixed the code. He will send the code again to testing team to retest it.
5) Retest
In this stage, the tester team again retests the changed code and checks whether the code is still faulty or not. Testing also checks that changed code hasn’t had any adverse effect on other modules.
6) Closed
Once the code has been fixed and verified by the testing team, then the defects can be closed and the code can be sent to the live production environment.
7) Reopened
If the code fixed by the developer is still faulty and the bug has been caused during retesting then the particular defect is reopened.
8) Rejected
If the developer feels that the defect is invalid and the test scenario is working as expected then he can change the status of the defect to “rejected”.
9) Duplicate
If the bug is duplicated then the defect is marked as duplicate in the HP tool.
10) Deferred
Defect can be marked as deferred if the bug is of low severity and can be fixed in next releases.

I hope you got your doubts on software bug and defect life cycle cleared, next up we will learn about unit testing and integration testing.

You may also like to read:
Difference between Testing and Debugging
Exhaustive Testing: What is exhaustive testing?
Benefits and Drawbacks of Outsourcing Testing Activity

Copyright © ianswer4u.com