What are the Best Metrics for judging Test Efficiency
By Sourojit Das, Community Contributor - August 25, 2022
Software testing is not cheap. Neither are the costs incurred from the failure of untested software.
In 1962, the Mariner 1 Spacecraft launched by NASA had to be self-destructed after 290 seconds of flight as a bug had caused the rocket to go off in a completely wrong direction. A single eliminated hyphen in the coded instructions had led to a loss of $18 million at that time.
History is replete with examples of poorly tested software leading to major financial and repetitional losses for organizations and wreaking far-reaching consequences on the lives and well-being of thousands of unsuspecting consumers.
As per standard estimates, if a bug is found at the requirements stage, it might end up costing the company $100. The same bug could end up costing $1,500 in the QA Testing phase, and up 1o $10,000 in the Production phase. And a bug never found could have near catastrophic consequences in the wrong hands.
Hence, the industry has woken up to the fact that software not properly tested is not worth shipping.
A 2019 survey of CIOs and other tech leaders reported that anywhere between 15%-25% of a project’s costs were allocated to software testing, with the average being around 23%. Thus, it makes sense to test software effectively, in a manner that optimizes both the ROI from testing and results in bug-free software delivery on time.
How to determine Test Efficiency
Now that the need for thorough software testing has been firmly established, it is imperative to consider what an efficient test might look like. Testing software, either manually or through automated processes, costs time and money, and thus it is of prime importance that all tests conducted to be as efficient as possible
Test efficiency, in this case, can be considered as a combined factor of the following factors:
- Is it cost-effective to perform?
- Does it contribute to the Goals and milestones of the test team?
- Are they useful in eliminating defects?
- Do they cover the entire scope of the project?
- Are the results comprehensive enough to deliver proof of ready-to-ship software?
Since this is quite a complex set of high-level concepts, test managers and QA leaders look to quantify this by a structured approach using a number of disparate metrics.
The following section discusses the metrics that correlate with these objectives and how they relate to test efficiency.
Read More: How to determine the right testing metrics
Best Metrics to judge Test Efficiency
Though there are no “silver bullets” when it comes to metrics that judge test efficiency, the sum of parts can be built up by covering the bases with metrics that estimate the components listed in the section above
1. Metrics that cover cost-effectiveness and ROI
Usually, stakeholders do not question the need for thorough testing of applications. However, these tests, especially if they incorporate automation testing can sometimes be very expensive in terms of both financial and human resources.
Having strong quantitative measures that help define the Return on Investment for building and testing test frameworks are useful for test leaders to judge test efficiency. By calculating and demonstrating Test Automation’s Return on Investment (ROI), stakeholders can be better convinced that the investment will be worthwhile in the long run.
The formula for test ROI (especially for automation) can be calculated using the following:
- Automated test script development time = (Hourly automation time per test x Number of automated test cases) / 8
- Automated test script execution time = (Automated test execution time per test x Number of automated test cases x Period of ROI) / 18
- Automated test analysis time = (Test Analysis time x Period of ROI) / 8
- Automated test maintenance time = (Maintenance time x Period of ROI) / 8
- Manual Execution Time = (Manual test execution time x Number of manual test cases * Period of ROI) / 8
This mode of calculation focuses on total efficiency rather than just monetary profit.
However, it does make assumptions such as a scenario in which automated test cases have fully replaced manual testing (which is never the case), and that manual testing requires only a single tester (something almost impossible). Use this calculation as a rough guide rather than the final estimate.
Pro Tip: When calculating test automation ROI, take into consideration that tests must be run on real browsers and devices, not emulators and simulators. Every website has to work seamlessly on multiple device-browser-OS combinations. With 9000+ distinct devices being used to access the internet globally, all software has to be optimized for different configurations, viewports, and screen resolutions.
2. Metrics that cover Test Case Efficiency
- Test Passed Percentage: As an overview of the testing process, it can be even more valuable when used in conjunction with defect KPIs.
For instance, if a high number of defects have escaped notice, and the test passed percentage is high it can mean that the tests have failed to cover key business requirements comprehensively.
It is measured as
(Tests Passed/Total Tests)*100%
- Total defect containment efficiency: This ratio seeks to quantify the effectiveness of the testing process in finding defects. While a high ratio for this metric is a sign of an effective testing process, a low ratio indicates costly defects being discovered during the production stage.
It is measured as
(Bugs found in testing stage / Bugs found in testing stage + Bugs found after release)*100%
3. Metrics that measure Test Coverage
Test coverage is one of the most crucial parts of the software development cycle. It is a clear indicator of the quality of the test plan. Test coverage helps understand the qualitative aspects of the software test plan.
- Functional Coverage: This defines the coverage the test plan provides in terms of the business and functional requirements. It does not assign a value to each function individually, as branch coverage or statement coverage does. Instead, it simply determines whether each function was called by the tests you were running.
It is used to measure test coverage before software delivery is accomplished and can provide a measure of the software tested at any point during testing. This provides a very objective measure of how the testing conducted measures up to the core functionality being implemented.
It is calculated as follows:
Function Test Coverage = FE/FT
FE is the number of test requirements that are covered by test cases that were executed against the software
FT is the total number of test requirements.
- Test Execution Coverage:
It defines what the percentage of test execution vis-a-vis the total test case count is.
It helps understand the amount of test coverage in terms of absolute numbers. This widely helps in understanding the pass or fail rate of the test build.
It is calculated as
[(Number of tests run) / (Number of tests to be run)] * 100%
- Requirements Coverage:
Requirements coverage can be deciphered by comparing the number of requirements that are fully covered by the test scenarios vs those partially covered or not covered by the test scenarios.
It is calculated as
(Number of tests run)/(Number of tests to be run) * 100%
4. Defect Oriented Metrics for Test Efficiency
- Defect Density
Defects can provide meaningful insights into whether a build is ready for release or if some further tests are required. The usual industry standard for this metric is 1 defect per 1000 LOC
This measure tracks the total number of defects over the size of release and is computed as:
Defect Density – Defect Count/Size of Release
- Defect Gap Analysis :
It is the extent to which the development team is able to handle and remove the valid defects reported by the test team.
It is calculated as:
Defect Gap % = (Total number of defects fixed / Total Number of Valid Defects Reported) * 100 %
The lower the Gap %, the more robust the testing process and the more efficiency of the bugs reported leading to their quick resolution.
Getting the right metrics pinned down and leveraging them optimally is essential to the planning and execution of a QA process. These metrics can be especially important in an Agile environment as the test managers have to be mindful of even the most minute goals and objectives being considered for every sprint.
Comprehensive and contextually right test metrics help testers to stay on track and understand the exact nature of the goals they are trying to meet. Any sub-optimality in these results can allow test leaders to recalibrate the efficiency of the test process.
It is imperative to understand that the entire QA process hinges on the use of a real device cloud. Without real device testing, it is impossible to identify every possible bug a user may encounter. Naturally, undetected bugs cannot be tracked, monitored, or resolved, and even the most efficient QA metrics cannot be used to set baselines and measure success.
Use BrowserStack’s Cloud Selenium Grid of 3000+ real browsers and devices to run all requisite tests in real user conditions. Manual testing is also easily accomplished on the BrowserStack cloud. Sign Up for free, choose the requisite device-browser combinations, and start testing.