Identifying Modules Which Do Not Propagate Errors

  • Authors:
  • Taghi M. Khoshgoftaar;Edward B. Allen;Wai Hong Tang;Christoph C. Michael;Jeffrey M. Voas

  • Affiliations:
  • -;-;-;-;-

  • Venue:
  • ASSET '99 Proceedings of the 1999 IEEE Symposium on Application - Specific Systems and Software Engineering and Technology
  • Year:
  • 1999

Quantified Score

Hi-index 0.00

Visualization

Abstract

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 detection 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.