Back to Search Start Over

Constraint Programming for Dynamic Symbolic Execution of JavaScript

Authors :
Peter Schachte
Roberto Amadini
Mak Andrlon
Graeme Gange
Peter J. Stuckey
Harald Søndergaard
Amadini R.
Andrlon M.
Gange G.
Schachte P.
Sondergaard H.
Stuckey P.J.
Source :
Integration of Constraint Programming, Artificial Intelligence, and Operations Research ISBN: 9783030192112, CPAIOR
Publication Year :
2019
Publisher :
Springer Verlag, 2019.

Abstract

Dynamic Symbolic Execution (DSE) combines concrete and symbolic execution, usually for the purpose of generating good test suites automatically. It relies on constraint solvers to solve path conditions and to generate new inputs to explore. DSE tools usually make use of SMT solvers for constraint solving. In this paper, we show that constraint programming (CP) is a powerful alternative or complementary technique for DSE. Specifically, we apply CP techniques for DSE of JavaScript, the de facto standard for web programming. We capture the JavaScript semantics with MiniZinc and integrate this approach into a tool we call Aratha. We use G-Strings, a CP solver equipped with string variables, for solving path conditions, and we compare the performance of this approach against state-of-the-art SMT solvers. Experimental results, in terms of both speed and coverage, show the benefits of our approach, thus opening new research vistas for using CP techniques in the service of program analysis.

Details

Language :
English
ISBN :
978-3-030-19211-2
ISBNs :
9783030192112
Database :
OpenAIRE
Journal :
Integration of Constraint Programming, Artificial Intelligence, and Operations Research ISBN: 9783030192112, CPAIOR
Accession number :
edsair.doi.dedup.....9cee64d3ced295e6e3c26f31723ba1b4