The Cost of Software Testing
Let's face it: Testing is regarded as the number one bottleneck in the software delivery process. Whether you’re practicing DevOps, continuous integration, continuous delivery, or continuous everything, testing is consistently considered the primary holdup for delivery. Most people simply conclude that developers are value centers, and testers are cost centers.
Well, it is correct that testers are cost centers. The more they test, the more time they need, so the more they cost. But the same is true for developers: The more they develop, the more time they need, and the more they cost, too. It's easy to apply this logic to any person in your company who contributes to the software delivery process.
I think we are missing something important here, especially when we talk about testers. First, we shouldn't talk about testers; we should talk about testing. Second, we shouldn't just see the cost of testing, but also the value of testing—and then we should ask how this value relates to the costs.
That's what most people overlook. The reason for this is simple: Testing is inherently abstract. Through testing you don't produce something tangible; you collect quality-related information about your software, like risks. You then share this information with other people, such as product owners, to enable them to make decisions about shipping, fixing bugs, etc.
It’s obvious that this activity—let's call it testing—has some value. Hence, people who test—let's call them testers—add value to the software delivery process. So, we should reframe our thinking: "Good" developers are value centers, and "bad" testers are cost centers. Likewise, "bad" developers are cost centers, and "good" testers are value centers.
You might now be saying, "Well, everybody can collect quality-related information about the software in one way or another. Do we really need dedicated testers?"
It’s true: Everybody can test. If that happens to be your developer, so be it. But everybody can also test badly. So you probably want someone on your team who can test more reliably, more deeply, and more efficiently than anyone else on your team. In the same way, you probably want someone on your team who can develop software more reliably, more sustainably, and more efficiently than anyone else on your team.
So, for the same reason most companies have dedicated developers, dedicated product owners, dedicated product managers, dedicated support engineers, dedicated marketing strategists, dedicated documentation experts, dedicated UI designers, dedicated UX experts, and so on, they also have dedicated testers on their teams.
These companies understand the value of professional testing. They don't reduce the act of testing to the number of test cases that have been created, in the same way they don't reduce the act of development to the amount of code that has been written, or they don't reduce the work of a product owner to the number of user stories that have been created.
These are the companies that realize it requires specialists in each field to succeed with their software along the line.