A detailed examination of the correlation between imports and failure-proneness of software components

  • Authors:
  • Ekwa Duala-Ekoko;Martin P. Robillard

  • Affiliations:
  • School of Computer Science, McGill University Montréal, Québec, Canada;School of Computer Science, McGill University Montréal, Québec, Canada

  • Venue:
  • ESEM '09 Proceedings of the 2009 3rd International Symposium on Empirical Software Engineering and Measurement
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

Research has provided evidence that type usage in source files is correlated with the risk of failure of software components. Previous studies that investigated the correlation between type usage and component failure assigned equal blame to all the types imported by a component with a failure history, regardless of whether a type is used in the component, or associated to its failures. A failure-prone component may use a type, but it is not always the case that the use of this type has been responsible for any of its failures. To gain more insight about the correlation between type usage and component failure, we introduce the concept of a failure-associated type to represent the imported types referenced within methods fixed due to failures. We conducted two studies to investigate the tradeoffs between the equal-blame approach and the failure-associated type approach. Our results indicate that few of the types or packages imported by a failure-prone component are associated with its failures — less than 25% of the type imports, and less than 55% of the packages whose usage were reported to be highly correlated with failures by the equal-blame approach, were actually correlated with failures when we looked at the failure-associated types.