GST Billing Software

header image

WHAT IS A SOFTWARE BUG?

Erachana Line

Learn defect life cycle or bug life cycle and Defect Management Process


What is Bug?

A bug is the consequence/outcome of a coding fault


What is Defect?

A defect is a variation or deviation from the original business requirements

These two terms have very thin line of difference, In the Industry both are faults that need to be fixed and so interchangeably used by some of the Testing teams.

When a tester executes the test cases, he might come across the test result which is contradictory to expected result. This variation in the test result is referred as a Software Defect. These defects or variation are referred by different names in a different organization like issues, problem, bug or incidents.


While reporting the bug to developer, your Bug Report should contain the following information

1. Defect_ID - Unique identification number for the defect.

2. Defect Description - Detailed description of the Defect including information about the module in which Defect was found.

3. Version - Version of the application in which defect was found.

4. Steps - Detailed steps along with screenshots with which the developer can reproduce the defects.

5. Date Raised - Date when the defect is raised

6. Reference- where in you Provide reference to the documents like requirements, design, architecture or maybe even screenshots of the error to help understand the defect

7. Detected By - Name/ID of the tester who raised the defect

8. Status - Status of the defect , more on this later

9. Fixed by - Name/ID of the developer who fixed it

10. Date Closed - Date when the defect is closed

11. Severity which describes the impact of the defect on the application

12. Priority which is related to defect fixing urgency. Severity Priority could be High/Medium/Low based on the impact urgency at which the defect should be fixed respectively

If the defect communication is done verbally, soon things become very complicated. To control and effectively manage bugs you need a defect lifecycle.


Defect Management Process

1. Discovery

In the discovery phase, the project teams have to discover as many defects as possible, before the end customer can discover it. A defect is said to be discovered and change to status accepted when it is acknowledged and accepted by the developers

In case of conflicts, the defect resolution process should be applied to solve the conflict, you take the role as a judge to decide whether the website problem is a defect or not.

2. Categorization

Defect categorization help the software developers to prioritize their tasks. That means that this kind of priority helps the developers in fixing those defects first that are highly crucial.



Defects are usually categorized by the Test Manager -

No.

Description

Priority

Explanation

1

The website performance is too slow

High

The performance bug can cause huge inconvenience to user.

2

The login function of the website does not work properly

Critical

Login is one of the main function of the banking website if this feature does not work, it is serious bugs

3

The GUI of the website does not display correctly on mobile devices

Medium

The defect affects the user who use Smartphone to view the website.

4

The website could not remember the user login session

High

This is a serious issue since the user will be able to login but not be able to perform any further transactions

5

Some links doesn't work

Low

This is an easy fix for development guys and the user can still access the site without these links

3. Resolution

Once the defects are accepted and categorized, you can follow the following steps to fix the defect.

1. Assignment: Assigned to a developer or other technician to fix, and changed the status to Responding.

2. Schedule fixing: The developer side take charge in this phase. They will create a schedule to fix these defects, depend on the defect priority.

3. Fix the defect: While the development team is fixing the defects, the Test Manager tracks the process of fixing defect compare to the above schedule.

4. Report the resolution: Get a report of the resolution from developers when defects are fixed.

4. Verification

After the development team fixed andreported the defect, the testing team verifies that the defects are actually resolved.

For example, in the above scenario, when the development team reported that they already fixed 61 defects, your team would test again to verify these defects were actually fixed or not.

5. Closure

Once a defect has been resolved and verified, the defect is changed status as closed. If not, you have send a notice to the development to check the defect again.

6. Reporting

The management board has right to know the defect status. They must understand the defect management process to support you in this project. Therefore, you must report them the current defect situation to get feedback from them.

Important Defect Metrics

Back the above scenario. The developer and test teams have reviews the defects reported. Here is the result of that discussion

How to measure and evaluate the quality of the test execution?

This is a question which every Test Manager wants to know. There are 2 parameters which you can consider as following



In the above scenario, you can calculate the defection rejection ratio (DRR) is 20/84 = 0.238 (23.8 %).

