Perfect Software
Minimum price
Suggested price

Perfect Software

and other illusions about testing

About the Book

A sampling of some of the five-star reviews of Perfect Software:

I loved this book. It is a must read for anyone who is managing or working in software testing.It explains the true issues with software testers, developers and managers, all who have their own perspective on software and deadlines. It also helps accentuate the need for intelligent testing and human decision making.I will recommend it to my fellow testers!! - Dawn Wielgus


When I read this book, I had more than 10 years of experience in software development and testing, and I immensely benefited from studying this book. I highly recommend it to anyone, who is testing, or programming, or simply deals with software products (who doesn’t these days?) - and regardless from how long you’ve been in the industry. Among many insights, Gerald Weinberg very intelligibly exposes thinking and responsibilities of people in different positions - programmer, tester, test manager, product owner, business manager. That gives a unique perspective outside of one’s own job experiences.Yes, this awesome book is not quite about testing techniques and methodologies. And yet, if I had to recommend only one book for reading on software testing, I’d suggest this one: because it makes you understand the purposes, the roles, and the context. Many seasoned QA folks claim that they knew all of this already - and I'd reply: yes, intuitively. The book helps to get conscious about your knowledge.

For each aspect in testing, the author describes a lot of patterns how it might go wrong. As in the proverb: a smart person learns from their mistakes; a wise person learns from smart one's mistakes. The book grants this wisdom. - Albert Gareev


This is a great book in many aspects. It allows to tie together many different aspects of testing. Reading the book gives an integrated picture of testing from many different viewpoints.The core take-aways for me were:- testing is first of all using a brain- testing is needed because people are human- testing is process of digging for information while having a limited time- quite a large amount of information about a product and development process could be gathered really quickly- process of testing is best driven by information obtained in the process of testing- significance of bugs is context dependentand many, many othersThe real gems for me were chapters 15 and 16: “Preventing testing from growing more difficult”, and “Testing without machinery”. Just these two chapters are well worth the book.So, I highly recommend the book. This is one of the best books of Jerry Weinberg - Serhiy Yevtushenko


Really interesting read and I loved every minute of reading it. Not the typical testing book but something every tester should have read. It might jig you back to the fact why we're testing and that we're not just going through the motions. - Oliver Erlewein

  • Share this book

  • Categories

    • Testing
    • Project Management
    • Agile
    • Software
    • Leadership
  • Feedback

    Email the Author(s)

About the Author

Gerald M. Weinberg
Gerald M. Weinberg

I've always been interested in helping smart people be happy and productive. To that end, I've published books on human behavior, including Weinberg on Writing: The Fieldstone Method, The Psychology of Computer Programming, Perfect Software and Other Fallacies, and an Introduction to General Systems Thinking. I've also written books on leadership including Becoming a Technical Leader, The Secrets of Consulting (Foreword by Virginia Satir), More Secrets of Consulting, and the nine-volume Quality Software series.

I try to incorporate my knowledge of science, engineering, and human behavior into all of my writing and consulting work (with writers, hi-tech researchers, software engineers, and people whose life-situation could require the use of a service dog). I write novels about such people, including The Aremac Project, Aremac Power, Jigglers, First Stringers, Second Stringers, The Hands of God, Freshman Murders, Where There's a Will There's a Murder, Earth's Endless Effort, and Mistress of Molecules—all about how my brilliant protagonists produce quality work and learn to be happy. My books that are not yet on Leanpub may be found as eBooks at <>; on Amazon at; and at Barnes and Noble bookstore:

Early in my career, I was the architect for the Project Mercury's space tracking network and designer of the world's first multiprogrammed operating system. I won the Warnier Prize, the Stevens Award, and the first Software Testing Professionals' Luminary Award, all for my writing on software quality. I was also elected a charter member of the Computing Hall of Fame in San Diego and chosen for the University of Nebraska Hall of Fame.

But the "award" I'm most proud of is the book, The Gift of Time (Fiona Charles, ed.) written by my student and readers for my 75th birthday. Their stories make me feel that I've been at least partially successful at helping smart people be happy.

