Friday, April 6, 2012

The Role of Testing by James Bach

The following is a summary of the essay The Role of Testing by James Bach from the book Amplifying Your Effectiveness: Collected Essays.

The essay goes like this: After not liking his time as a developer James thought being a testing manager would provide more wiggle room, since testing is a little more vauge than programming.

James says “I used to think that the role of testing is to find problems.”

Finding problems was easy but not satisfying in the long run (I can attest to that) so after one of the managers at Apple sent around a book called Quality Without Tears he became a bug prevention, zero defects tester.

Then James says “I used to think that the role of testing is to assure quality.”

Yet testers can’t really assure quality because perfect quality is an inherently unreachable goal with many dimensions to it. Testers don’t create quality, most of the time its not in their power to perform. If testers assume the mantra of quality gatekeepers then it's likely the rest of the team will take less responsibility for quality. QA will be there to assure it and when they can’t it's their fault. Additionally many QA people naturally exert control by defining processes and auditing compliance which often slips into moralizing about quality until all anyone can agree on is good quality is good and bad quality is bad.

At some point James’ manager let him in on a secret: testing is about the search for risk, not perfection. Finding important problems fast is the game, not covering the entire system in detail. To do so you have to understand which parts of the product really need to be tested which can bring the tester more into alignment with the rest of the project.

Then James says “I used to think that the role of testing is to analyze risk.”

Yet risk is an abstract (although important) concept. To some it sounds like a way to focus on the negative - what's risky, while the business takes the opposite approach - encouraging risk (entrepreneurial).

So James says “Today, I think the role of testing is to bring vital information to light in support of the grand mission of creating great products and running the business. That includes finding problems, assessing quality, analyzing risk and in any other way helping the team to understand what’s going on.”

This was my favorite article from the entire book because the subject of the "role of testing" doesn't seem to be widely understood today, 12 years after this book was published. The simplicity of James' statements show how he embraces each idea and then discards it, showing us how he learned a little and moved on - lessons learned, if you will.

I wonder, does James still think this way? How long did it take before he realized a certain "perceptual role" didn't work and began looking for another? From the limited experience I've had studying his work I can see how this evolving view influenced his career. For example James has written articles on (heuristic) risk based testing. His Rapid Software Testing course uses a combination of these "perceived roles" to focus only on the important parts that matter - increasing the time you can spend on testing - hence the titled 'Rapid'.

I think in a way James is right, our role as testers is to light the way. Although saying that sounds too abstract, too feel good. Whatever the right phrase, helping the team understand the product seems like a good direction.

The book is called Amplifying Your Effectiveness: Collected Essays edited by Gerald Weinberg, James Bach and Naomi Karten. It's a real quick read and you can pick up a copy cheaply on Amazon or eBay. At 140 pages or so it was super quick to read. According to the book this essay was adapted from an article called “Rethinking the Role of Testing for the e-Business Era.” Cutter IT Journal, Vol. XIII, No. 4.

2 comments:

James Bach said...

Yes, this is still my view of the role of testing.

-- james

Chris Kenst said...

Thanks for the confirmation James.