Evaluation of String Constraint Solvers in the Context of Symbolic Execution
Document Type
Conference Proceeding
Publication Date
2014
DOI
https://doi.org/10.1145/2642937.2643003
Abstract
Symbolic execution tools query constraint solvers for tasks such as determining the feasibility of program paths. Therefore, the effectiveness of such tools depends on their constraint solvers.
Most modern constraint solvers for primitive types are efficient and accurate. However, research on constraint solvers for complex types, such as strings, is less converged.
In this paper, we introduce two new solver adequacy criteria, modeling cost and accuracy, to help the user identify an adequate solver. Using these metrics and performance criterion, we evaluate four distinct string constraint solvers in the context of symbolic execution. Our results show that, depending on the needs of the user and composition of the program, one solver might be more appropriate than another. Yet, none of the solvers exhibit the best results for all programs. Hence, if resources permit, the user will benefit the most from executing all solvers in parallel and enabling communication between solvers.
Publication Information
Kausler, Scott; and Sherman, Elena. (2014). "Evaluation of String Constraint Solvers in the Context of Symbolic Execution". ASE '14 Proceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering, 259-270.