Test data generation is an important part of software testing. The imbalance of data crossing program branches is often ignored in generating test data. As a result, there is much data crossing some branches while little data crossing other branches. To solve the phenomenon so as to generate test data effectively, we introduce branch balance and program balance in the evolutionary generation of test data. First, the number of individuals crossing the true and false branch of each branch node on the target path are computed. Then, the calculation methods of branch balance and program balance are given. Finally, the fitness value function which considers the change of program balance before and after an individual joining is presented. And an individual that can improve the balance will be retained in the evolution process. Experiments show that our method is better than the other method in running time and success rate.
Read full abstract