Learn more

Buy the book

For readers

Publishers' sites

Paperback · 423 pages
ISBN 978-0-12-374515-6 [US]
ISBN 978-3-89864-620-8 [DE]


"Why Programs Fail" is a book I wish I had at the beginning of my career. It answers two important questions: How do you find and fix defects? And how do you prevent defects in the first place? This is a practical book where you find excellent discussions, everything from tracking defects to debugging. If you want to write better software, read this book.

—JOHN LAM, Note for Jolt Productivity Award

"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. Read more...


This well-written, copiously-illustrated book is, in many ways, a status report from the front lines. After setting the scene in Chapter 1, Zeller dives straight into the first debugging tool every developer should: a bug tracker. He explains what good bug reports ought to contain, and how to manage them as their numbers grow. Read more...

—GREG WILSON, Review in Dr. Dobbs Journal

From the author of DDD, the famous data display debugger, now comes the definitive book on debugging. It takes the reader on a systematic tour through the entire debugging process, starting with problem tracking, testing for debugging, and reproducing problems, all the way to state-of-the-art tools such as generating mock objects for replaying hard-to-reproduce events, automatically zeroing-in on fault-inducing input, and isolating probable causes for faults.

If you are a seasoned programmer and think you know everything there is to know about debugging, think again. Zeller's book is chock-full with advice, insight, and tools to track down defects in programs, for all levels of experience and any programming language.

The book is lucidly written, explaining the principles of every technique without boring the reader with minutiae. And best of all, at the end of each chapter it tells you where to download all those fancy tools. A great book for the software professional as well as the student interested in the frontiers of automated debugging.

—WALTER F. TICHY, Professor, University Karlsruhe, Germany

Although many programmers consider debugging as the most painful part of software development, few books are available for computer science students and practitioners to learn about scientific methods in debugging.

In this book, Andreas Zeller does an excellent job introducing useful debugging techniques and tools invented in both academia and industry. The book is easy to read and actually very fun as well—don't overlook all the bug stories included.

I strongly recommend this book to graduate and undergraduate students interested in software engineering research. It will not only help you discover a new perspective on debugging, but it will also teach you some fundamental static and dynamic program analysis techniques in plain language.

—MIRYUNG KIM, Graduate Student, University of Washington

Andreas Zeller's "Why Programs Fail" lays an excellent foundation for practitioners, educators, and researchers alike. Using a disciplined approach based on the scientific method, Zeller provides deep insights, detailed approaches, and illustrative examples.

—DAVID NOTKIN, Professor, University of Washington

Want more reviews? See the customer reviews at Amazon.com.

Get the book at Amazon.com · Amazon.de
Comments? Write to Andreas Zeller <zeller@whyprogramsfail.com>.