Assessing the Relationship between Software Assertions and Faults: An Empirical Investigation

  • Authors:
  • Gunnar Kudrjavets;Nachiappan Nagappan;Thomas Ball

  • Affiliations:
  • Microsoft Corporation, Redmond, WA;Microsoft Research, Redmond, WA;Microsoft Research, Redmond, WA

  • Venue:
  • ISSRE '06 Proceedings of the 17th International Symposium on Software Reliability Engineering
  • Year:
  • 2006

Quantified Score

Hi-index 0.02

Visualization

Abstract

The use of assertions in software development is thought to help produce quality software. Unfortunately, there is scant empirical evidence in commercial software systems for this argument to date. This paper presents an empirical case study of two commercial software components at Microsoft Corporation. The developers of these components systematically employed assertions, which allowed us to investigate the relationship between software assertions and code quality. We also compare the efficacy of assertions against that of popular bug finding techniques like source code static analysis tools. We observe from our case study that with an increase in the assertion density in a file there is a statistically significant decrease in fault density. Further, the usage of software assertions in these components found a large percentage of the faults in the bug database.