Automatically generating search heuristics for concolic testing
Authors:
Open Access
- 27 May 2018
- conference paper
- Published by Association for Computing Machinery (ACM)
- p. 1244-1254
Abstract
We present a technique to automatically generate search heuristics for concolic testing. A key challenge in concolic testing is how to effectively explore the program's execution paths to achieve high code coverage in a limited time budget. Concolic testing employs a search heuristic to address this challenge, which favors exploring particular types of paths that are most likely to maximize the final coverage. However, manually designing a good search heuristic is nontrivial and typically ends up with suboptimal and unstable outcomes. The goal of this paper is to overcome this shortcoming of concolic testing by automatically generating search heuristics. We define a class of search heuristics, namely a parameterized heuristic, and present an algorithm that efficiently finds an optimal heuristic for each subject program. Experimental results with open-source C programs show that our technique successfully generates search heuristics that significantly outperform existing manually-crafted heuristics in terms of branch coverage and bug-finding.Keywords
Funding Information
- Korea Government (MSIT) (2015-0-00565)
This publication has 23 references indexed in Scilit:
- Solving complex path conditions through heuristic search on induced polytopes2014
- How we get there: a context-guided search strategy in concolic testing2014
- Boosting concolic testing via interpolation2013
- Symbolic execution for software testingCommunications of the ACM, 2013
- CarFast2012
- Industrial application of concolic testing approach: A case study on libexif by using CREST-BV and KLEE2012
- EXEACM Transactions on Information and System Security, 2008
- Compositional dynamic test generation2007
- CUTE2005
- Symbolic execution and program testingCommunications of the ACM, 1976