LEADER 05185nam 2200625Ia 450 001 9911006623403321 005 20200520144314.0 010 $a1-282-16881-9 010 $a9786612168819 010 $a0-08-092300-3 035 $a(CKB)1000000000754972 035 $a(EBL)453190 035 $a(OCoLC)468730076 035 $a(SSID)ssj0000344481 035 $a(PQKBManifestationID)11297015 035 $a(PQKBTitleCode)TC0000344481 035 $a(PQKBWorkID)10312810 035 $a(PQKB)11266966 035 $a(MiAaPQ)EBC453190 035 $a(CaSebORM)9780123745156 035 $a(EXLCZ)991000000000754972 100 $a20090331d2009 uy 0 101 0 $aeng 135 $aur|n|---||||| 181 $ctxt 182 $cc 183 $acr 200 10$aWhy programs fail $ea guide to systematic debugging /$fAndreas Zeller 205 $a2nd ed. 210 $aBurlington, MA $cMorgan Kaufmann ;$aOxford $cElsevier Science [distributor]$d2009 215 $a1 online resource (425 p.) 300 $aPrevious ed.: Amsterdam; London: Morgan Kaufmann, 2005. 311 $a0-12-374515-2 320 $aIncludes bibliographical references and index. 327 $aFront Cover; Title Page; Copyright Page; Table of Contents; Foreword; Preface; Chapter 1. How Failures Come to Be; 1.1 My Program Does Not Work!; 1.2 From Defects to Failures; 1.3 Lost in Time and Space; 1.4 From Failures to Fixes; 1.4.1 Track the Problem; 1.4.2 Reproduce the Failure; 1.4.3 Automate and Simplify the Test Case; 1.4.4 Find Possible Infection Origins; 1.4.5 Focus on the Most Likely Origins; 1.4.6 Isolate the Origin of the Infection; 1.4.7 Correct the Defect; 1.5 Automated Debugging Techniques; 1.6 Bugs, Faults, or Defects?; 1.7 Concepts; How to debug a program; 1.8 Tools 327 $a1.9 Further ReadingExercises; Chapter 2. Tracking Problems; 2.1 Oh! All These Problems; 2.2 Reporting Problems; 2.2.1 Problem Facts; 2.2.2 Product Facts; 2.2.3 Querying Facts Automatically; 2.3 Managing Problems; 2.4 Classifying Problems; 2.4.1 Severity; 2.4.2 Priority; 2.4.3 Identifier; 2.4.4 Comments; 2.4.5 Notification; 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; How to obtain the relevant problem information 327 $aHow to write an effective problem reportHow to organize the debugging process; How to track requirements; How to keep problem tracking simple; How to restore released versions; How to separate fixes and features; How to relate problems and fixes; How to relate problems and tests, make a problem report obsolete; 2.12 Tools; 2.13 Further Reading; Exercises; Chapter 3. Making Programs Fail; 3.1 Testing for Debugging; 3.2 Controlling the Program; 3.3 Testing at the Presentation Layer; 3.3.1 Low-Level Interaction; 3.3.2 System-Level Interaction; 3.3.3 Higher-Level Interaction 327 $a3.3.4 Assessing Test Results3.4 Testing at the Functionality Layer; 3.5 Testing at the Unit Layer; 3.6 Isolating Units; 3.7 Designing for Debugging; 3.8 Preventing Unknown Problems; 3.9 Concepts; How to test for debugging; How to automate program execution; How to test at the presentation layer; How to test at the functionality layer; How to test at the unit layer; How to isolate a unit; How to design for debugging; How to prevent unknown problems; 3.10 Tools; 3.11 Further Reading; Exercises; Chapter 4. Reproducing Problems; 4.1 The First Task in Debugging 327 $a4.2 Reproducing the Problem Environment4.3 Reproducing Program Execution; 4.3.1 Reproducing Data; 4.3.2 Reproducing User Interaction; 4.3.3 Reproducing Communications; 4.3.4 Reproducing Time; 4.3.5 Reproducing Randomness; 4.3.6 Reproducing Operating Environments; 4.3.7 Reproducing Schedules; 4.3.8 Physical Influences; 4.3.9 Effects of Debugging Tools; 4.4 Reproducing System Interaction; 4.5 Focusing on Units; 4.5.1 Setting Up a Control Layer; 4.5.2 A Control Example; 4.5.3 Mock Objects; 4.5.4 Controlling More Unit Interaction; 4.6 Reproducing Crashes; 4.7 Concepts 327 $aHow to reproduce the problem 330 $aThis 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 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# 606 $aDebugging in computer science 606 $aData editing 615 0$aDebugging in computer science. 615 0$aData editing. 676 $a005.14 676 $a005.14 700 $aZeller$b Andreas$0771272 801 0$bMiAaPQ 801 1$bMiAaPQ 801 2$bMiAaPQ 906 $aBOOK 912 $a9911006623403321 996 $aWhy programs fail$91573809 997 $aUNINA