Characterizing the roles of classes and their fault-proneness through change metrics

  • Authors:
  • Maximilian Steff;Barbara Russo

  • Affiliations:
  • Free University of Bozen-Bolzano, Bozen, Italy;Free University of Bozen-Bolzano, Bozen, Italy

  • Venue:
  • Proceedings of the ACM-IEEE international symposium on Empirical software engineering and measurement
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

Many approaches to determine the fault-proneness of code artifacts rely on historical data of and about these artifacts. These data include the code and how it was changed over time, and information about the changes from version control systems. Each of these can be considered at different levels of granularity. The level of granularity can substantially influence the estimated fault-proneness of a code artifact. Typically, the level of detail oscillates between releases and commits on the one hand, and single lines of code and whole files on the other hand. Not every information may be readily available or feasible to collect at every level, though, nor does more detail necessarily improve the results. Our approach is based on time series of changes in method-level dependencies and churn on a commit-to-commit basis for two systems, Spring and Eclipse. We identify sets of classes with distinct properties of the time series of their change histories. We differentiate between classes based on temporal patterns of change. Based on this differentiation, we show that our measure of structural change in concert with its complement, churn, effectively indicates fault-proneness in classes. We also use windows on time series to select sets of commits and show that changes over short amounts of time do effectively indicate the fault-proneness of classes.