On the effectiveness of unit test automation at Microsoft

  • Authors:
  • Laurie Williams;Gunnar Kudrjavets;Nachiappan Nagappan

  • Affiliations:
  • Department of Computer Science, North Carolina State University;Microsoft Corporation;Microsoft Corporation

  • Venue:
  • ISSRE'09 Proceedings of the 20th IEEE international conference on software reliability engineering
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

Instituting an automated unit testing practice across a large software development team can be technically challenging and time consuming. As a result, teams may question the economic value of instituting such a practice. One large Microsoft team consisting of 32 developers transitioned from ad hoc and individualized unit testing practices to the utilization of the NUnit automated unit testing framework by all members of the team. These automated unit tests were typically written by developers after they completed coding functionality, approximately every two to three days. After a period of one year of utilizing this automated unit testing practice on Version 2 of a product, the team realized a 20.9% decrease in test defects at a cost of approximately 30% more development time relative to Version 1 of the product. The product also had a relative decrease in defects found by customers during the first two years of field use. Comparatively, other industrial teams have experienced larger decreases in defects when automated unit tests are written iteratively, as is done with the test driven development practice, for a similar time increase. These results indicate automated unit testing is beneficial but additional quality improvements may be realized if the tests are written iteratively.