Subdomain-based test data generation

Research output: Contribution to journalArticlepeer-review


Abstract Considerable effort is required to test software thoroughly. Even with automated test data generation tools, it is still necessary to evaluate the output of each test case and identify unexpected results. Manual effort can be reduced by restricting the range of inputs testers need to consider to regions that are more likely to reveal faults, thus reducing the number of test cases overall, and therefore reducing the effort needed to create oracles. This article describes and evaluates search-based techniques, using evolution strategies and subset selection, for identifying regions of the input domain (known as subdomains) such that test cases sampled at random from within these regions can be used efficiently to find faults. The fault finding capability of each subdomain is evaluated using mutation analysis, a technique that is based on faults programmers are likely to make. The resulting subdomains kill more mutants than random testing (up to six times as many in one case) with the same number or fewer test cases. Optimised subdomains can be used as a starting point for program analysis and regression testing. They can easily be comprehended by a human test engineer, so may be used to provide information about the software under test and design further highly efficient test suites.
Original languageEnglish
Pages (from-to)328-342
Number of pages15
JournalJournal of Systems and Software
Early online date27 Dec 2014
Publication statusPublished - May 2015

Bibliographical note

© 2014 Elsevier Inc. This is an author-produced version of the published paper. Uploaded in accordance with the publisher’s self-archiving policy.


  • Evolution strategy

Cite this