Perfect Software is a high-level look at some of the "big picture questions" about testing, such as: Why do we have to bother testing? Do we have to test everything? What makes testing so hard? Is perfect software possible? Why can't we just accept a few bugs?
It's a small book (under 200 pages), and a quick read. From the preface:
"I envision this book in the hands of professional testers, developers, consumers, analysts, designers, programmers, all of their managers, and all of their coworkers.Contents:
Most professional testers will know most of what's in this book, but I hope that by reading on, they will see new ways to communicate what they know - to their managers, developers, coworkers, and customers.
I'd like to help both developers and testers understand what their managers face when they confront software testing issues."
- Why Do We Bother Testing?
- What Testing Cannot Do
- Why Not Just Test Everything?
- What's the Difference Between Testing and Debugging?
- Meta-Testing
- Information Immunity
- How to Deal With Defensive Reactions
- What Makes a Good Test?
- Major Fallacies About Testing
- Testing Is More Than Banging Keys
- Information Intake
- Making Meaning
- Determining Significance
- Making a Response
- Preventing Software Testing from Growing More Difficult
- Testing Without Machinery
- Testing Scams
- Oblivious Scams
In chapter 3 "Why Not Just Test Everything?", Weinberg has a section called "There are an infinite number of possible tests." He talks about a backdoor placed into a highly secure program whereby the ordinary password protection could be bypassed by typing W followed by three spaces, then M followed by three spaces, then J followed by exactly 168 more keystrokes without once using the letter L. Then he writes:
"Do you get the point by now? If you didn't guess that the number of tests required to exhaustively test software is infinite, or at least "a number greater than I could run in my lifetime", you didn't understand the point of this chapter. Now you do."If you are looking for a "how to" book, you should look elsewhere. If you are looking for a "why" (and sometimes "why not") book, this might be for you.