"Perfect Software and Other Illusions about Testing"
Gerald W. Weinberg
Dorset House, 2008.

reviewed by Dwayne Phillips

I know Jerry Weinberg. I like him, treasure his advice, and have read and liked many of his books. This is another of his books that I like.

Jerry writes around testing software. I say "around" instead of "about" because this book isn't about the technical aspects of testing software. I find it to be about the personal and thoughtful aspects of testing software. More importantly, it is about information - communicating, considering, and applying information.

This all starts with Jerry's definition of Testing a System:

a process of gathering information about it with the intent that the information could be used for some purpose.

Aha! Gathering information that we can use. I agree. I have often pleaded with people on projects to understand this about testing.

I don't know how often I have heard screams of, "The test failed! The test failed!"

No, the test didn't fail. We learned something from the test, so it was a success. Perhaps you were disappointed by what you learned from the test, but the test didn't fail.

This is why I love Weinberg's book about testing. Its contents will last beyond the current and next three generations of test tools and techniques. It cuts to the heart of testing in a timeless manner.

Simple, right? Wrong. The second half of the testing definition is about using the information, and people use the information. Now we come to a huge hurdle. "Information is power." Some people crave information, and many people fear it, even to the point of hiding it or lying about it.

Weinberg discusses the fear at length, how to spot the fear, and how to work with the people who are afraid.

Yes, I recommend this book. I can give it to a manager at any level and trust that if they read it, they have the potential to be a much better manager. I can give the book to just about anyone - especially people who have nothing to do with software or testing software. It contains much about how people gather, communicate, consider, and use information.