- Paperback: 200 pages
- Publisher: Dorset House (August 29, 2008)
- Language: English
- ISBN-10: 0932633692
- ISBN-13: 978-0932633699
- Product Dimensions: 6 x 0.5 x 9 inches
- Shipping Weight: 7.2 ounces (View shipping rates and policies)
- Average Customer Review: 18 customer reviews
- Amazon Best Sellers Rank: #451,198 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Perfect Software: And Other Illusions about Testing
Use the Amazon App to scan ISBNs and compare prices.
Fulfillment by Amazon (FBA) is a service we offer sellers that lets them store their products in Amazon's fulfillment centers, and we directly pack, ship, and provide customer service for these products. Something we hope you'll especially enjoy: FBA items qualify for FREE Shipping and Amazon Prime.
If you're a seller, Fulfillment by Amazon can help you increase your sales. We invite you to learn more about Fulfillment by Amazon .
The Amazon Book Review
Author interviews, book reviews, editors picks, and more. Read it now
Frequently bought together
What other items do customers buy after viewing this item?
Finally! A book about software testing written by someone who actually understands software testing. I consider Jerry to be the greatest living tester. Jerry tests everything. Jerry tests me. . . . Read this and get your head straight about testing. --James Bach, consulting software tester, author of Lessons Learned in Software Testing
This concise and cogent book -- a gift to testers -- explodes myths about what testing can and can't do. We'll each want at least two copies -- one for our own bookshelves, and another to hand to our clients so that they can better understand precisely how we can help them. --Michael Bolton, tester, trainer, and consultant, DevelopSense
About the Author
Internationally respected for his innovative thinking on both human and technical issues, Gerald M. Weinberg focuses on ways to help people improve their productivity. A highly influential author, lecturer, and consultant, he draws on experiences gained in all three roles, as well as from a long technical career as a software developer and researcher. Jerry has written on topics ranging from computer systems and programming to education and problem solving -- and most recently, on writing, itself, and fiction. He is the author of more than forty books.
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
It's a small book (under 200 pages), and a quick read.
Here's an interesting example that will give you a flavor of the book.
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.
I love the book... and don't wish Jerry to change it.
I would like readers to consider these thoughts ....
Nevertheless there is a gap between this book and the realities of verifying the correctness of software. This area is one many software developers and many testers and quality leads are unaware of.
1) Proof: For example, It is a profound truth that like some logic, software logic can be proven correct. Some software can be proven correct mathematically (and indeed must be). The approach to prove correctness (or the lack of incorrect properties) is called formal methods. Some software developers write proofs of linear time logic which is converted to c or java. Software that meets all necessary properties and has no undesirable states could be considered "perfect" when proven so. (Example a dishwasher control program could be proven correct for all time, and meet all requirements for that system.) The barrier to reach perfection (satifaction of all requirements and the application cannot attain states).
2) Types of verification : What should the tester know about profiling and instrumenting software for reliable software.
3) Where the numbers are and where does software break: What in software systems provide metrics of performance and correctness in testing! Example testers should know that databases keep statistics on query performance. Testers should know that developers and tests can validate the lack of memory leaks and deadlocks. Testers should know how to keep performance history.
4) Tools for software quality: What are the types and how are they used. (Example what are static analysis tools (e.g. PMD for java). What are dynamic analysis tools.
5) Defending the test environment and test harnesses: Testers should know how to present the benefits of maintaining the testing environment and test tools.
6) When can something be tested. What is maturity in software. When does the many eyes model fail.
A good introduction is The Spin Model Checker by Holzmann.
The SPIN Model Checker: Primer and Reference Manual
I do recommend that most testers give the book a read, and then give it to your manager. Many developers, business analysts, test managers, and executives could learn much from this. I'm now planning on buying this book for a few friends on previous teams that still struggle with some of the points within.
However I don't think that it will change anyones mind if their mind is not already questioning.