Synthesizing Framework Models for Symbolic Execution

被引:22
作者
Jeon, Jinseong [1 ]
Qiu, Xiaokang [2 ]
Fetter-Degges, Jonathan [1 ]
Foster, Jeffrey S. [1 ]
Solar-Lezama, Armando [2 ]
机构
[1] Univ Maryland, College Pk, MD 20742 USA
[2] MIT, Cambridge, MA 02139 USA
来源
2016 IEEE/ACM 38TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE) | 2016年
关键词
Program Synthesis; Framework Model; Symbolic Execution; SKETCH;
D O I
10.1145/2884781.2884856
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Symbolic execution is a powerful program analysis technique, but it is difficult to apply to programs built using frameworks such as Swing and Android, because the framework code itself is hard to symbolically execute. The standard solution is to manually create a framework model that can be symbolically executed, but developing and maintaining a model is difficult and error-prone. In this paper, we present PASKET, a new system that takes a first step toward automatically generating Java framework models to support symbolic execution. PASKET'S focus is on creating models by instantiating design patterns. PASKET takes as input class, method, and type information from the framework API, together with tutorial programs that exercise the framework. From these artifacts and PASKET'S internal knowledge of design patterns, PASKET synthesizes a framework model whose behavior on the tutorial programs matches that of the original framework. We evaluated PASKET by synthesizing models for subsets of Swing and Android. Our results show that the models derived by PASKET are sufficient to allow us to use off-the-shelf symbolic execution tools to analyze Java programs that rely on frameworks.
引用
收藏
页码:156 / 167
页数:12
相关论文
共 40 条
[1]  
Albin-amiot H., 2001, Workshop Automating OOSD Methods, P01
[2]  
Andersen T. R., 2008, ADD LOGGING CLASS LO
[3]  
[Anonymous], 2011, P 19 ACM SIGSOFT S 1
[4]  
[Anonymous], 2012, SPSM 12 P WORKSHOP S
[5]  
Antkiewicz Michal., 2007, ASE 07, P214
[6]  
Blackshear S., 2015, SOAP, P19, DOI DOI 10.1145/2771284.2771288
[7]  
Cadar C., 2008, Proceedings of the 8th USENIX conference on Operating systems design and implementation, OSDI'08, (USA), P209
[8]  
Cao Y., 2015, NDSS, V1 5
[9]  
Ceccarello M., 2014, ACM SIGSOFT SOFTW EN, V39, DOI DOI 10.1145/2557833.2560572
[10]  
Chiba S, 2000, LECT NOTES COMPUT SC, V1850, P313