DiffGen: Automated Regression Unit-Test Generation

  • Authors:
  • K. Taneja; Tao Xie

  • Affiliations:
  • Dept. of Comput. Sci., North Carolina State Univ., Raleigh, NC;Dept. of Comput. Sci., North Carolina State Univ., Raleigh, NC

  • Venue:
  • ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
  • Year:
  • 2008

Quantified Score

Hi-index 0.01

Visualization

Abstract

Software programs continue to evolve throughout their lifetime. Maintenance of such evolving programs, including regression testing, is one of the most expensive activities in software development. We present an approach and its implementation called DiffGen for automated regression unit-test generation and checking for Java programs. Given two versions of a Java class, our approach instruments the code by adding new branches such that if these branches can be covered by a test generation tool, behavioral differences between the two class versions are exposed. DiffGen then uses a coverage-based test generation tool to generate test inputs for covering the added branches to expose behavioral differences. We have evaluated DiffGen on finding behavioral differences between 21 classes and their versions. Experimental results show that our approach can effectively expose many behavioral differences that cannot be exposed by state-of-the-art techniques.