Re-Using Generators of Complex Test Data

Simon Poulding, Robert Feldt
2015 2015 IEEE 8th International Conference on Software Testing, Verification and Validation (ICST)  
The efficiency of random testing can be improved by sampling test inputs using a generating program that incorporates knowledge about the types of input most likely to detect faults in the software-under-test (SUT). But when the input of the SUT is a complex data type-such as a domain-specific string, array, record, tree, or graph-creating such a generator may be time-consuming and may require the tester to have substantial prior experience of the domain. In this paper we propose the re-use of
more » ... pose the re-use of generators created for one SUT on other SUTs that take the same complex data type as input. The re-use of a generator in this way would have little overhead, and we hypothesise that the re-used generator will typically be as least as efficient as the most straightforward form of random testing: sampling test inputs from the uniform distribution. We investigate this proposal for two data types using five generators. We assess test efficiency against seven real-world SUTs, and in terms of both structural coverage and the detection of seeded faults. The results support the re-use of generators for complex data types, and suggest that if a library of generators is to be maintained for this purpose, it is possible to extend library generators to accommodate the specific testing requirements of newly-encountered SUTs.
doi:10.1109/icst.2015.7102605 dblp:conf/icst/PouldingF15 fatcat:zi3uzutnr5ho7edzxxnu6xlgjq