Random or Genetic Algorithm Search for Object-Oriented Test Suite Generation?

July 10, 2015

Sina Shamshiri


Random or Genetic Algorithm Search for Object-Oriented Test Suite Generation?

Time:   11:00am
Location:   Meeting room 302 (Mountain View), level 3

Achieving high structural coverage is an important aim in software testing. Several search-based techniques have proved successful at automatically generating tests that achieve high coverage. However, despite the well- established arguments behind using evolutionary search algorithms (e.g., genetic algorithms) in preference to random search, it remains an open question whether the benefits can actually be observed in practice when generating unit test suites for object-oriented classes. In this paper, we report an empirical study on the effects of using a genetic algorithm (GA) to generate test suites over generating test suites incrementally with random search, by applying the EvoSuite unit test suite generator to 1,000 classes randomly selected from the SF110 corpus of open source projects. Surprisingly, the results show little difference between the coverage achieved by test suites generated with evolutionary search compared to those generated using random search. A detailed analysis reveals that the genetic algorithm covers more branches of the type where standard fitness functions provide guidance. In practice, however, we observed that the vast majority of branches in the analyzed projects provide no such guidance.

Joint work with Jose Miguel Rojas, Gordon Fraser and Phil McMinn. Accepted for publication and to be presented at GECCO'15.