Title
Sound and Complete Concolic Testing for Higher-order Functions
Abstract
Higher-order functions have become a staple of modern programming languages. However, such values stymie concolic testers, as the SMT solvers at their hearts are inherently first-order. This paper lays a formal foundations for concolic testing higher-order functional programs. Three ideas enable our results: (i) our tester considers only program inputs in a canonical form; (ii) it collects novel constraints from the evaluation of the canonical inputs to search the space of inputs with partial help from an SMT solver and (iii) it collects constraints from canonical inputs even when they are arguments to concretized calls. We prove that (i) concolic evaluation is sound with respect to concrete evaluation; (ii) modulo concretization and SMT solver incompleteness, the search for a counter-example succeeds if a user program has a bug and (iii) this search amounts to directed evolution of inputs targeting hard-to-reach corners of the program.
Year
DOI
Venue
2021
10.1007/978-3-030-72019-3_23
PROGRAMMING LANGUAGES AND SYSTEMS, ESOP 2021
DocType
Volume
ISSN
Conference
12648
0302-9743
Citations 
PageRank 
References 
0
0.34
0
Authors
3
Name
Order
Citations
PageRank
Shu-Hung You100.34
Robert Bruce Findler250.76
Christos Dimoulas300.68