Jump to ratings and reviews
Rate this book

Perfect Software: And Other Illusions About Testing

Rate this book
Everyone has a role to play in software testing -- even people outside a project team. Testers, developers, managers, customers, and users shape the process and results of testing, often unwittingly. Rather than continue to generate stacks of documents and fuel animosity, testers can cultivate rich opportunities and relationships by integrating an effective testing mentality into any process.

Jerry Weinberg, author of The Psychology of Computer Programming and more than forty nonfiction books, sets out to disprove destructive notions about testing and testers in Perfect Software And Other Illusions About Testing. With a blend of wit, storytelling, and jaw-dropping insight that has won him fans around the world, Weinberg deftly separates what is expected, significant, and possible in software testing. He destroys fallacies and steers readers clear of common mistakes.

We test because people are not perfect, and simply testing more does not guarantee better quality. This book guides test strategy development that's scalable for any project.

Topics include:

- Why Not Just Test Everything?
- Information Immunity
- What Makes a Test Good?
- Major Fallacies About Testing
- Determining Significance
- Testing Without Machinery
- and much more.

200 pages, Paperback

First published August 29, 2008

Loading interface...
Loading interface...

About the author

Gerald M. Weinberg

88 books355 followers
Gerald Marvin Weinberg (October 27, 1933 – August 7, 2018) was an American computer scientist, author and teacher of the psychology and anthropology of computer software development.

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
112 (41%)
4 stars
96 (35%)
3 stars
44 (16%)
2 stars
12 (4%)
1 star
4 (1%)
Displaying 1 - 22 of 22 reviews
33 reviews1 follower
July 7, 2021
Note: Not my first time through this book.

This book should be mandatory reading for all software development professionals, particularly managers. Gerry has a great way of communicating the value of testing, the pitfalls of common approaches to development and test management, as well as what testers should be focusing on when it comes to communication.
Profile Image for Zainab.
52 reviews47 followers
March 27, 2021
I hope I can use Gerald's insights on some fine day in my life.

Recommended for software testers/developers/managers (especially the managers).
Profile Image for Matt Diephouse.
92 reviews38 followers
December 10, 2017
There was some good info in here: about the inability to exhaustively test, how to classify bugs, etc. But I found the bug hard to get through and poorly organized. (The latter was due largely to the poor formatting of the Kindle version, I expect.)

The writing switched between unnecessary, contrived narrative and a more bullet-point style. I found both very distraction, and I'm not sure which I liked least.
13 reviews6 followers
May 2, 2022
A solid book by Garry Weinberg.

A lot of it is about busting various myths about software testing (such that you can find all the bugs via a perfect testing process).
They keep saying that testing is about _providing information to managers so they can make decisions to mitigate risk_.
It also offers advice on how to give such information and how to receive feedback.

Worth reading and recommended!
Profile Image for Mikhail Filatov.
266 reviews10 followers
August 29, 2022
It was quite engaging with a bullet list of issues for every chapter.
I don't know why Weinberg decided to bring elements of "business novel" -without a consistent characters - somewhere in the middle as it did not bring any value.
Profile Image for Igor.
31 reviews1 follower
December 20, 2018
Great read. Definitely would recommend it to anyone interested in software development, not just tje testing.
Profile Image for Alex Railean.
265 reviews39 followers
May 31, 2022
A great and very accessible overview of the subject of software testing. I recommend this strongly to software engineers, not only folks who deal with QA and testing.
Profile Image for jvickery88.
30 reviews1 follower
April 19, 2024
As far as books on testing and software development go, this is probably the best I’ve read.
2,676 reviews36 followers
December 26, 2014
Exhaustive testing of software is generally impossible; in all but the most simple of cases the number of possible paths is effectively infinite. By that I mean that while the number is finite, it is so large that only a tiny percentage could ever be tested. So in practice the number is infinite. Since humans are prone to error and the number of possible paths where a bug can be introduced into a program is also very large, the bug-free (perfect) program is an unattainable goal. It is no fun, but that is just the way things are.
Being driven by optimism and necessity, humans still create millions of lines of code every year and many of these programs are released into the untamed wilderness known as the customer base. Therefore, conscientious developers have no choice but to develop a testing program that will have a reasonable chance of identifying the most significant and likely bugs in the software.
As Weinberg points out, some people do make the choice to do very little testing, sometimes relying on an approach like "If we get lucky, no one will experience that bug." Others simply redefine the bug as a feature and move on. Neither of these approaches is ethical nor will it provide you with legal cover. In a very witty yet understated style, Weinberg describes some of the circumstances he has encountered where people simply denied there was a problem and if that failed tried to hoist the problem onto someone else.
As is the case in most areas of software development, the solution lies more in the realm of group psychology rather than technical expertise. Having authored the classis "The Psychology of Computer Programming" Weinberg is an expert at finding what solutions are available to this seemingly impossible problem. It starts with eliminating all illusions and delusions and accepting the inherent limitations of what software testing can do. After that, one develops a testing process that is executed concurrently with the development of the software. The first step is to test the modules by creating a set of reasonable coverage test values. Varying from module to module, this set covers some of the most likely entries as well as the bizarre ones and the ones on the limits.
Once the tests on the modules are complete, the next step is to integrate the modules into a functional unit. Once the unit is stable and can be run, an additional set of reasonable coverage test operations is created and executed. In each case, detailed knowledge of what the software is supposed to is used to develop the sets of test values.
Weinberg is also forceful in debunking the current state of the automated testing of software, a tactic that he dismisses. The strongest argument against using software to test software is grounded in human psychology, namely the easily adopted assumption that if it came from a computer then it must be right. This belief in the infallibility of technology has a strong tendency to dumb-down humans and that is to be avoided if at all possible.
As stated before, the quality software developer has no choice but to test their product. If you want to maximize your likelihood of releasing a quality product, then your first step is for everyone in your team to read and discuss this book. Doing so will clear a lot of the yucky stuff out of your path. So while you may still step in it, the pile you squish is either of your own making or one of the few that Weinberg does not cover.

