kirancodes.me
To Proof Maintenance & Beyond!

Continuous test generation: enhancing continuous integration with automated test generation

José Carlos Medeiros de Campos, Andrea Arcuri, Gordon Fraser, Rui Filipe Lima Maranhão de Abreu

Abstract

In object oriented software development, automated unit test generation tools typically target one class at a time. A class, however, is usually part of a software project consisting of more than one class, and these are subject to changes over time. This context of a class offers significant potential to improve test generation for individual classes. In this paper, we introduce Continuous Test Generation (CTG), which includes automated unit test generation during continuous integration (i.e., infrastructure that regularly builds and tests software projects). CTG offers several benefits: First, it answers the question of how much time to spend on each class in a project. Second, it helps to decide in which order to test them. Finally, it answers the question of which classes should be subjected to test generation in the first place. We have implemented CTG using the EvoSuite unit test generation tool, and performed experiments using eight of the most popular open source projects available on GitHub, ten randomly selected projects from the SF100 corpus, and five industrial projects. Our experiments demonstrate improvements of up to +58% for branch coverage and up to +69% for thrown undeclared exceptions, while reducing the time spent on test generation by up to +83%.

BibTeX
@inproceedings{deCampos-al:ASE14,
  author    = {Jos{\'{e}} Carlos Medeiros de Campos and
               Andrea Arcuri and
               Gordon Fraser and
               Rui Filipe Lima Maranh{\~{a}}o de Abreu},
  title     = {Continuous test generation: enhancing continuous integration with automated test generation},
  booktitle = {ASE},
  pages     = {55--66},
  publisher = {{ACM}},
  year      = {2014},
}

Related papers