Survey on test data generation tools

Stefan J. Galler, Bernhard K. Aichernig
2013 International Journal on Software Tools for Technology Transfer (STTT)  
Automating the process of software testing is a very popular research topic and of real interest to industry. Test automation can take part on different levels, e.g., test execution, test case generation, test data generation. This survey gives an overview of state-ofthe art test data generation tools, either academic or commercial. The survey focuses on white-and gray-box techniques. The list of existing tools was filtered with respect to their public availability, their maturity, and
more » ... The remaining seven tools, i.e., AgitarOne, Code-Pro AnalytiX, AutoTest, C++test, Jtest, RANDOOP, and PEX, are briefly introduced and their evaluation results are summarized. For the evaluation we defined 31 benchmark tests, which check the tools capabilities to generate test data that satisfies a given specification: 24 primitive type benchmarks and 7 non-primitive type and more complex with respect to the specification benchmarks. Most of the commercial tools implement a test data strategy that uses constant values found in the method under test or values that are slightly modified by means of mathematical operations. This strategy turns out to be very effective. In general, all tools that combine multiple techniques perform very well. For example PEX uses constraint solving techniques, but in cases were the constraint solver reaches its limitations it uses random based techniques to overcome those. Especially, the two commercial tools AgitarOne and PEX that combine multiple approaches to test data generation are able to pass all 31 tests. This survey reflects the status in 2011. BLACK BOX GRAY BOX WHITE BOX Jtest 39] PEX [45] AutoTest [29] EXE [10] UniTesK [27] JavaTesK CTesK Korat [7] SpecExplorer [48] RANDOOP [34] JPF [50] AgitarOne [5] C++test [37] AnalytiX [25] Klee [9] DART [20] Cute [42]
doi:10.1007/s10009-013-0272-3 fatcat:4s2uiabp5vfd5bsiwvh5dgczqi