Testability: an introduction for COMPASS94
Keith Miller
Abstract
Keith Miller
Abstract
Testability is the probability that software will fail during random testing if it contains a fault. Reliability and correctness are distinct from testability, though all three ideas are closely related. It is theoretically possible to have reliable and even correct software that is not very testable, but you would be hard-pressed to give a convincing demonstration that such software has attained that reliability or correctness. Three things have to happen before a fault in software becomes known during testing: the fault must be executed, that execution has to change the data state adversely, and that "infected" data state must cause an incorrect output. The three parts of this process are called execution, infection, and propagation. This three-part fault/failure process forms the basis of testability analysis. Testability analysis predicts for a given piece of software how likely it is that a fault in that software (if it exists) will cause a failure during random testing. We estimate this likelihood using sensitivity analysis.>
OpenAlex reports 1 citations for this work. Citation counts describe recorded attention and do not establish research quality.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
Testability is the probability that software will fail during random testing if it contains a fault. Reliability and correctness are distinct from testability, though all three ideas are closely related. It is theoretically possible to have reliable and even correct software that is not very testable, but you would be hard-pressed to give a convincing demonstration that such software has attained that reliability or correctness. Three things have to happen before a fault in software becomes known during testing: the fault must be executed, that execution has to change the data state adversely, and that "infected" data state must cause an incorrect output. The three parts of this process are called execution, infection, and propagation. This three-part fault/failure process forms the basis of testability analysis. Testability analysis predicts for a given piece of software how likely it is that a fault in that software (if it exists) will cause a failure during random testing. We estimate this likelihood using sensitivity analysis.>
Key concepts: Testability, Correctness, Computer science, Reliability engineering, Random testing, Software fault tolerance, Software, Fault (geology)