In Wappler and Lammerman’s paper, the authors applied evolutionary algorithms... goals and come up with test data to reach those...

advertisement

In Wappler and Lammerman’s paper, the authors applied evolutionary algorithms derive a set of test goals and come up with test data to reach those goals. There were two kinds of studies implemented in a prototype testing system that supported coverage-oriented testing of object oriented software.

The first study compared random testing to evolutionary testing. It was applied to a test cluster where the max program length was set to 20 statements, for example a class called StateCounter. Eight tests runs were carried out. It was determined that random testing did not lead to the optimum solution, while in evolutionary testing the optimum could be found due to the high number of candidate solutions.

In the second study, three more sophisticated measures were added into the objective functions and applied to a test object for which test programs are hard to find. The goal is to determine if adding more sophisticated measures is necessary for successfully finding a solution using the evolutionary approach. The results were compared to objective functions that used a Boolean measure. This study was applied to a test cluster that consisted of classes BinaryTree, java.lang.Integer and java.lang.Double, classes that have a lot of methods requiring other instances as parameters. Ten experiments were carried out. With the Boolean measure, the evolutionary algorithm was not able to find a successful solution. With the added measure dynamic error evaluation, the algorithm was more successful (the other two measures did not improve on dynamic error evaluation.

Summary: Optimization using ‘dynamic error evaluation’ resulted in more incontrovertible solutions than random testing or optimization using just a Boolean measure.

Download