Randomized testing has been shown to be an effective method for testing software units. However, the thoroughness of randomized unit testing varies widely according to the settings of certain parameters, such as the relative frequencies with which methods are called. In this paper, we describe a system which uses a genetic algorithm to find parameters for randomized unit testing that optimize test coverage. We compare our coverage results to previous work, and report on case studies and experiments on system options. Categories and Subject Descriptors D.2.5 [Software Engineering]: Testing and Debugging— Testing tools; I.2.8 [Artificial Intelligence]: Problem Solving, Control Methods, and Search General Terms Algorithms, Experimentation, Measurement Keywords Randomized testing, genetic algorithms, test coverage
James H. Andrews, Felix Chun Hang Li, Tim Menzies