Developing Fault Predictors for Evolving Software Systems

  • Authors:
  • Allen P. Nikora;John C. Munson

  • Affiliations:
  • -;-

  • Venue:
  • METRICS '03 Proceedings of the 9th International Symposium on Software Metrics
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

Over the past several years, we have been developing methods of predicting the fault content of software systems based on measured characteristics of their structural evolution. In previous work, we have shown there is a significant linear relationship between code churn, a synthesized metric, and the rate at which faults are inserted into the system in terms of number of faults per unit change in code churn. A limiting factor in this and other investigations of a similar nature has been the absence of a solid and repeatable definition of the concept of a fault. The rules for fault definition were not sufficiently rigorous to provide completely unambiguous and repeatable fault counts.We have begun a new investigation of this relationship with a flight software technology development effort at the Jet Propulsion Laboratory (JPL) and have progressed in resolving the limitations of the earlier work in two distinct steps. First, we have developed a standard for the enumeration of faults. This new standard permits software faults to be measured precisely and accurately. Second, we have developed a practical framework for automating the measurement of these faults. This new standard and fault measurement process was then applied to a software system's structural evolution during its development. Every change to the software system was measured and every fault was identified and tracked to a specific line of code. The measurement process was implemented in a network appliance, minimizing the impact of measurement activities on development efforts and enabling the comparison of measurements across multiple development efforts.In this paper, we analyze the measurements of structural evolution and fault counts obtained from the JPL flight software technology development effort. Our results indicate that the measures of structural attributes of the evolving software system are suitable for forming predictors of the number of faults inserted into software modules during their development. The new fault standard also insures that the model so developed has greater predictive validity.