Another example, supposed the test application/website has total 64 defects, but your testing team only detect 44 defects i.e. they missed 20 defects. Therefore, you can calculate the defect leakage ratio (DLR) is 20/64 = 0.312 (31.2 %).

Conclusion, the quality of test execution is evaluated via following two parameters

The smaller value of DRR and DLR is, the better quality of test execution is. What is the ratio range which is acceptable? This range could be defined and accepted base in the project target or you may refer the metrics of similar projects.

In this project, the recommended value of acceptable ratio is 5 ~ 10%. It means the quality of test execution is low. You should find counter measures to reduce these ratios such as

Improve the testing skills of member.

Spend more time for testing execution, especially for reviewing the test execution results.

What is Defect Life Cycle?

Defect Life Cycle or Bug Life Cycle is the specific set of states that a Bug goes through from discovery to defect fixation.

The number of states that a defect goes through varies from project to project. Below lifecycle diagram, covers all possible states

1. New: When a new defect is logged and posted for the first time. It is assigned a status NEW.

2. Assigned: Once the bug is posted by the tester, the lead of the tester approves the bug and assigns the bug to developer team

3. Open: The developer starts analysing and works on the defect fix

4. Fixed: When developer makes necessary code change and verifies the change, he or she can make bug status as "Fixed."

5. Pending retest: Once the defect is fixed the developer gives particular code for retesting the code to the tester. Since the testing remains pending from the testers end, the status assigned is "pending request."

6. Retest: Tester does the retesting of the code at this stage to check whether the defect is fixed by the developer or not and change the status to "Re-test."

7. Verified: The tester re-tests the bug after it got fixed by the developer. If there is no bug detected in the software, then the bug is fixed, and the status assigned is "verified."

8. Reopen: If the bug persists even after the developer has fixed the bug, the tester changes the status to "reopened". Once again, the bug goes through the life cycle.

9. Closed: If the bug is no longer exists then tester assigns the status "Closed."

10. Duplicate: If the defect is repeated twice or the defect corresponds the same concept of the bug, the status is changed to "duplicate."

11. Rejected: If the developer feels the defect is not a genuine defect then it changes the defect to "rejected."

12. Deferred: If the present bug is not of a prime priority and if it is expected to get fixed in the next release, then status "Deferred" is assigned to such bugs

13. Not a bug: If it does not affect the functionality of the application then the status assigned to a bug is "Not a bug".

Example -

Suppose we have a flight reservation application. Now in order to login into the webpage, you have to enter the correct password "Mercury".

Any wrong password entered for the login page will be addressed as a defect.

While testing the application, tester finds that an error pops out when a wrong password entered into the login page and assigned this error or defect as, NEW. This defect is then assigned to development project manager to analyze whether the defect is valid or not. The project manager finds that the defect is not a valid defect.

Defect Life Cycle Explained



  1. Tester finds the defect
  2. Status assigned to defect- New
  3. Defect is forwarded to Project Manager for analyse.
  4. Project Manager decides whether defect is valid.
  5. Here the defect is not valid- status given "Rejected."
  6. So, project manager assigns a status rejected. If the defect is not rejected then the next step is to check whether it is in scope. Suppose we have another function- email functionality for the same application, and you find a problem with that. But it is not a part of the current release then such defects are assigned as a postponed or deferred status.
  7. Next, manager verifies whether a similar defect was raised earlier. If yes defect is assigned a status duplicate.
  8. If no the defect is assigned to the developer who starts fixing the code. During this stage, the defect is assigned a status in- progress.
  9. Once the code is fixed. Defect is assigned a status fixed
  10. Next the tester will re-test the code. In case, the Test Case passes the defect is closed. If the test cases fails again, the defect is re-opened and assigned to the developer.
  11. Consider a situation where during the 1st release of Flight Reservation a defect was found in Fax order that was fixed and assigned a status closed. During the second upgrade release the same defect again re-surfaced. In such cases, a closed defect will be re-opened.
  12. That's all to Bug Life Cycle