Conference Paper

An approach for analysing the propagation of data errors in software

Dept. of Comput. Eng., Chalmers Univ. of Technol., Goteborg, Sweden
DOI: 10.1109/DSN.2001.941402 Conference: Dependable Systems and Networks, 2001. DSN 2001. International Conference on
Source: CiteSeer


We present a novel approach for analysing the propagation of data errors in software. The concept of error permeability is introduced as a basic measure upon which we define a set of related measures. These measures guide us in the process of analysing the vulnerability of software to find the modules that are most likely exposed to propagating errors. Based on the analysis performed with error permeability and its related measures, we describe how to select suitable locations for error detection mechanisms (EDMs) and error recovery mechanisms (ERMs). A method for experimental estimation of error permeability, based on fault injection, is described and the software of a real embedded control system analysed to show the type of results obtainable by the analysis framework. The results show that the developed framework is very useful for analysing error propagation and software vulnerability and for deciding where to place EDMs and ERMs.

Download full-text


Available from: Arshad Jhumka
  • Source
    • "This survey concentrates on three main phases: dependability analysis, system design and verification. Despite being aware of the relevance of software code for system dependability in each of these phases, we will consider software code as a black box component to limit the extension of this paper (interested readers refer to [3] [4]). Dependability analysis techniques can be organised by looking at how different system failures are characterized with its corresponding underlying formalisms. "
    [Show abstract] [Hide abstract]
    ABSTRACT: Designing a dependable system successfully is a challenging issue that is an ongoing research subject in the literature. Different approaches have been adopted in order to identify, analyse and verify the dependability of a system design. This process is far from obvious and often hampered due to the limitations of the classical dependability analysis techniques and verification approaches. This paper provides an overview of analysis approaches grouped by limitations. The principal points for the characterization of the considered approaches are the capability to handle notions of time, component-wise failure propagations and the use of architectural languages with the aim to extract analysis models from design models. Finally, verification approaches are partially reviewed.
    Full-text · Conference Paper · Aug 2012
  • Source
    • "The set of sampling locations corresponds to the set of program locations in that module where detectors may need to be located. Such locations can be obtained using techniques such as in [14]. A set of fault injection locations is chosen to determine whether learning of predicates is improved. "
    [Show abstract] [Hide abstract]
    ABSTRACT: A dependable software system must contain error detection mechanisms and error recovery mechanisms. Software components for the detection of errors are typically designed based on a system specification or the experience of software engineers, with their efficiency typically being measured using fault injection and metrics such as coverage and latency. In this paper, we introduce a methodology for the design of highly efficient error detection mechanisms. The proposed methodology combines fault injection analysis and data mining techniques in order to generate predicates for efficient error detection mechanisms. The results presented demonstrate the viability of the methodology as an approach for the development of efficient error detection mechanisms, as the predicates generated yield a true positive rate of almost 100% and a false positive rate very close to 0% for the detection of failure-inducing states. The main advantage of the proposed methodology over current state-of-the-art approaches is that efficient detectors are obtained by design, rather than by using specification-based detector design or the experience of software engineers.
    Full-text · Conference Paper · Jun 2011
  • Source
    • "We do not know of any error injection tool that provides the possibility to compute a dynamic forward slice based on the injected error, i.e., enables the user to observe how the error propagates. Several papers, for example [24] and [25], address static analysis of systems to assess the susceptibility of their components to propagate errors. But these approaches are not suitable for debugging error detection mechanisms. "
    [Show abstract] [Hide abstract]
    ABSTRACT: Error injection is a well accepted method to evaluate hardware error detection mechanisms. An error detection mechanism is effective if it considerably reduces the amount of silently corrupted output of protected applications compared to unprotected applications. For a good representativeness of the error injection, the error model used has to mirror real world errors as accurately as possible. We introduce Error Injection Slicing (EIS) which emulates the symptoms of hardware errors. Furthermore, EIS provides means to debug single injection runs using slicing. With EIS we make the following novel contributions: (1) easy usage through hardware independence, (2) a symptom-based, flexible and comprehensive error model (e.g., not only bit-flips), and (3) debugging support to improve the detection coverage of the evaluated error detection mechanism. We evaluated the usefulness of the injector by analyzing the AN-encoding compiler that applies an AN-code to applications to facilitate hardware error detection.
    Full-text · Conference Paper · May 2010
Show more