A Survey of Symbolic Execution Techniques

被引:435
作者
Baldoni, Roberto [1 ]
Coppa, Emilio [1 ]
D'Elia, Daniele Cono [1 ]
Demetrescu, Camil [1 ]
Finocchi, Irene [2 ]
机构
[1] Sapienza Univ Rome, Dept Comp Control & Management Engn, Via Ariosto 25, I-00185 Rome, Italy
[2] Sapienza Univ Rome, Dept Comp Sci, Via Salaria 113, I-00198 Rome, Italy
关键词
Symbolic execution; static analysis; concolic execution; software testing; VERIFICATION; GENERATION; CODE; EFFICIENT; CHECKING;
D O I
10.1145/3182657
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Many security and software testing applications require checking whether certain properties of a program hold for any possible usage scenario. For instance, a tool for identifying software vulnerabilities may need to rule out the existence of any backdoor to bypass a program's authentication. One approach would be to test the program using different, possibly random inputs. As the backdoor may only be hit for very specific program workloads, automated exploration of the space of possible inputs is of the essence. Symbolic execution provides an elegant solution to the problem, by systematically exploring many possible execution paths at the same time without necessarily requiring concrete inputs. Rather than taking on fully specified input values, the technique abstractly represents them as symbols, resorting to constraint solvers to construct actual instances that would cause property violations. Symbolic execution has been incubated in dozens of tools developed over the past four decades, leading to major practical breakthroughs in a number of prominent software reliability applications. The goal of this survey is to provide an overview of the main ideas, challenges, and solutions developed in the area, distilling them for a broad audience.
引用
收藏
页码:1 / 39
页数:39
相关论文
共 119 条
[61]  
Jaffar Joxan, 2012, Computer Aided Verification. Proceedings 24th International Conference, CAV 2012, P758, DOI 10.1007/978-3-642-31424-7_61
[62]  
Jaffar J., 2013, P 2013 9 JOINT M FDN, P48, DOI DOI 10.1145/2491411.2491425
[63]  
Jaffar J, 2012, LNCS, P396, DOI [10.1007/978-3-642-29860-8_32., DOI 10.1007/978-3-642-29860-8_]
[64]  
Jaffar J, 2009, LECT NOTES COMPUT SC, V5732, P454, DOI 10.1007/978-3-642-04244-7_37
[65]   Synthesizing Framework Models for Symbolic Execution [J].
Jeon, Jinseong ;
Qiu, Xiaokang ;
Fetter-Degges, Jonathan ;
Foster, Jeffrey S. ;
Solar-Lezama, Armando .
2016 IEEE/ACM 38TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2016, :156-167
[66]  
Jia XH, 2015, ADV SOC SCI EDUC HUM, V41, P177
[67]  
Khoo Y.P., 2010, PLDI, P436, DOI DOI 10.1145/1806596.1806645
[68]  
Khurshid S, 2003, LECT NOTES COMPUT SC, V2619, P553
[69]  
Ma KK, 2011, LECT NOTES COMPUT SC, V6887, P95, DOI 10.1007/978-3-642-23702-7_11
[70]  
King J. C., 1975, SIGPLAN Notices, V10, P228, DOI 10.1145/390016.808444