This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
An experimental evaluation of the assumption of independence in multiversion programming
Jan. 1986 (vol. 12 no. 1)
pp. 96-109
John C. Knight, Department of Computer Science, University of Virginia, Charlottesville, VA 22903
Nancy G. Leveson, Department of Computer Science, University of California, Irvine, CA 92717
N-version programming has been proposed as a method of incorporating fault tolerance into software. Multiple versions of a program (i.e., “N”) are prepared and executed in parallel. Their outputs are collected and examined by a voter, and, if they are not identical, it is assumed that the majority is correct. This method depends for its reliability improvement on the assumption that programs that have been developed independently will fail independently. In this paper an experiment is described in which the fundamental axiom is tested. A total of 27 versions of a program were prepared independently from the same specification at two universities and then subjected to one million tests. The results of the tests revealed that the programs were individually extremely reliable but that the number of tests in which more than one program failed was substantially more than expected. The results of these tests are presented along with an analysis of some of the faults that were found in the programs. Background information on the programmers used is also summarized. The conclusion from this experiment is that N-version programming must be used with care and that analysis of its reliability must include the effect of dependent errors.
Index Terms:
Programming,Software,Educational institutions,Software reliability,NASA,software reliability,Design diversity,fault-tolerant software,multiversion programming,N-version programming
Citation:
John C. Knight, Nancy G. Leveson, "An experimental evaluation of the assumption of independence in multiversion programming," IEEE Transactions on Software Engineering, vol. 12, no. 1, pp. 96-109, Jan. 1986, doi:10.1109/TSE.1986.6312924
Usage of this product signifies your acceptance of the Terms of Use.