Published in the online "Journal of Object Technology" reprinted with permission
Profile Image for Howard.
77 reviews2 followers
March 21, 2010
Once you've been in the testing industry for a while, you may start to forget the questions you had when you started. You may be astounded when someone asks why you insist on testing. You may have forgotten what it's like to wonder why someone should test something. You may not actually know why you're testing - it's just something you do. It takes the insight of crossing paths with dozens or hundreds of naive souls working in the computer world all asking the same questions over and over again to understand why we test and what it takes to convince others of the value added. Weinberg has crossed paths with many, has earned respect, and his insights are quite eye opening. While not quite a page-turner, I did enjoy reading this. More than how to test, this is a book about the most difficult part of testing - interacting with others. When you are a tester, everybody (developers, managers, clients, other testers) are at times against you. Never the less, we have to work with them. Carry with the knowledge and support that Weinberg offers and you will not be alone.
Profile Image for Željko Filipin.
929 reviews10 followers
November 22, 2021
2021 review:

I've read the book in 2012. A decade ago I had less experience and I couldn't really understand this book. I think I understand it better now.

Some parts of this book are pure gold. Some parts of the book are common sense, but it's still good to have it written down as a reminder. Some parts of the book are more psychology than testing. Surprisingly, those parts are maybe the most important ones.

According to my calculations, he published the book when he was 75 years old. The book is full of real life examples. You can tell the author has many decades of experience. I could recognize myself in one of the characters from the examples, for more examples that feels comfortable. :D

I really like the format of each chapter. The main part, very short summary, then a lot of examples in "common mistakes" section. I really liked the chapters where the material is presented in the format of a story (#9, #10, #12, #13).

2012 review:

A very short review on my blog: https://filipin.eu/perfect-software
Profile Image for Elizabeth.
143 reviews3 followers
January 14, 2015
Gerry Weinberg succinctly described many of the interpersonal struggles at my job and reinforced much of the stuff James Bach's preached in person. His explanations of what testing cannot do and why estimates at the beginning of a project are always too optimistic were spot on. This was a good reminder that testing is a waste of time if you're not going to do anything with the information you uncover.

The sections of supposed journal entries or dialogue did not help shed light on the material. A more conventional format would have served it better.
Profile Image for Henriette.
795 reviews11 followers
November 27, 2015
I thoroughly enjoyed this book. It was written in a way that made it easy and entertaining enough to read in a day. It answers some questions about software testing, but more importantly reminds us of questions we should be asking when testing. If you are familiar with James Bach then you will see many similarities and even references to James Bach in this book. This book is a real reminder of why testers are needed and why testers can never be replaced by computers and therefore a recommended read for anyone working as a tester or with testers.
Profile Image for Gilbio.
45 reviews1 follower
February 20, 2015
An interesting journey around the world of software development, with a particular focus on testing activities. An hard landing for who think that the perfect in this world really exists! As the author underlines "When we want so much for everything to go well, it's all too easy to inject our fantasies into our data"
Profile Image for Janice.
64 reviews2 followers
August 19, 2009
Helped me answer exam questions for my CSQA. It's a great resource and makes sense.
Profile Image for Ilya.
26 reviews
December 19, 2012
Iron ore mine of testing wisdom. Reading experience is stunning as is the case with all Gerald's books (at least those I read).
Profile Image for Sergiusz Golec.
162 reviews8 followers
May 10, 2016
+ Wit & vivid stories.
- Part of this book is a copy paste (or a paraphrase) from other books. Like "More Secrets of Consulting" by Gerald M. Weinberg.
Displaying 1 - 22 of 22 reviews

Can't find what you're looking for?

Get help and learn more about the design.