A synergistic approach to improving symbolic execution using test ranges

被引:6
作者
Yang, Guowei [1 ]
Qiu, Rui [2 ]
Khurshid, Sarfraz [2 ]
Pasareanu, Corina S. [3 ]
Wen, Junye [1 ]
机构
[1] Texas State Univ, Dept Comp Sci, 601 Univ Dr, San Marcos, TX 78666 USA
[2] Univ Texas Austin, Elect & Comp Engn, Austin, TX 78712 USA
[3] Carnegie Mellon Univ, NASA Ames, Moffett Field, CA 94035 USA
基金
美国国家科学基金会;
关键词
MODEL-CHECKING; CUTE;
D O I
10.1007/s11334-019-00331-9
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Symbolic execution is a systematic technique for checking programs, which has received a lot of research attention during the last decade. In principle, symbolic execution provides a powerful analysis for bug finding. In practice however, the technique remains computationally expensive and hard to scale. This paper introduces SynergiSE, a novel synergistic approach to improving symbolic execution by tackling a key bottleneck to its wider adoption: costly and incomplete constraint solving. To mitigate the cost, SynergiSE introduces a succinct encoding of constraint solving results, thereby enabling symbolic execution to be distributed among different workers while sharing and reusing constraint solving results among them without having to communicate databases of constraint solving results. To mitigate the incompleteness, SynergiSE introduces an integration of complementary approaches for testing, e.g., search-based test generation, with symbolic execution, thereby enabling symbolic execution and other techniques to apply in tandem, say to create higher-quality tests. Experimental results using a suite of Java programs show that SynergiSE presents a promising approach for improving symbolic execution.
引用
收藏
页码:325 / 342
页数:18
相关论文
共 66 条
[31]  
Ma KK, 2011, LECT NOTES COMPUT SC, V6887, P95, DOI 10.1007/978-3-642-23702-7_11
[32]   SYMBOLIC EXECUTION AND PROGRAM TESTING [J].
KING, JC .
COMMUNICATIONS OF THE ACM, 1976, 19 (07) :385-394
[33]  
Koroglu Y, 2016, INT WORKSH CONSTR SO
[34]   An empirical investigation into branch coverage for C programs using CUTE and AUSTIN [J].
Lakhotia, Kiran ;
McMinn, Phil ;
Harman, Mark .
JOURNAL OF SYSTEMS AND SOFTWARE, 2010, 83 (12) :2379-2391
[35]  
Lauterburg S, 2008, ICSE'08 PROCEEDINGS OF THE THIRTIETH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, P291, DOI 10.1145/1368088.1368128
[36]   SymJS']JS: Automatic Symbolic Testing of Java']JavaScript Web Applications [J].
Li, Guodong ;
Andreasen, Esben ;
Ghosh, Indradeep .
22ND ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (FSE 2014), 2014, :449-459
[37]   Symbooglix: A Symbolic Execution Engine for Boogie Programs [J].
Liew, Daniel ;
Cadar, Cristian ;
Donaldson, Alastair F. .
2016 9TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION (ICST), 2016, :45-56
[38]  
Misailovic S., 2007, P ESEC FSE, P135, DOI [DOI 10.1145/1287624.1287645, 10.1145/1287624.1287645]
[39]  
Moonzoo Kim, 2012, 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation (ICST 2012), P340, DOI 10.1109/ICST.2012.114
[40]  
Pacheco C, 2005, LECT NOTES COMPUT SC, V3586, P504