11074nam 2200553 450 991083044910332120230611131845.01-119-88092-01-119-29181-X(MiAaPQ)EBC7237288(Au-PeEL)EBL7237288(OCoLC)1376932112(EXLCZ)992645020750004120230611d2023 uy 0engurcnu||||||||txtrdacontentcrdamediacrrdacarrierHandbook of software fault localization foundations and advances /edited by W. Eric Wong, T. H. TseHoboken, New Jersey :John Wiley & Sons, Inc.,[2023]©20231 online resource (611 pages)Print version: Wong, W. Eric Handbook of Software Fault Localization Newark : John Wiley & Sons, Incorporated,c2023 9781119291800 Includes bibliographical references and index.Cover -- Title Page -- Copyright Page -- Contents -- Editor Biographies -- List of Contributors -- Chapter 1 Software Fault Localization: an Overview of Research, Techniques, and Tools -- 1.1 Introduction -- 1.2 Traditional Fault Localization Techniques -- 1.2.1 Program Logging -- 1.2.2 Assertions -- 1.2.3 Breakpoints -- 1.2.4 Profiling -- 1.3 Advanced Fault Localization Techniques -- 1.3.1 Slicing-Based Techniques -- 1.3.2 Program Spectrum-Based Techniques -- 1.3.2.1 Notation -- 1.4 Subject Programs -- 1.5 Evaluation Metrics -- 1.6 Software Fault Localization Tools -- 1.7 Critical Aspects -- 1.7.1 Fault Localization with Multiple Bugs -- 1.7.2 Inputs, Outputs, and Impact of Test Cases -- 1.7.3 Coincidental Correctness -- 1.7.4 Faults Introduced by Missing Code -- 1.7.5 Combination of Multiple Fault Localization Techniques -- 1.7.6 Ties Within Fault Localization Rankings -- 1.7.7 Fault Localization for Concurrency Bugs -- 1.7.8 Spreadsheet Fault Localization -- 1.7.9 Theoretical Studies -- 1.8 Conclusion -- 1.8 Notes -- References -- Chapter 2 Traditional Techniques for Software Fault Localization -- 2.1 Program Logging -- 2.2 Assertions -- 2.3 Breakpoints -- 2.4 Profiling -- 2.5 Discussion -- 2.6 Conclusion -- References -- Chapter 3 Slicing-Based Techniques for Software Fault Localization -- 3.1 Introduction -- 3.2 Static Slicing-Based Fault Localization -- 3.2.1 Introduction -- 3.2.2 Program Slicing Combined with Equivalence Analysis -- 3.2.3 Further Application -- 3.3 Dynamic Slicing-Based Fault Localization -- 3.3.1 Dynamic Slicing and Backtracking Techniques -- 3.3.2 Dynamic Slicing and Model-Based Techniques -- 3.3.3 Critical Slicing -- 3.3.3.1 Relationships Between Critical Slices (CS) and Exact Dynamic Program Slices (DPS) -- 3.3.3.2 Relationship Between Critical Slices and Executed Static Program Slices -- 3.3.3.3 Construction Cost.3.3.4 Multiple-Points Dynamic Slicing -- 3.3.4.1 BwS of an Erroneous Computed Value -- 3.3.4.2 FwS of Failure-Inducing Input Difference -- 3.3.4.3 BiS of a Critical Predicate -- 3.3.4.4 MPSs: Dynamic Chops -- 3.3.5 Execution Indexing -- 3.3.5.1 Concepts -- 3.3.5.2 Structural Indexing -- 3.3.6 Dual Slicing to Locate Concurrency Bugs -- 3.3.6.1 Trace Comparison -- 3.3.6.2 Dual Slicing -- 3.3.7 Comparative Causality: a Causal Inference Model Based on Dual Slicing -- 3.3.7.1 Property One: Relevance -- 3.3.7.2 Property Two: Sufficiency -- 3.3.8 Implicit Dependences to Locate Execution Omission Errors -- 3.3.9 Other Dynamic Slicing-Based Techniques -- 3.4 Execution Slicing-Based Fault Localization -- 3.4.1 Fault Localization Using Execution Dice -- 3.4.2 A Family of Fault Localization Heuristics Based on Execution Slicing -- 3.4.2.1 Heuristic I -- 3.4.2.2 Heuristic II -- 3.4.2.3 Heuristic III -- 3.4.3 Effective Fault Localization Based on Execution Slices and Inter-block Data Dependence -- 3.4.3.1 Augmenting a Bad D(1) -- 3.4.3.2 Refining a Good D(1) -- 3.4.3.3 An Incremental Debugging Strategy -- 3.4.4 Other Execution Slicing-Based Techniques in Software Fault Localization -- 3.5 Discussions -- 3.6 Conclusion -- 3.6 Notes -- References -- Chapter 4 Spectrum-Based Techniques for Software Fault Localization -- 4.1 Introduction -- 4.2 Background and Notation -- 4.2.1 Similarity Coefficient-Based Fault Localization -- 4.2.2 An Example of Using Similarity Coefficient to Compute Suspiciousness -- 4.3 Insights of Some Spectra-Based Metrics -- 4.4 Equivalence Metrics -- 4.4.1 Applicability of the Equivalence Relation to Other Fault Localization Techniques -- 4.4.2 Applicability Beyond Fault Localization -- 4.5 Selecting a Good Suspiciousness Function (Metric) -- 4.5.1 Cost of Using a Metric -- 4.5.2 Optimality for Programs with a Single Bug.4.5.3 Optimality for Programs with Deterministic Bugs -- 4.6 Using Spectrum-Based Metrics for Fault Localization -- 4.6.1 Spectrum-Based Metrics for Fault Localization -- 4.6.2 Refinement of Spectra-Based Metrics -- 4.7 Empirical Evaluation Studies of SBFL Metrics -- 4.7.1 The Construction of D* -- 4.7.2 An Illustrative Example -- 4.7.3 A Case Study Using D* -- 4.7.3.1 Subject Programs -- 4.7.3.2 Fault Localization Techniques Used in Comparisons -- 4.7.3.3 Evaluation Metrics and Criteria -- 4.7.3.3.1 The EXAM Score -- 4.7.3.3.2 Cumulative Number of Statements Examined -- 4.7.3.3.3 Wilcoxon Signed-Rank Test -- 4.7.3.4 Statement with Same Suspiciousness Values -- 4.7.3.5 Results -- 4.7.3.6 Effectiveness of D* with Different Values of * -- 4.7.3.7 D* Versus Other Fault Localization Techniques -- 4.7.3.8 Programs with Multiple Bugs -- 4.7.3.8.1 The Expense Score-Based Approach -- 4.7.3.8.2 The One-Bug-at-a-Time Approach -- 4.7.3.9 Discussion -- 4.7.3.9.1 Intuition -- 4.7.3.9.2 Best and Worst Effectiveness Versus Other Alternatives -- 4.7.3.9.3 Threats to Validity -- 4.8 Conclusion -- 4.8 Notes -- References -- Chapter 5 Statistics-Based Techniques for Software Fault Localization -- 5.1 Introduction -- 5.1.1 Tarantula -- 5.1.2 How It Works -- 5.2 Working with Statements -- 5.2.1 Techniques Under the Same Problem Settings -- 5.2.2 Statistical Variances -- 5.3 Working with Non-statements -- 5.3.1 Predicate: a Popular Trend -- 5.3.2 BPEL: a Sample Application -- 5.4 Purifying the Input -- 5.4.1 Coincidental Correctness Issue -- 5.4.2 Class Balance Consideration -- 5.5 Reinterpreting the Output -- 5.5.1 Revealing Fault Number -- 5.5.2 Noise Reduction -- 5.5.2 Notes -- References -- Chapter 6 Machine Learning-Based Techniques for Software Fault Localization -- 6.1 Introduction -- 6.2 BP Neural Network-Based Fault Localization.6.2.1 Fault Localization with a BP Neural Network -- 6.2.2 Reduce the Number of Candidate Suspicious Statements -- 6.3 RBF Neural Network-Based Fault Localization -- 6.3.1 RBF Neural Networks -- 6.3.2 Methodology -- 6.3.2.1 Fault Localization Using an RBF Neural Network -- 6.3.2.2 Training of the RBF Neural Network -- 6.3.2.3 Definition of a Weighted Bit-Comparison-Based Dissimilarity -- 6.4 C4.5 Decision Tree-Based Fault Localization -- 6.4.1 Category-Partition for Rule Induction -- 6.4.2 Rule Induction Algorithms -- 6.4.3 Statement Ranking Strategies -- 6.4.3.1 Revisiting Tarantula -- 6.4.3.2 Ranking Statements Based on C4.5 Rules -- 6.4.3.2.1 Heuristic -- 6.4.3.2.2 Computing a Statement Ranking -- 6.4.3.2.3 Rule Selection -- 6.5 Applying Simulated Annealing with Statement Pruning for an SBFL Formula -- 6.6 Conclusion -- 6.6 Notes -- References -- Chapter 7 Data Mining-Based Techniques for Software Fault Localization -- 7.1 Introduction -- 7.2 Formal Concept Analysis and Association Rules -- 7.2.1 Formal Concept Analysis -- 7.2.2 Association Rules -- 7.3 Data Mining for Fault Localization -- 7.3.1 Failure Rules -- 7.3.2 Failure Lattice -- 7.4 The Failure Lattice for Multiple Faults -- 7.4.1 Dependencies Between Faults -- 7.4.2 Example -- 7.5 Discussion -- 7.5.1 The Structure of the Execution Traces -- 7.5.2 Union Model -- 7.5.3 Inter section Model -- 7.5.4 Nearest Neighbor -- 7.5.5 Delta Debugging -- 7.5.6 From the Trace Context to the Failure Context -- 7.5.7 The Structure of Association Rules -- 7.5.8 Multiple Faults -- 7.6 Fault Localization Using N-gram Analysis -- 7.6.1 Background -- 7.6.1.1 Execution Sequence -- 7.6.1.2 N-gram. Analysis -- 7.6.1.3 Linear Execution Blocks -- 7.6.1.4 Association Rule Mining -- 7.6.2 Methodology -- 7.6.3 Conclusion -- 7.7 Fault Localization for GUI Software Using N-gram Analysis -- 7.7.1 Background.7.7.1.1 Representation of the GUI and Its Operations -- 7.7.1.2 Event Handler -- 7.7.1.3 N-gram -- 7.7.2 Association Rule Mining -- 7.7.3 Methodology -- 7.7.3.1 General Approach -- 7.7.3.2 N-gram Fault Localization Algorithm -- 7.8 Conclusion -- 7.8 Notes -- References -- Chapter 8 Information Retrieval-Based Techniques for Software Fault Localization -- 8.1 Introduction -- 8.2 General IR-Based Fault Localization Process -- 8.3 Fundamental Information Retrieval Techniques for Software Fault Localization -- 8.3.1 Vector Space Model -- 8.3.2 Topic Modeling -- 8.3.3 Word Embedding -- 8.4 Evaluation Metrics -- 8.4.1 Top-k Prediction Accuracy -- 8.4.2 Mean Reciprocal Rank (MRR) -- 8.4.3 Mean Average Precision (MAP) -- 8.5 Techniques for Different Scenarios -- 8.5.1 Text of Current Bug Report Only -- 8.5.1.1 VSM Variants -- 8.5.1.2 Topic Modeling -- 8.5.2 Text and History -- 8.5.2.1 VSM Variants -- 8.5.2.2 Topic Modeling -- 8.5.2.3 Deep Learning -- 8.5.3 Text and Stack/Execution Traces -- 8.6 Empirical Studies -- 8.7 Miscellaneous -- 8.8 Conclusion -- 8.8 Notes -- References -- Chapter 9 Model-Based Techniques for Software Fault Localization -- 9.1 Introduction -- 9.2 Basic Definitions and Algorithms -- 9.2.1 Algorithms for MBD -- 9.3 Modeling for MBD -- 9.3.1 The Value-Based Model -- 9.3.2 The Dependency-Based Model -- 9.3.3 Approximation Models for Debugging -- 9.3.4 Other Modeling Approaches -- 9.4 Application Areas -- 9.5 Hybrid Approaches -- 9.6 Conclusion -- 9.6 Notes -- References -- Chapter 10 Software Fault Localization in Spreadsheets -- 10.1 Motivation -- 10.2 Definition of the Spreadsheet Language -- 10.3 Cones -- 10.4 Spectrum-Based Fault Localization -- 10.5 Model-Based Spreadsheet Debugging -- 10.6 Repair Approaches -- 10.7 Checking Approaches -- 10.8 Testing -- 10.9 Conclusion -- 10.9 Notes -- References.Chapter 11 Theoretical Aspects of Software Fault Localization.Software failuresSoftware failuresData processingDebugging in computer scienceComputer softwareQuality controlSoftware failures.Software failuresData processing.Debugging in computer science.Computer softwareQuality control.005.1Wong W. EricTse T. H.MiAaPQMiAaPQMiAaPQBOOK9910830449103321Handbook of software fault localization3954572UNINA