Fatal Software Testing Flaws

Testing is often seen as a surrogate for quality and if you ask a developer what he is doing about quality, “testing” is often the answer. But testing is not about quality. Quality has to be built in, not bolted on, and as such, quality is a developer task. Period. This brings us to fatal flaw number 1: Testers have become a crutch for developers. The less we make them think about testing and the easier we make testing, the less testing they will do.[…]

When testing becomes a service that enables developers to not think about it, then they will not think about it. Testing should involve some pain. It should involve some concern on the part of developers. To the extent that we have made testing too easy, we have made developers too lazy. The fact that testing is a separate organization at Google exacerbates this problem. Quality is not only someone else’s problem; it is another organization’s problem. Like my lawn service, the responsible party is easy to identify and easy to blame when something goes wrong.

The second fatal flaw is also related to developers and testers separated by organizational boundaries. Testers identify with their role and not their product. Whenever the focus is not on the product, the product suffers. After all, the ultimate purpose of software development is to build a product, not to code a product, not to test a product, not to document a product. Every role an engineer performs is in service to the overall product. The role is secondary. […]

The third fatal flaw is that testers often worship test artifacts over the software itself. The value of testing is in the activity, not the artifacts. Every artifact generated by testers is secondary to the source code. Test cases are less important; the test plan is less important. Bug reports are less important. The activities are what go into making these artifacts that actually provide value. Unfortunately, in the celebration of these artifacts (such as counting the number of bug reports submitted by a test engineer [TE] during an annual review), we forget about the software. All testing artifacts have value to the extent that they impact the source code and therefore, the product.[…]

The last fatal flaw is perhaps the most insightful. How often are products released only for users to find problems that escaped even the more voracious testing process? The answer: almost always. None of us have ever been associated with a product launch that didn’t suffer field issues the test team failed to identify (at Google or elsewhere). In fact,  many of the best bugs in Google+, the product all three of us are working on at the time of this writing, were found by dogfooders – other Googlers outside the Google+ team trying to use the product. We were acting like users; the dogfooders were actual users! It doesn’t matter who does the testing, only that the testing gets done.

Source: “How Google Tests Software”, James Whittaker, Jason Arbon, Jeff Carollo, Addison-Wesley, 264 pages, IBSN 978-0-321-80302-3