Bundles that include this book

Bought separately
Bundle Price

Table of Contents

  • Acknowledgments
  • Preface
  • Chapter 1. Why Do We Bother Testing?
    • Humans are not perfect thinkers.
    • We need to make decisions about software.
    • Decisions can be risky.
    • Testing can provide information that reduces risk.
    • Summary
    • Common Mistakes
  • Chapter 2. What Testing Cannot Do
    • Information doesn’t necessarily help reduce risk.
    • Testing cannot be done in zero time and cannot be done for free.
    • We may not be using the information we’re paying for.
    • Our decisions are emotional, not rational.
    • Poor testing may be worse than no testing at all.
    • Your product may not be ready for testing.
    • Summary
    • Common Mistakes
  • Chapter 3. Why Not Just Test Everything?
    • There are an infinite number of possible tests.
    • Testing is, at best, sampling.
    • The cost of information can exceed the cost of ignorance.
    • We can obtain more information with less testing—perhaps.
    • Summary
    • Common Mistakes
  • Chapter 4. What’s the Difference Between Testing and Debugging?
    • Testing for discovery
    • Pinpointing
    • Locating
    • Determining significance
    • Repairing
    • Troubleshooting
    • Testing to learn
    • Task-switching
    • What happens to testing as an organization grows?
    • Make the time-limit heuristic a management mantra—but adjust it as needed.
    • Summary
    • Common Mistakes
  • Chapter 5. Meta-Testing
    • We have specs, but we can’t find them.
    • We have so many bugs, our bug database doesn’t work efficiently.
    • We didn’t find many bugs, though we didn’t really look.
    • We modify our records to make bugs look less severe.
    • It’s not in my component, so I don’t record it.
    • I’m testing the wrong application and don’t know it.
    • We don’t test the worst components because it takes too long.
    • We found so many bugs, there couldn’t be any more.
    • Our tests proved the program was correct.
    • We ran so many test cases that we couldn’t look at them all.
    • If our software works okay for three users, obviously it will work okay for a 100.
    • We don’t want our testers to know we’re ignoring their information.
    • I don’t report bugs, so the developer won’t be angry with me.
    • We don’t need to test that, because the developer is really good.
    • Follow up on meta-information.
    • Summary
    • Common Mistakes
  • Chapter 6. Information Immunity
    • We are afraid when our rules are threatened.
    • We repress the unacceptable.
    • We rationalize the unreasonable.
    • We project our own negative qualities onto other people.
    • We displace blame to absolve ourselves.
    • We overcompensate for our self-perceived deficiencies.
    • We become compulsive when we feel we’re losing control.
    • Summary
    • Common Mistakes
  • Chapter 7. How to Deal With Defensive Reactions
    • Identify the fear.
    • Use critical thinking.
    • Practice, practice, practice.
    • Test yourself.
    • Summary
    • Common Mistakes
  • Chapter 8. What Makes a Good Test?
    • You can never know for sure.
    • You can assess goodness only after the fact.
    • You may want to insert bugs intentionally.
    • Estimates of goodness are always statistical.
    • You can estimate not-badness.
    • Summary
    • Common Mistakes
  • Chapter 9. Major Fallacies About Testing
    • The Blaming Fallacy
    • The Exhaustive Testing Fallacy
    • The Testing-Produces-Quality Fallacy
    • The Decomposition Fallacy
    • The Composition Fallacy
    • The All-Testing-Is-Testing Fallacy
    • The Any-Idiot-Can-Test Fallacy
    • Summary
    • Common Mistakes
  • Chapter 10. Testing Is More Than Banging Keys
    • Is banging keys to no purpose a test, or not?
    • The White Glove Test
    • The Dog Food Test
    • Testers need testing, too.
    • You can test without consciously realizing it.
    • A demonstration is not a test.
    • Summary
    • Common Mistakes
  • Chapter 11. Information Intake
    • Use the Satir Interaction Model to unravel communications.
    • Intake
    • Meaning
    • Significance
    • Response
    • People listen selectively.
    • The source of the data influences intake.
    • Timing makes a difference.
    • You may convey more information by reducing the number of tests.
    • Seek intake from outside the box.
    • Don’t confuse interpretation with intake.
    • Ask The Data Question to filter out interpretations.
    • Summary
    • Common Mistakes
  • Chapter 12. Making Meaning
    • Case 1: Four Bugs—Five Meanings
    • Case 2: Four Bugs—Seven Meanings
    • Case 3: Four Bugs—Make Your Own Meanings
    • Know what you’re expecting before you interpret.
    • What if you don’t know what’s expected?
    • Use the information you have.
    • Use indirect information.
    • Use the information you don’t have.
    • The same word may have several different meanings.
    • “Same” may not be identical.
    • Sometimes it’s better to be imprecise.
    • Summary
    • Common Mistakes
  • Chapter 13, Determining Significance
    • Different people attach different importance to the same information.
    • Public significance may differ from private.
    • Significance depends on context.
    • You can’t always judge significance in money terms.
    • Don’t put too fine a point on it.
    • Address significant problems first.
    • Listen to your emotional reactions.
    • Summary
    • Common Mistakes
  • Chapter 14. Making a Response
    • Is it bad luck or bad management?
    • Why do projects rush at the end?
    • How should you respond when close to the end?
    • Why are estimates of time that are needed for testing so far from reality?
    • Sunny-day estimating
    • Unrealistic process models
    • Poor-quality process data
    • No process data
    • Determine whether you’ve passed the point where you can make a difference.
    • Summary
    • Common Mistakes
  • Chapter 15. Preventing Testing from Growing More Difficult
    • Why is the situation growing worse?*
    • Keep systems as small as possible.
    • Keep your model of “system” expansive.
    • Build incrementally in isolated components with clear interfaces.
    • Reduce the number of bugs going in.
    • Summary
    • Common Mistakes
  • Chapter 16. Testing Without Machinery
    • Testing by machine is never enough.
    • Instant reviews
    • Worst-first reviews establish bug severity.
    • The truth is not always convincing.
    • Testers make valuable reviewers.
    • Summary
    • Common Mistakes
  • Chapter 17. Testing Scams
    • We’ll sell you a magic tool.
    • Our demonstration is a scam.
    • With all these testimonials, it must be good.
    • We can scam you with our pricing.
    • Our tool can read minds.
    • We promise that you don’t have to do a thing.
    • We are secretly in cahoots.
    • Here’s how to avoid scams.
    • Summary
    • Common Mistakes
  • Chapter 18. Oblivious Scams
    • What happens when we delay documentation?
    • Ambiguous test reports are like quicksand.
    • Falsified test reports impede improvement.
    • Take your revenge somewhere else.
    • Early returns will mislead you.
    • “Quantity” is not a synonym for quality.
    • The Thud Factor
    • Hack-‘n’-crack/Whack-a-bug
    • Regression Tests ≠ New Tests
    • Counting ≠ Thinking
    • Bugfests
    • Don’t count non-tests as tests.
    • The Nothing’s-Changed Scam
    • The It’s-the-Same-Thing Scam
    • The Partial-Test-As-a-Complete-Test Scam
    • It’s too tidy to be true.
    • Garbage arranged in a spreadsheet is still garbage.
    • Summary
    • Common Mistakes
  • Epilogue
  • Endnotes
  • Additional Reading

The Leanpub 60 Day 100% Happiness Guarantee

Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.

You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!

So, there's no reason not to click the Add to Cart button, is there?

See full terms...

80% Royalties. Earn $16 on a $20 book.

We pay 80% royalties. That's not a typo: you earn $16 on a $20 sale. If we sell 5000 non-refunded copies of your book or course for $20, you'll earn $80,000.

(Yes, some authors have already earned much more than that on Leanpub.)

In fact, authors have earnedover $13 millionwriting, publishing and selling on Leanpub.

Learn more about writing on Leanpub

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub