In this work, we propose a test code synthesis technique to improve existing SBST algorithms on testing object oriented programs. We implemented our approach as a tool Evoobj on top of Evosuite. This website servers as experiment details for reviewers to have a detailed check.
The total experiment results for the 103 projects can be download here.
In this experiment, we use the SF100 dataset, which can be downloaded here: https://www.evosuite.org/experimental-data/sf100/. Moreover, we randomly selected 750 methods from 3 more projects (Weka, JFreeChart and Jedit, which are very popular Java open source projects) in the SF100 dataset, which can be downloaded here:
Here, we provide an example on how Evoobj can work, more examples and tool are available here.
Target method:
Object construction graph derived by Evoobj from the target branch:
By visiting each node in the above object construction graph, we can generate test skeleton as:
Coverage comparison for covering branches in the target method with DynaMOSA within 100s budget:
Evosuite:
Final coverage: 0.038461538461538464
Initial Coverage: 0.01282051282051282
Initialization Time: 1.588s
Used generations: 778
Evoobj:
Final coverage: 0.5641025641025641
Initial Coverage: 0.3076923076923077
Initialization Time: 20.849s
Used generations: 488