On Basis Variables for Efficient Error Detection

The development of dependable software invariably entails the design and location of error detection mechanisms. This software artefact type captures predicates over program variables in order to facilitate error detection. To ease the design of detectors, it is important to have (i) knowledge of the set of variables to be included in a predicate and (ii) an understanding of the structure of the predicate. In this paper, we address these problems by relating a previously defined software metric to the variables that feature in efficient error detection predicates. Specifically, based on fault injection analysis of three software systems, we show that error detection predicates based on the 25% most important variables in a software module provide a similar level efficiency to those predicates that are based on all variables and variables with high importance value appear at lower depths in the generated decision tree, thus implying that these variables provide the most information with regard to system failure and, hence, should be protected to provide proper software function. The implication of these results is that, in order to develop efficient error detection predicates, it is sufficient to only have knowledge of a basis set of important variables, simplifying the design of efficient detectors.

[1]  Karthik Pattabiraman,et al.  Error detector placement for soft computation , 2013, 2013 43rd Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN).

[2]  Ravishankar K. Iyer,et al.  Automated Derivation of Application-Specific Error Detectors Using Dynamic Analysis , 2011, IEEE Transactions on Dependable and Secure Computing.

[3]  Aiko M. Hormann,et al.  Programs for Machine Learning. Part I , 1962, Inf. Control..

[4]  Jean Arlat,et al.  Estimators for Fault Tolerance Coverage Evaluation , 1995, IEEE Trans. Computers.

[5]  Ali Ebnenasir,et al.  Enhancing the fault-tolerance of nonmasking programs , 2003, 23rd International Conference on Distributed Computing Systems, 2003. Proceedings..

[6]  Arshad Jhumka,et al.  Evaluating the Use of Reference Run Models in Fault Injection Analysis , 2009, 2009 15th IEEE Pacific Rim International Symposium on Dependable Computing.

[7]  Anish Arora,et al.  Detectors and correctors: a theory of fault-tolerance components , 1998, Proceedings. 18th International Conference on Distributed Computing Systems (Cat. No.98CB36183).

[8]  Stephen McCamant,et al.  The Daikon system for dynamic detection of likely invariants , 2007, Sci. Comput. Program..

[9]  Nancy G. Leveson,et al.  The Use of Self Checks and Voting in Software Error Detection: An Empirical Study , 1990, IEEE Trans. Software Eng..

[10]  Arshad Jhumka,et al.  Issues on the Design of Efficient Fail-Safe Fault Tolerance , 2009, 2009 20th International Symposium on Software Reliability Engineering.

[11]  Debra J. Richardson,et al.  Specification-based test oracles for reactive systems , 1992, International Conference on Software Engineering.

[12]  Neeraj Suri,et al.  Error propagation profiling of operating systems , 2005, 2005 International Conference on Dependable Systems and Networks (DSN'05).

[13]  Neeraj Suri,et al.  An approach to synthesise safe systems , 2006, Int. J. Secur. Networks.

[14]  David Powell Failure mode assumptions and assumption coverage , 1992 .

[15]  Arshad Jhumka,et al.  A methodology for the generation of efficient error detection mechanisms , 2011, 2011 IEEE/IFIP 41st International Conference on Dependable Systems & Networks (DSN).

[16]  Johan Karlsson,et al.  Reducing critical failures for control algorithms using executable assertions and best effort recovery , 2001, 2001 International Conference on Dependable Systems and Networks.

[17]  Anish Arora,et al.  Distributed Reset , 1994, IEEE Trans. Computers.

[18]  Arshad Jhumka,et al.  Towards the Design of Efficient Error Detection Mechanisms for Transient Data Errors , 2011, Comput. J..

[19]  Tom Fawcett,et al.  An introduction to ROC analysis , 2006, Pattern Recognit. Lett..

[20]  Martin Hiller Error recovery using forced validity assisted by executable assertions for error detection: an experimental evaluation , 1999, Proceedings 25th EUROMICRO Conference. Informatics: Theory and Practice for the New Millennium.

[21]  Ravishankar K. Iyer,et al.  Dynamic Derivation of Application-Specific Error Detectors and their Implementation in Hardware , 2006, 2006 Sixth European Dependable Computing Conference.

[22]  Martin Hiller,et al.  Executable assertions for detecting data errors in embedded control systems , 2000, Proceeding International Conference on Dependable Systems and Networks. DSN 2000.

[23]  Neeraj Suri,et al.  Assessing inter-modular error propagation in distributed software , 2001, Proceedings 20th IEEE Symposium on Reliable Distributed Systems.

[24]  Ravishankar K. Iyer,et al.  Automated Derivation of Application-Aware Error Detectors Using Static Analysis: The Trusted Illiac Approach , 2011, IEEE Transactions on Dependable and Secure Computing.

[25]  Jean-Pierre Queille,et al.  Executable assertions and timed traces for on-line software error detection , 1996, Proceedings of Annual Symposium on Fault Tolerant Computing.

[26]  Arshad Jhumka,et al.  Towards Understanding the Importance of Variables in Dependable Software , 2010, 2010 European Dependable Computing Conference.

[27]  Anish Arora,et al.  Component Based Design of Multitolerant Systems , 1998, IEEE Trans. Software Eng..

[28]  Neeraj Suri,et al.  A framework for dependability driven software integration , 1998, Proceedings. 18th International Conference on Distributed Computing Systems (Cat. No.98CB36183).

[29]  Andreas Steininger,et al.  On finding an optimal combination of error detection mechanisms based on results of fault injection experiments , 1997, Proceedings of IEEE 27th International Symposium on Fault Tolerant Computing.

[30]  David A. Carrington,et al.  A Framework for Specification-Based Testing , 1996, IEEE Trans. Software Eng..