On the use of testability measures for dependability assessment

A Bertolino, L Strigini - IEEE Transactions on Software …, 1996 - ieeexplore.ieee.org
A Bertolino, L Strigini
IEEE Transactions on Software Engineering, 1996ieeexplore.ieee.org
Program" testability" is informally, the probability that a program will fail under test if it
contains at least one fault. When a dependability assessment has to be derived from the
observation of a series of failure free test executions (a common need for software subject
to" ultra high reliability" requirements), measures of testability can-in theory-be used to draw
inferences on program correctness. We rigorously investigate the concept of testability and
its use in dependability assessment, criticizing, and improving on, previously published …
Program "testability" is informally, the probability that a program will fail under test if it contains at least one fault. When a dependability assessment has to be derived from the observation of a series of failure free test executions (a common need for software subject to "ultra high reliability" requirements), measures of testability can-in theory-be used to draw inferences on program correctness. We rigorously investigate the concept of testability and its use in dependability assessment, criticizing, and improving on, previously published results. We give a general descriptive model of program execution and testing, on which the different measures of interest can be defined. We propose a more precise definition of program testability than that given by other authors, and discuss how to increase testing effectiveness without impairing program reliability in operation. We then study the mathematics of using testability to estimate, from test results: the probability of program correctness and the probability of failures. To derive the probability of program correctness, we use a Bayesian inference procedure and argue that this is more useful than deriving a classical "confidence level". We also show that a high testability is not an unconditionally desirable property for a program. In particular, for programs complex enough that they are unlikely to be completely fault free, increasing testability may produce a program which will be less trustworthy, even after successful testing.
ieeexplore.ieee.org