Software BugA 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 DefectOne 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 DefectsDefects can be classified on the basis of various parameters
1. Severity wise classification1) 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 classification1) 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
|Life Cycle of a Defect|
When the defect is raised for first time, its status is saved as New in HP Quality Centre.
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.
In this stage, the developer starts working on fixing of the defect.
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.
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.
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.
If the code fixed by the developer is still faulty and the bug has been caused during retesting then the particular defect is reopened.
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”.
If the bug is duplicated then the defect is marked as duplicate in the HP tool.
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