Identifying modules which do not propagate errors

1999 
Our goal is to identify software modules that have some locations which do not propagate errors induced by a suite of test cases. This paper focuses on whether or not data state errors can propagate from a location in the code to the outputs or observable data state during random testing with inputs drawn from an operational distribution. If a code-location's probability of propagation is estimated to be zero, then a fault in that location could escape defection during testing. Because testing is never exhaustive, there is a risk that failures due to such latent faults could occur during operations. Fault injection is a technique for directly measuring the probability of propagation. However, measurement for every location in the code of a full-scale program is often prohibitively computation-intensive. Our objective is a practical, useful alternative to direct measurement. We present empirical evidence that static software product metrics can be useful for identifying software modules where the effects of a fault in that module are not observable. A case study of an intricate computer game program revealed a useful empirical relationship between static software product metrics and propagation of errors. The case study program was an order of magnitude larger than previously reported studies.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    9
    References
    8
    Citations
    NaN
    KQI
    []