{"text_format":"2","workbook":"xls","n_sheets":1,"sheets":["report2"],"not_rendered":{"charts":0,"images":0,"macros":0,"external_links":1,"defined_names":1,"comments":0,"pivot_tables":0},"unopened":[],"bounds":{"document_bytes":16777216,"sheet_cells":100000,"run_cost":"one","rows_first":2000,"rows_last":500,"rows_between":2000,"halvings":0,"cell_chars":16384,"cell_head_chars":4096},"cells_cut":0,"cells_raw":0,"read":"whole","date_system":"1900","formulas":"cached_only"}

{"sheet":"report2","index":0,"n_rows":26,"n_cols":5,"rows_kept":26,"cut":false,"hidden":false,"merged":[[0,2,0,3],[0,4,0,5],[1,2,1,3],[1,4,1,5],[2,2,2,3],[2,4,2,5],[3,2,3,3],[5,2,5,3],[8,2,8,3],[9,2,9,3],[10,2,10,3],[11,2,11,3],[13,2,13,3],[14,2,14,3],[18,2,18,3]],"flags":["formulas_cached_only"]}
[null,"1.","Record Nr.",null,"UNINA9911006623403321"]
[null,null,"Autore",null,"Zeller Andreas"]
[null,null,"Titolo",null,"Why programs fail : a guide to systematic debugging / / Andreas Zeller"]
[null,null,"Pubbl/distr/stampa",null,"Burlington, MA, : Morgan Kaufmann"]
[{"$nulls":4},"Oxford, : Elsevier Science [distributor], 2009"]
[null,null,"ISBN",null,"1-282-16881-9"]
[{"$nulls":4},"9786612168819"]
[{"$nulls":4},"0-08-092300-3"]
[null,null,"Edizione",null,"[2nd ed.]"]
[null,null,"Descrizione fisica",null,"1 online resource (425 p.)"]
[null,null,"Disciplina",null,"005.14"]
[null,null,"Soggetti",null,"Debugging in computer science"]
[{"$nulls":4},"Data editing"]
[null,null,"Lingua di pubblicazione",null,"Inglese"]
[null,null,"Formato",null,"Materiale a stampa"]
[null,null,null,"Livello bibliografico","Monografia"]
[null,null,null,"Note generali","Previous ed.: Amsterdam; London: Morgan Kaufmann, 2005."]
[null,null,null,"Nota di bibliografia","Includes bibliographical references and index."]
[null,null,"Nota di contenuto",null,"Front 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"]
[{"$nulls":4},"1.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"]
[{"$nulls":4},"How 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 "]
[{"$nulls":4},"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"]
[{"$nulls":4},"3.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"]
[{"$nulls":4},"4.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"]
[{"$nulls":4},"How to reproduce the problem"]
[null,null,null,"Sommario/riassunto","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 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#"]