The Power of Metrics: How Data-driven Insights Can Supercharge Your Testing

The Quality Guy
4 min readApr 24, 2023
Photo by John Schnobrich on Unsplash

In today’s fast-paced and ever-changing technological landscape, improving and maintaining software quality has never been more important. As a seasoned software professional with a background in both development and testing, I know firsthand how challenging it can be to identify the underlying causes of bugs, prevent them from happening, and continuously improve application quality.

One way to overcome these challenges is through the use of metrics. Metrics can help us understand where to focus our software testing efforts and track our progress toward improving application quality.

As Michael Bolton, a leading software quality professional, once said, “Good metrics allow you to ask better questions, not answer them.” This statement emphasizes that metrics are there to lead us to ask better questions about the quality of the software, rather than provide definitive answers.

In this article, I will share the metrics that our team has found to be most effective in improving our testing processes and application quality. First, we track bug statistics. This includes metrics such as the number and severity of bugs identified during the testing phase, which can help evaluate the effectiveness of our testing process, identify areas of improvement, and prioritize bug-fixing efforts.

The Bug Statistics dashboard is a valuable tool that provides insight into the number and severity of bugs identified during and after the testing phase. This information can be used to evaluate the effectiveness of the testing process, identify areas of improvement, and prioritize bug-fixing efforts. One commonly used metric is the number of bugs identified, which helps to quantify the number of defects found and identify areas of the software that require improvement.

Sample bug dashboard (Due to confidentiality, we are not able to show our actual bug statistics board)

At our company, we primarily use Jira to report bug defects, and there are several key metrics we track to enhance and improve our testing efforts. These metrics include:

  • New Bugs Average (per month) trend: This metric shows whether the number of new bugs is increasing or decreasing over time, providing insights into the effectiveness of testing processes.
  • New Bugs by Priority trend: This metric provides a breakdown of new bugs by priority (Blockers, High, Medium, and Low), allowing teams to identify trends in specific areas and prioritize bug-fixing efforts accordingly.
  • Component-related analysis: This metric tracks the buggiest components, both in terms of frequency and severity of bugs, providing insights into where code and quality review efforts should be focused.
  • Bugs by source: This metric helps teams understand whether bugs are coming from clients or internally, allowing them to tailor their testing processes accordingly.
  • Bugs by version release: This metric provides a comparison of bug indexes across different release versions, helping teams understand whether bugs are being fixed and whether new bugs are being introduced.
  • New Bugs to Customer Ratio Trend: This metric tracks the ratio of new bugs reported per customer, providing insights into whether increases in customer numbers are impacting bug reporting rates.
  • New Bugs vs. Fixed Bugs vs. All Open Bugs comparison trend: This metric provides a comparison of new bugs reported, fixed bugs, and all open bugs, helping teams understand whether they are keeping up with fixing bugs and whether the number of open bugs is increasing or decreasing over time.
Another example of quality monitoring (generated from Midjourney)

Second, we monitor test coverage for API and E2E automation tests. The process of software testing is critical to ensuring the quality of the application, and one of the ways to achieve this is by measuring test coverage. Test coverage is a measure of how much of the application’s code, requirements, or test cases have been executed during testing. By tracking test coverage, we can identify areas that need more attention and improve the effectiveness of our testing efforts.

There are different approaches to measuring test coverage, and the choice of approach depends on the organization’s requirements and objectives. Code coverage, for example, measures how much of the application’s source code has been executed during testing. Requirements coverage measures the degree to which the software meets the specified requirements. While test-case coverage measures how many of the test cases have been executed.

In our team, we track test coverage for API and automation tests using a combination of requirements coverage and test case coverage. This means that we focus on testing the most critical parts of the application, as identified by the requirements, and ensure that all relevant test cases are executed. By doing so, we can identify and fix issues more efficiently, reducing the risk of bugs or errors in the final product.

Tracking test coverage is a crucial aspect of software testing, and choosing the right approach can make a significant difference in the effectiveness of the testing process. By using a combination of requirements coverage and test case coverage for our API and E2E automation tests, our team can ensure that we are testing the most critical parts of the application and delivering high-quality software to our clients.

Quality metrics are an essential tool for improving software quality and identifying areas for improvement. By tracking bug statistics and test coverage, we can make informed decisions about where to focus our testing efforts and continuously improve our application’s quality.

--

--