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.

  • Apple
  • Android
  • Windows Phone
  • Android

To get the free app, enter your email address or mobile phone number.

Why Programs Fail: A Guide to Systematic Debugging 1st Edition

4.7 out of 5 stars 6 customer reviews
ISBN-13: 978-1558608665
ISBN-10: 1558608664
Why is ISBN important?
This bar-code number lets you verify that you're getting exactly the right version or edition of a book. The 13-digit and 10-digit formats both work.
Scan an ISBN with your phone
Use the Amazon App to scan ISBNs and compare prices.
Have one to sell? Sell on Amazon
Buy used
Condition: Used: Very Good
Comment: Minimal contact wear to cover but book is still tight, flat and without marks or highlighting.
Access codes and supplements are not guaranteed with used items.
21 Used from $4.26
More Buying Choices
8 New from $24.00 21 Used from $4.26
Free Two-Day Shipping for College Students with Amazon Student Free%20Two-Day%20Shipping%20for%20College%20Students%20with%20Amazon%20Student

Top 20 lists in Books
Top 20 lists in Books
View the top 20 best sellers of all time, the most reviewed books of all time and some of our editors' favorite picks. Learn more

Editorial Reviews


"James Madison wrote: 'If men were angels, no government would be necessary.' If he lived today, Madison might have written: 'If software developers were angels, debugging would be unnecessary.' Most of us, however, make mistakes, and many of us even make errors while designing and writing software. Our mistakes need to be found and fixed, an activity called debugging that originated with the first computer programs. Today every computer program written is also debugged, but debugging is not a widely studied or taught skill. Few books, beyond this one, present a systematic approach to finding and fixing programming errors.” —from the foreword by James Larus, Microsoft Research

"Andreas Zeller seeks to equip you with a comprehensive arsenal of techniques and the appropriate mind-sets for employing them." Rick Wayne, Software Development, January 2006

Book Description

The first complete guide to systematic debugging

Product Details

  • Paperback: 480 pages
  • Publisher: Morgan Kaufmann; 1 edition (October 25, 2005)
  • Language: English
  • ISBN-10: 1558608664
  • ISBN-13: 978-1558608665
  • Product Dimensions: 7.3 x 1.1 x 9.3 inches
  • Shipping Weight: 2.2 pounds
  • Average Customer Review: 4.7 out of 5 stars  See all reviews (6 customer reviews)
  • Amazon Best Sellers Rank: #2,445,181 in Books (See Top 100 in Books)

More About the Author

Discover books, learn about writers, read author blogs, and more.

Customer Reviews

5 star
4 star
3 star
2 star
1 star
See all 6 customer reviews
Share your thoughts with other customers

Top Customer Reviews

Format: Paperback
"Why programs fail" attempts to provide a systematic approach to finding, reproducing, and fixing programming errors, with a strong focus on the automation of many debugging techniques. Zeller covers the whole debugging process:

- Problem-tracking systems are discussed, not only as tools for tracking and managing problem reports, but also as valuable idea repositories and requirements management systems.

- You will also find advice on how to set up automated tests that support debugging tasks.

- Apparently straightforward, reproducing problems can be harder that it seems, as "heisenbugs" testify (i.e. when debugging tools interfere with the problem so that it disappears when it is being observed).

- Delta debugging, an interesting application of the classical divide-and-conquer strategy, provides an automated method to simplify test cases (and focus on the truly relevant part of the problem).

- Applying the scientific method is the right way to debug (i.e. reasoning about programs to create hypotheses and performing experiments to validate or discard those hypotheses). Here, the use of a debugging logbook helps to make debugging explicit by writing down all hypotheses and observations.

- Plenty of techniques for creating hypothesis and determining the failure cause of an observed problem are covered, from static analysis tools and introducing assertions, to experimental techniques that try to make debugging more efficient.

"Why programs fail" is outstanding. Many interesting (and practical) ideas are explored. If you would like to improve your detective skills, this book is highly recommended.
Comment 15 of 17 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
Format: Paperback
Andreas Zeller created the GNU Data Display Debugger. That
fact set my expectations for this book. I was not
disappointed. Being a developer for over 15 years, I was
pleasantly surprised at the advances in debugging presented
in this book.

The great benefit of this book is that it uses the
scientific method to create a formal discipline for
debugging. This discipline can be automated in ways that
were unthought-of until recently. One example of this is
the DDCHANGE plug-in for Eclipse that automatically
identifies which of multiple code changes has introduced a
given bug.

I found no major faults in this book. The author's style
of writing is very enjoyable. The only thing I'd change is
to drop the second chapter as it contains material on defect
tracking that is covered elsewhere (unlike the rest of the
material where this book is pretty much the sole source of

This is a fabulous book that any serious developer should
Comment 8 of 8 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
Format: Paperback Verified Purchase
As a practionner I am delighted to see a systematic method applied to software. Too often is writing software compared to art or magic, while more often that not it is a matter of rigour, analysis and rational thinking (intuition does not hurt of course). The author attacks the problem of dealing with software defects with method and his analysis is sound. This book is a very welcome help to developers but can also help the quality assurance departement.
Comment 6 of 10 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse