An empirical comparison of software fault tolerance and fault elimination

A large-scale experiment comparing software fault tolerance and software fault elimination as approaches to improving software reliability is described. Results are examined that apply to the appropriateness and underlying assumption of the two i.e., reducing standard testing procedures when using voting to achieve fault-tolerance in operational software and using voting in the testing process. Among other results, it was found that n-version programming did not tolerate most of the faults detected by the fault elimination techniques. The results also cast doubt on the effectiveness of using voting as a test oracle.<<ETX>>

[1]  Algirdas Avizienis,et al.  Fault Tolerance by Design Diversity: Concepts and Experiments , 1984, Computer.

[2]  C. V. Ramamoorthy,et al.  Application of a Methodology for the Development and Validation of Reliable Process Control Software , 1981, IEEE Transactions on Software Engineering.

[3]  William C. Hetzel,et al.  An experimental analysis of program verification methods. , 1976 .

[4]  Susan Stark Brilliant Testing software using multiple versions , 1988 .

[5]  J. E. Brunelle,et al.  Fault-tolerant software - Experiment with the sift operating system. [Software Implemented Fault Tolerance computer] , 1985 .

[6]  Nancy G. Leveson,et al.  An experimental evaluation of the assumption of independence in multiversion programming , 1986, IEEE Transactions on Software Engineering.

[7]  Victor R. Basili,et al.  Comparing the Effectiveness of Software Testing Strategies , 1987, IEEE Transactions on Software Engineering.

[8]  P. M. Melliar-Smith,et al.  Formal Specification and Mechanical Verification of SIFT: A Fault-Tolerant Flight Control System , 1982, IEEE Transactions on Computers.

[9]  Nancy G. Leveson,et al.  The Consistent Comparison Problem in N-Version Software , 1989, IEEE Trans. Software Eng..

[10]  Peter G. Bishop,et al.  PODS — A project on diverse software , 1986, IEEE Transactions on Software Engineering.

[11]  C. V. Ramamoorthy,et al.  Testing large software with automated software evaluation systems , 1975 .

[12]  William E. Howden Functional testing and design abstractions , 1980, J. Syst. Softw..

[13]  Harlan D. Mills,et al.  Structured programming - theory and practice , 1979, The systems programming series.

[14]  Peter A. Barrett,et al.  Software Fault Tolerance: An Evaluation , 1985, IEEE Transactions on Software Engineering.

[15]  Leon J. Osterweil,et al.  Data Flow Analysis in Software Reliability , 1976, CSUR.

[16]  Gunnar Hagelin ERICSSON Safety System for Railway Control , 1988 .

[17]  Algirdas Avizienis,et al.  The N-Version Approach to Fault-Tolerant Software , 1985, IEEE Transactions on Software Engineering.

[18]  P. J. Traverse,et al.  Safe and Reliable Computing on Board the Airbus and ATR Aircraft , 1986 .