The concept of measuring quality can be a hot-button topic for many software testers. This is because metrics can be used poorly; we’ve all heard stories about testers who were evaluated based on how many bugs they found or how many automated tests they wrote. These measures have absolutely no bearing on software quality. A person who finds a bug in three different browsers can either write up the bug once or write up a bug for each browser; having three JIRA tickets instead of one makes no difference in what the bug is! Similarly, writing one hundred automated tests where only thirty are needed for adequate test coverage doesn’t ensure quality and may actually slow down development time.
But measuring quality is important, and here’s why: software testers are to software what the immune system is to the human body. When a person’s immune system is working well, they don’t think about it at all. They get exposed to all kinds of viruses and bacteria on a daily basis, and their immune system quietly neutralizes the threats. It’s only when a threat gets past the immune system that a person’s health breaks down, and then they pay attention to the system. Software testers have the same problem: when they are doing their job really well, there is no visible impact in the software. Key decision-makers in the company may see the software and praise the developers that created it without thinking about all the testing that helped ensure that the software was of high quality.
Measuring quality is a key way that we can demonstrate the value of our contributions. But it’s important to measure well; a metric such as “There were 100 customer support calls this month” means nothing, because we don’t have a baseline to compare it to. If we have monthly measurements of customer support calls, and they went from 300 calls in the first month, to 200 calls in the second month, to 100 calls in the third month, and daily usage statistics stayed the same, then it’s logical to conclude that customers are having fewer problems with the software.
With last week’s post about the various facets of quality in mind, let’s take a look at some ways we could measure quality.
How many bugs are found in production by customers?
A declining number could indicate that bugs are being caught by testers before going to production.
How many daily active users do we have?
A rising number probably indicates that customers are happy with the software, and that new customers have joined the ranks of users.
What is our percentage of uptime?
A rising number could show that the application has become more stable.
How many errors do we see in our logs?
A declining number might show that the software operations are generally completing successfully.
How many issues were found by penetration tests and security scans?
A declining number could show that the application is becoming more secure.
What is our average response time?
A stable or declining number will show that the application is operating within accepted parameters.
What are our customers saying about our product?
Metrics like survey responses or app store ratings can indicate how happy customers are with an application.
How many customer support calls are we getting?
Increased support calls from customers could indicate that it’s not clear how to operate the software.
How many support calls are we getting related to browser, device, or operating system?
An increased number of support calls could indicate that the application is not working well in certain circumstances.
What browsers/devices/operating systems are using our software?
When looking at analytics related to app usage, a low participation rate by a certain device might indicate that users have had problems and stopped using the application.
What percentage of customers upgraded to the new version of our software?
Comparing upgrade percentages with statistics of previous upgrades could indicate that the users found the upgrade process easy.
How many support calls did we get related to the upgrade?
An increased number of support calls compared to the last upgrade could indicate that the upgrade process was problematic.
How long does it take to deploy our software to production?
If it is taking longer to deploy software than it did during the last few releases, then the process needs to be evaluated.
How frequently can we deploy?
If it is possible to deploy more frequently than was possible six months ago, then the process is becoming more streamlined.
There’s no one way to measure quality, and not every facet of quality can be measured with a metric. But it’s important for software testers to be able to use metrics to demonstrate how their work contributes to the health of their company’s software, and the above examples are some ways to get started. Just remember to think critically about what you are measuring, and establish good baselines before drawing any conclusions.