In Software Testing Life Cycle (STLC) there are numerous testing methodologies and techniques, which are proficient in detecting majority of defects and bugs. However, even the most prominent and effective testing methodologies are unable to retrieve and detect all the bugs, defects, and errors in the system, as they are hidden or present at the most internal level of the software. These bugs and errors are uncovered during the later stages of software testing life cycle (STLC) and are known as leakage. Therefore, to calculate the total number of undetected defects and errors, competent software engineers follow an approach known as defect leakage, which helps them calculate the total defects present in a software system, as well as aids them in validating their testing efforts.
Defect leakage is a metric, which is used by software testers to identify the efficiency of the Quality Assurance (QA) testing. It is the ratio of number of defects attributed to a stage, but only captured in subsequent stages, to the sum of total number of defects captured in that particular stage and the total number of defects attributed to a stage, but only captured in subsequent stages. Other components of defect leakage are:
In short, defect leakage is a metric that measures the percentage of defects leaked from the current testing stage to the subsequent stage as well as proves the effectiveness of testing executed by software testers. However, the testing team’s worth is only validated when the percentage of defect leakage is minimal or non-existing.
As stated above, defect leakage is the way of determining the amount of defects left undetected during a particular Software Development Life Cycle (SDLC). This process is extremely crucial and is performed through a set formula, which is followed by software testers around the world. The formula for defect leakage is:Defect Leakage: [Number of defects attributed to a Special Investigation Team (SIT) but captured in User Acceptance Testing (UAT)/ (Total number of defects captured SIT + Total number of defects attributed to SIT but captured in UAT)] Where UAT is the User acceptance testing done at the production site by the end users.
For Example, 35 defects were found during UAT at the production site by the end users and 140 defects were found during the whole QA process including both the testing site and the production site. Therefore, the defect leakage would be= (35/140)*100
As the process of software development is a culmination of various activities, there can be several reasons for a defect to be left undetected, even after rigorous and intense testing. From a minor error in the coding or programming of the software to lack of product or domain knowledge, the reasons for defect leakage can be numerous. Therefore, mentioned here are some of these reasons, which can lead to high defect leakage.
To ensure that defect leakage is controlled and not persistent in the software, as well as to validate the quality of the end product, it is necessary for software developers and testers to use some ways to prevent it. This allows them to avoid any major issues in the software development cycle as well as saves their combined testing and development efforts. Hence, the ways to prevent high defect leakage are:
Finding defects and errors is though crucial for proper and effective software development, it can be harmful and disastrous if found in abundance or at the wrong time. It is the responsibility of software testers and Quality Assurance (QA) team to uncover all the defects, errors, bugs, and more from a system at the appropriate time, as it will help them build an efficient software or application of high quality, performance, functionality, and more. Moreover, with the assistance of the matrix defect leakage they can determine the percent of defects leaked to a subsequent stage and get the total number of unrecovered as well as hidden defects. Defect leakage is the best way of validating the testing efforts. Additionally, its significance is immense as the lower the value of defect leakage, the better is the quality of software testing.