Handbook of Software Fault Localization


Book Description

Handbook of Software Fault Localization A comprehensive analysis of fault localization techniques and strategies In Handbook of Software Fault Localization: Foundations and Advances, distinguished computer scientists Prof. W. Eric Wong and Prof. T.H. Tse deliver a robust treatment of up-to-date techniques, tools, and essential issues in software fault localization. The authors offer collective discussions of fault localization strategies with an emphasis on the most important features of each approach. The book also explores critical aspects of software fault localization, like multiple bugs, successful and failed test cases, coincidental correctness, faults introduced by missing code, the combination of several fault localization techniques, ties within fault localization rankings, concurrency bugs, spreadsheet fault localization, and theoretical studies on fault localization. Readers will benefit from the authors’ straightforward discussions of how to apply cost-effective techniques to a variety of specific environments common in the real world. They will also enjoy the in-depth explorations of recent research directions on this topic. Handbook of Software Fault Localization also includes: A thorough introduction to the concepts of software testing and debugging, their importance, typical challenges, and the consequences of poor efforts Comprehensive explorations of traditional fault localization techniques, including program logging, assertions, and breakpoints Practical discussions of slicing-based, program spectrum-based, and statistics-based techniques In-depth examinations of machine learning-, data mining-, and model-based techniques for software fault localization Perfect for researchers, professors, and students studying and working in the field, Handbook of Software Fault Localization: Foundations and Advances is also an indispensable resource for software engineers, managers, and software project decision makers responsible for schedule and budget control.




Informatics, Networking and Intelligent Computing


Book Description

This proceedings volume contains selected papers presented at the 2014 International Conference on Informatics, Networking and Intelligent Computing, held in Shenzhen, China. Contributions cover the latest developments and advances in the field of Informatics, Networking and Intelligent Computing.










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.




A Mixed Approach to Spectrum-based Fault Localization Using Information Theoretic Foundations


Book Description

Fault localization, i.e., locating faults in code, such as faulty statements or expressions, which are responsible for observed failures, is traditionally a manual, laborious, and tedious task. Recent years have seen much progress in automated techniques for fault localization. A particularly promising approach is to utilize program execution spectra to analyze passing and failing runs and compute how likely each statement is to be faulty. Techniques based on this approach have so far largely focused on either using statistical analysis or similarity-based measures, which have a natural application in evaluating such runs. However, in spite of some initial success, the current techniques lack the effectiveness of localizing the faults with a high degree of confidence in real applications. Our thesis is that information theoretic feature selection can provide a basis for novel techniques that mix coverage of different program elements for improving the effectiveness of fault localization using program spectra. Our basic insight is that each additional failing or passing run can increase the information diversity with respect to the program elements, which can help localize faults in code. For example, the statements with maximum feature diversity information can point to the most suspicious lines of code. This dissertation presents a new fault localization approach that embodies our insight and introduces Bernoulli divergence for feature selection and uses it as the foundation for two novel techniques: (1) mixing of branch and statement coverage information; and (2) varying of feature granularity from function-level to statement-level. An experimental evaluation using a suite of subject programs commonly used in evaluation of fault localization techniques shows that our approach provides an effective basis for fault localization.




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.




Tools and Algorithms for the Construction and Analysis of Systems


Book Description

This book constitutes the refereed proceedings of the 17th International Conference on Tools and Algorithms for the Construction and Analysis of Systems, TACAS 2011, held in Saarbrücken, Germany, March 26—April 3, 2011, as part of ETAPS 2011, the European Joint Conferences on Theory and Practice of Software. The 32 revised full papers presented were carefully reviewed and selected from 112 submissions. The papers are organized in topical sections on memory models and consistency, invariants and termination, timed and probabilistic systems, interpolations and SAT-solvers, learning, model checking, games and automata, verification, and probabilistic systems.




Evaluation of Novel Approaches to Software Engineering


Book Description

Software engineering is understood as a broad term linking science, traditional en- neering, art and management and is additionally conditioned by social and external factors (conditioned to the point that brilliant engineering solutions based on strong science, showing artistic creativity and skillfully managed can still fail for reasons beyond the control of the development team). Modern software engineering needs a paradigm shift commensurate with a change of the computing paradigm from: 1. Algorithms to interactions (and from procedural to object-oriented programming) 2. Systems development to systems integration 3.Products to services Traditional software engineering struggles to address this paradigm shift to inter- tions, integration, and services. It offers only incomplete and disconnected methods for building information systems with fragmentary ability to dynamically accom- date change and to grow gracefully. The principal objective of contemporary software engineering should therefore be to try to redefine the entire discipline and offer a complete set of methods, tools and techniques to address challenges ahead that will shape the information systems of the future.