Essential Spectrum-based Fault Localization


Book Description

Program debugging has always been a difficult and time-consuming task in the context of software development, where spectrum-based fault localization (SBFL) is one of the most widely studied families of techniques. While it’s not particularly difficult to learn about the process and empirical performance of a particular SBFL technique from the available literature, researchers and practitioners aren’t always familiar with the underlying theories. This book provides the first comprehensive guide to fundamental theories in SBFL, while also addressing some emerging challenges in this area. The theoretical framework introduced here reveals the intrinsic relations between various risk evaluation formulas, making it possible to construct a formula performance hierarchy. Further extensions of the framework provide a sufficient and necessary condition for a general maximal formula, as well as performance comparisons for hybrid SBFL methods. With regard to emerging challenges in SBFL, the book mainly covers the frequently encountered oracle problem in SBFL and introduces a metamorphic slice-based solution. In addition, it discusses the challenge of multiple-fault localization and presents cutting-edge approaches to overcoming it. SBFL is a widely studied research area with a massive amount of publications. Thus, it is essential that the software engineering community, especially those involved in program debugging, software maintenance and software quality assurance (including both newcomers and researchers who want to gain deeper insights) understand the most fundamental theories – which could also be very helpful to ensuring the healthy development of the field.







Lightweight Techniques for Automatic Software Fault Localization


Book Description

Current approaches to automatic software fault localization can be classified as either (1) statistics-based approaches, or (2) reasoning approaches. This distinction is based on the required amount of knowledge about the program s internal component structure and behavior. Statistics-based fault localization techniques such as Spectrum-based Fault Localization (SFL) use abstraction of program traces (also known as program spectra) to find a statistical relationship between source code locations and observed failures. Although SFL s modeling costs and computational complexity are minimal, its diagnostic accuracy is inherently limited since no reasoning is used. In contrast to SFL, model-based reasoning approaches use prior knowledge of the program, such as component interconnection and statement semantics, to build a model of the correct behavior of the system. On the one hand, model-based reasoning approaches deliver higher diagnostic accuracy, but on the other hand, they suffer from high computation complexity.




Fault Localization in Embedded Control System Software


Book Description

Embedded control systems are built and used everywhere in modern society in many safety-critical applications. Therefore, bug-free control code is an important consideration. Using medical robot control systems, we develop a statistical approach to automatically locate faulty statements in control code. Our approach uses the controller structure and examples of normal behavior in simulation toconstruct structured probabilistic models that compactly encode the dynamic behavior of the systems. We describe techniques that are used to improve the model, including feature selection and starting with a prior structure defined using the program dependence graph (PDG) of the controller. Given an anomalous behavior sequence, we analyze the values of system state variables to determine which variables are responsible for such behaviors. We use the variables obtained in this way together with the dynamic program dependence graph to determine a small set of potential causes (faulty statements) of the behavior, which are then ranked and presented to the developer. We evaluate our approach on the control systems for two prototype robotic surgery systems developed in our lab and demonstrate its ability to locate faults that cause adverse and anomalous events during the systems' operation.










Fault Localization Using Failure-inducing Statement Patterns


Book Description

Software products are increasingly employed in a wide range of areas where failu res may have serious consequences. Examples include medical applications, contro l systems, online banking systems, etc. As a result, tasks that aim at ensuring software reliability are extremely valuable. Among these, debugging is the proce ss of locating and correcting software errors. It is usually initiated when a pr ogram fails on one or more test cases. This process, and in particular fault loc alization, is considered to be one of the most difficult and time consuming thro ugh the development cycle. Consequently, automated fault localization techniques that reduce the search space for faulty code would significantly reduce develop ment costs. In this work we propose and investigate a new fault localization paradigm based on the notion of statement patterns. Provided with the execution traces of passi ng and failing runs, our technique searches for suspicious patterns using a gene tic algorithm and uses them to rank statements according to their likelihood of being faulty. We evaluated our approach using two benchmarks, the Siemens suite and NanoXML, and compared its accuracy with that of the Tarantula state-of-art t echnique. Our empirical results show that patterns better model the precondition s of failure than individual statements. Another major conclusion is that the ov erlap between the execution traces of the failing runs is likely to affect the p ercentage of suspicious patterns which might degrade the accuracy of the propose d technique in some cases.