NASA Logo

NTRS

NTRS - NASA Technical Reports Server

Back to Results
The use of self checks and voting in software error detection - An empirical studyThe results of an empirical study of software error detection using self checks and N-version voting are presented. Working independently, each of 24 programmers first prepared a set of self checks using just the requirements specification of an aerospace application, and then each added self checks to an existing implementation of that specification. The modified programs were executed to measure the error-detection performance of the checks and to compare this with error detection using simple voting among multiple versions. The analysis of the checks revealed that there are great differences in the ability of individual programmers to design effective checks. It was found that some checks that might have been effective failed to detect an error because they were badly placed, and there were numerous instances of checks signaling nonexistent errors. In general, specification-based checks alone were not as effective as specification-based checks combined with code-based checks. Self checks made it possible to identify faults that had not been detected previously by voting 28 versions of the program over a million randomly generated inputs. This appeared to result from the fact that the self checks could examine the internal state of the executing program, whereas voting examines only final results of computations. If internal states had to be identical in N-version voting systems, then there would be no reason to write multiple versions.
Document ID
19900052039
Acquisition Source
Legacy CDMS
Document Type
Reprint (Version printed in journal)
External Source(s)
Authors
Leveson, Nancy G.
(California Univ. Irvine, CA, United States)
Cha, Stephen S.
(California, University Irvine, United States)
Knight, John C.
(Virginia, University Charlottesville, United States)
Shimeall, Timothy J.
(U.S. Naval Postgraduate School Monterey, CA, United States)
Date Acquired
August 14, 2013
Publication Date
April 1, 1990
Publication Information
Publication: IEEE Transactions on Software Engineering
Volume: 16
ISSN: 0098-5589
Subject Category
Computer Programming And Software
Accession Number
90A39094
Funding Number(s)
CONTRACT_GRANT: NSF DCR-85-21398
CONTRACT_GRANT: NAG1-668
CONTRACT_GRANT: NAG1-511
Distribution Limits
Public
Copyright
Other

Available Downloads

There are no available downloads for this record.
No Preview Available