TY - GEN
T1 - Evaluation of string constraint solvers in the context of Symbolic execution
AU - Kausler, Scott
AU - Sherman, Elena
N1 - Publisher Copyright:
© 2014 ACM.
PY - 2014
Y1 - 2014
N2 - 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.
AB - 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.
KW - Constraint solver analysis
KW - String constraint solving
KW - Symbolic execution
UR - http://www.scopus.com/inward/record.url?scp=84908626287&partnerID=8YFLogxK
U2 - 10.1145/2642937.2643003
DO - 10.1145/2642937.2643003
M3 - Conference contribution
AN - SCOPUS:84908626287
T3 - ASE 2014 - Proceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering
SP - 259
EP - 270
BT - ASE 2014 - Proceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering
T2 - 29th ACM/IEEE International Conference on Automated Software Engineering, ASE 2014
Y2 - 15 September 2014 through 19 September 2014
ER -