Abstraction-driven Concolic Testing
release_fc3ng5lke5fexcdvqgo3fclyd4
by
Przemysław Daca, Ashutosh Gupta, Thomas A. Henzinger
2015
Abstract
Concolic testing is a promising method for generating test suites for large
programs. However, it suffers from the path-explosion problem and often fails
to find tests that cover difficult-to-reach parts of programs. In contrast,
model checkers based on counterexample-guided abstraction refinement explore
programs exhaustively, while failing to scale on large programs with precision.
In this paper, we present a novel method that iteratively combines concolic
testing and model checking to find a test suite for a given coverage criterion.
If concolic testing fails to cover some test goals, then the model checker
refines its program abstraction to prove more paths infeasible, which reduces
the search space for concolic testing. We have implemented our method on top of
the concolic-testing tool CREST and the model checker CpaChecker. We evaluated
our tool on a collection of programs and a category of SvComp benchmarks. In
our experiments, we observed an improvement in branch coverage compared to
CREST from 48% to 63% in the best case, and from 66% to 71% on average.
In text/plain
format
Archived Files and Locations
application/pdf 289.7 kB
file_7g2bg3oobvaopai7ifilemljim
|
arxiv.org (repository) web.archive.org (webarchive) |
1511.02615v2
access all versions, variants, and formats of this works (eg, pre-prints)