The Meta

Darwin Enhances Software Quality

Test cases are usually generated manually or randomly. The former method is very time-consuming and therefore cost-intensive. The latter method involves generating and executing a very large number of test cases in order to test a reasonably acceptable portion of the software code. EvoTest now enables high-quality test cases to be automatically generated, executed and evaluated.

As with any systematic test process, users of EvoTest must begin by defining a test objective. An appropriate fitness function must then be defined, which evaluates the quality of the individual test cases with respect to the test objective. It begins by analyzing the initial population of test cases, to borrow a term from evolutionary biology. These are already existing test cases, which were generated manually, for example. If the defined test objective is already attained with the first generation, the evolutionary process is ended. Otherwise, individual test cases are selected, slightly altered or combined with each other. As in the theory of evolution, these processes are termed selection, mutation and recombination. The second generation is then re-subjected to the fitness evaluation, and the rest of the process proceeds as in the first round. With each repetition, a new generation of test cases is created that gets closer to attaining the test objective.