Constraint programming for dynamic symbolic execution of JavaScript

Roberto Amadini, Mak Andrlon, Graeme Gange, Peter Schachte, Harald Søndergaard, Peter J. Stuckey

Research output: Chapter in Book/Report/Conference proceedingConference PaperResearchpeer-review

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.

Original languageEnglish
Title of host publicationIntegration of Constraint Programming, Artificial Intelligence, and Operations Research
Subtitle of host publication16th International Conference, CPAIOR 2019 Thessaloniki, Greece, June 4–7, 2019 Proceedings
EditorsLouis-Martin Rousseau, Kostas Stergiou
Place of PublicationCham Switzerland
PublisherSpringer
Pages1-19
Number of pages19
ISBN (Electronic)9783030192129
ISBN (Print)9783030192112
DOIs
Publication statusPublished - 2019
EventInternational Conference on Integration of Artificial Intelligence and Operations Research Techniques in Constraint Programming for Combinatorial Optimization Problems 2019
- Thessaloniki, Greece
Duration: 4 Jun 20197 Jun 2019
Conference number: 16th
https://cpaior2019.uowm.gr/
https://cpaior2019.uowm.gr

Publication series

NameLecture Notes in Computer Science
PublisherSpringer
Volume11494
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Conference

ConferenceInternational Conference on Integration of Artificial Intelligence and Operations Research Techniques in Constraint Programming for Combinatorial Optimization Problems 2019
Abbreviated titleCPAIOR 2019
CountryGreece
CityThessaloniki
Period4/06/197/06/19
Internet address

Cite this

Amadini, R., Andrlon, M., Gange, G., Schachte, P., Søndergaard, H., & Stuckey, P. J. (2019). Constraint programming for dynamic symbolic execution of JavaScript. In L-M. Rousseau, & K. Stergiou (Eds.), Integration of Constraint Programming, Artificial Intelligence, and Operations Research: 16th International Conference, CPAIOR 2019 Thessaloniki, Greece, June 4–7, 2019 Proceedings (pp. 1-19). (Lecture Notes in Computer Science ; Vol. 11494 ). Springer. https://doi.org/10.1007/978-3-030-19212-9_1