摘要

Context: Genetic Algorithms are a popular search-based optimisation technique for automatically generating test inputs for structural coverage of a program, but there has been little work investigating the class of programs for which they will perform well. %26lt;br%26gt;Objective: This paper presents and evaluates a series of program factors that are hypothesised to affect the performance of crossover, a key search operator in Genetic Algorithms, when searching for inputs that cover the branching structure of a C function. %26lt;br%26gt;Method: Each program factor is evaluated with example programs using Genetic Algorithms with and without crossover. Experiments are also performed to test whether crossover is acting as macro-mutation operator rather than usefully recombining the component parts of input vectors when searching for test data. %26lt;br%26gt;Results: The results show that crossover has an impact for each of the program factors studied. %26lt;br%26gt;Conclusion: It is concluded crossover plays an increasingly important role for programs with large, multidimensional input spaces, where the target structure%26apos;s input condition breaks down into independent sub-problems for which solutions may be sought in parallel. Furthermore, it is found that crossover can be inhibited when the program under test is unstructured or involves nested conditional statements; and when intermediate variables are used in branching conditions, as opposed to direct input values.

  • 出版日期2013-1