Why programs fail [electronic resource] : a guide to systematic debugging / Andreas Zeller.Material type: TextPublisher: San Francisco, Calif. : Oxford : Morgan Kaufmann ; Elsevier Science [distributor], 2009Edition: 2nd edDescription: 1 online resource (xxiii, 400 p.) : illISBN: 9780080923000 (electronic bk.); 0080923003 (electronic bk.)Subject(s): Debugging in computer science | COMPUTERS -- Software Development & Engineering -- Quality Assurance & TestingGenre/Form: Electronic books.Additional physical formats: Print version:: Why programs fail.DDC classification: 005.1/4 LOC classification: QA76.9.D43 | Z45 2009ebOnline resources: ScienceDirect
This book 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 Errors, 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. 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.
How failures come to be -- Tracking problems -- Making programs fail -- Reproducing problems -- Simplifying problems -- Scientific debugging -- Deducing errors -- Observing facts -- Tracking origins -- Asserting expectations -- Detecting anomalies -- Causes and effects -- Isolating failure causes -- Isolating cause-effect chains -- Fixing the defect -- Appendix: formal definitions.
Previous ed.: Amsterdam ; London: Morgan Kaufmann, 2005.
Includes bibliographical references and index.
Description based on print version record.