Optimizing unit test execution in large software programs using dependency analysis

  • Authors:
  • Taesoo Kim;Ramesh Chandra;Nickolai Zeldovich

  • Affiliations:
  • MIT CSAIL;MIT CSAIL;MIT CSAIL

  • Venue:
  • Proceedings of the 4th Asia-Pacific Workshop on Systems
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

Tao is a system that optimizes the execution of unit tests in large software programs and reduces the programmer wait time from minutes to seconds. Tao is based on two key ideas: First, Tao focuses on efficiency, unlike past work that focused on avoiding false negatives. Tao implements simple and fast function-level dependency tracking that identifies tests to run on a code change; any false negatives missed by this dependency tracking are caught by running the entire test suite on a test server once the code change is committed. Second, to make it easy for programmers to adopt Tao, it incorporates the dependency information into the source code repository. This paper describes an early prototype of Tao and demonstrates that Tao can reduce unit test execution time in two large Python software projects by over 96% while incurring few false negatives.