Book description
Why Programs Fail: A Guide to Systematic Debugging is proof that debugging has graduated from a black art to a systematic discipline. It demystifies one of the toughest aspects of software programming, showing clearly how to discover what caused software failures, and fix them with minimal muss and fuss.
The fully updated second edition includes 100+ pages of new material, including new chapters on Verifying Code, Predicting Erors, and Preventing Errors. Cutting-edge tools such as FindBUGS and AGITAR are explained, techniques from integrated environments like Jazz.net are highlighted, and all-new demos with ESC/Java and Spec#, Eclipse and Mozilla are included.
This complete and pragmatic overview of debugging is authored by Andreas Zeller, the talented researcher who developed the GNU Data Display Debugger(DDD), a tool that over 250,000 professionals use to visualize the data structures of programs while they are running. Unlike other books on debugging, Zeller's text is product agnostic, appropriate for all programming languages and skill levels.
The book explains best practices ranging from systematically tracking error reports, to observing symptoms, reproducing errors, and correcting defects. It covers a wide range of tools and techniques from hands-on observation to fully automated diagnoses, and also explores the author's innovative techniques for isolating minimal input to reproduce an error and for tracking cause and effect through a program. It even includes instructions on how to create automated debugging tools.
The text includes exercises and extensive references for further study, and a companion website with source code for all examples and additional debugging resources is available.
- The new edition of this award-winning productivity-booster is for any developer who has ever been frustrated by elusive bugs
- Brand new chapters demonstrate cutting-edge debugging techniques and tools, enabling readers to put the latest time-saving developments to work for them
- Learn by doing. New exercises and detailed examples focus on emerging tools, languages and environments, including AGITAR, FindBUGS, Python and Eclipse
Table of contents
- Cover image
- Title page
- Table of Contents
- Copyright
- Foreword
- Preface
- ACKNOWLEDGMENTS
- Chapter 1: How Failures Come to Be
-
Chapter 2: Tracking Problems
- 2.1 OH! ALL THESE PROBLEMS
- 2.2 REPORTING PROBLEMS
- 2.3 MANAGING PROBLEMS
- 2.4 CLASSIFYING PROBLEMS
- 2.5 PROCESSING PROBLEMS
- 2.6 MANAGING PROBLEM TRACKING
- 2.7 REQUIREMENTS AS PROBLEMS
- 2.8 MANAGING DUPLICATES
- 2.9 RELATING PROBLEMS AND FIXES
- 2.10 RELATING PROBLEMS AND TESTS
- 2.11 CONCEPTS
- 2.12 TOOLS
- 2.13 FURTHER READING
- Chapter 3: Making Programs Fail
- Chapter 4: Reproducing Problems
- Chapter 5: Simplifying Problems
- Chapter 6: Scientific Debugging
- Chapter 7: Deducing Errors
- Chapter 8: Observing Facts
- Chapter 9: Tracking Origins
- Chapter 10: Asserting Expectations
- Chapter 11: Detecting Anomalies
- Chapter 12: Causes and Effects
-
Chapter 13: Isolating Failure Causes
- 13.1 ISOLATING CAUSES AUTOMATICALLY
- 13.2 ISOLATING VERSUS SIMPLIFYING
- 13.3 AN ISOLATION ALGORITHM
- 13.4 IMPLEMENTING ISOLATION
- 13.5 ISOLATING FAILURE-INDUCING INPUT
- 13.6 ISOLATING FAILURE-INDUCING SCHEDULES
- 13.7 ISOLATING FAILURE-INDUCING CHANGES
- 13.8 PROBLEMS AND LIMITATIONS
- 13.9 CONCEPTS
- 13.10 TOOLS
- 13.11 FURTHER READING
- Chapter 14: Isolating Cause–Effect Chains
- Chapter 15: Fixing the Defect
- Chapter 16: Learning from Mistakes
- APPENDIX: Formal Definitions
- GLOSSARY
- BIBLIOGRAPHY
- INDEX
Product information
- Title: Why Programs Fail, 2nd Edition
- Author(s):
- Release date: July 2009
- Publisher(s): Morgan Kaufmann
- ISBN: 9780080923000
You might also like
book
Righting Software
Right Your Software and Transform Your Career Righting Software presents the proven, structured, and highly engineered …
book
Software Requirements, 3rd Edition
Now in its third edition, this classic guide to software requirements engineering has been fully updated …
book
The Art of Software Testing, 3rd Edition
The classic, landmark work on software testing The hardware and software of computing have changed markedly …
book
The Programmer's Brain
Your brain responds in a predictable way when it encounters new or difficult tasks. This unique …