Infeasible path generalization in dynamic symbolic execution

Abstract : Context: Automatic code-based test input generation aims at generating a test suite ensuring good code coverage. Dynamic Symbolic Execution (DSE) recently emerged as a strong code-based testing technique to increase coverage by solving path conditions with a combination of symbolic constraint solving and concrete executions. Objective: When selecting paths in DSE for generating test inputs, some paths are actually detected as being infeasible, meaning that no input can be found to exercize them. But, showing path infeasibility instead of generating test inputs is costly and most effort could be saved in DSE by reusing path infeasibility information. Method: In this paper, we propose a method that takes opportunity of the detection of a single infeasible path to generalize to a possibly infinite family of infeasible paths. The method first extracts an explanation of path condition, that is, the reason of the path infeasibility. Then, it determines conditions, using data dependency information, that paths must respect to exhibit the same infeasibility. Finally, it constructs an automaton matching the generalized infeasible paths. Results: We implemented our method in a prototype tool called IPEG (Infeasible Path Explanation and Generalization), for DSE of C programs. First experimental results obtained with IPEG show that our approach can save considerable effort in DSE, when generating test inputs for increasing code coverage. Conclusion: Infeasible path generalization allows test generation to know of numerous infeasible paths ahead of time, and consequently to save the time needed to show their infeasibility.
Document type :
Journal articles
Complete list of metadatas

https://hal-cea.archives-ouvertes.fr/cea-01845197
Contributor : Léna Le Roy <>
Submitted on : Friday, July 20, 2018 - 11:11:07 AM
Last modification on : Thursday, October 3, 2019 - 3:36:02 PM

Identifiers

Collections

Citation

M. Delahaye, B. Botella, A. Gotlieb. Infeasible path generalization in dynamic symbolic execution. Information and Software Technology, Elsevier, 2015, 58, pp.403-418. ⟨10.1016/j.infsof.2014.07.012⟩. ⟨cea-01845197⟩

Share

Metrics

Record views

45