Generating Test Suites with Augmented Dynamic Symbolic Execution
by Konrad Jamrozik, Gordon Fraser, Nikolai Tillmann, Jonathan De Halleux

Proceedings of the 7th International Conference on Tests and Proofs, Pages 152-167, TAP 2013, Volume 7942, Springer, June 2013.

Digital Library via DOI: 10.1007/978-3-642-38916-0_9 - Local copy: Download as PDF file.

Abstract

Unit test generation tools typically aim at one of two objectives: to explore the program behaviour in order to exercise automated oracles, or to produce a representative test set that can be used to manually add oracles or to use as a regression test set. Dynamic symbolic execution (DSE) can efficiently explore all simple paths through a program, exercising automated oracles such as assertions or code contracts. However, its original intention was not to produce representative test sets. Although DSE tools like Pex can retain subsets of the tests seen during the exploration, customer feedback revealed that users expect different values than those produced by Pex, and sometimes also more than one value for a given condition or program path. This threatens the applicability of DSE in a scenario without automated oracles. Indeed, even though all paths might be covered by DSE, the resulting tests are usually not sensitive enough to make a good regression test suite. In this paper, we present augmented dynamic symbolic execution, which aims to produce representative test sets with DSE by augmenting path conditions with additional conditions that enforce target criteria such as boundary or mutation adequacy, or logical coverage criteria. Experiments with our APEX prototype demonstrate that the resulting test cases can detect up to 30% more seeded defects than those produced with Pex.

BibTeX Entry

@inproceedings{jamrozik-tap-2013,
    title = "Generating Test Suites with Augmented Dynamic Symbolic Execution",
    author = "Konrad Jamrozik and Gordon Fraser and Nikolai Tillmann and Jonathan De Halleux",
    year = "2013",
    month = jun,
    booktitle = "Proceedings of the 7th International Conference on Tests and Proofs",
    location = "Budapest, Hungary",
    pages = "152--167",
    publisher = "Springer",
    series = "TAP 2013",
    volume = "7942",
    doi = "10.1007/978-3-642-38916-0_9",
}

Show all publications of the Software Engineering Chair.