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
关键词
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
相关论文
共 50 条
  • [31] Certified Symbolic Execution
    Qiu, Rui
    Pasareanu, Corina S.
    Khurshid, Sarfraz
    AUTOMATED TECHNOLOGY FOR VERIFICATION AND ANALYSIS, ATVA 2016, 2016, 9938 : 495 - 511
  • [32] Symbolic Router Execution
    Zhang, Peng
    Wang, Dan
    Gember-Jacobson, Aaron
    SIGCOMM '22: PROCEEDINGS OF THE 2022 ACM SIGCOMM 2022 CONFERENCE, 2022, : 336 - 349
  • [33] Directed Symbolic Execution
    Kin-Keung Ma
    Khoo Yit Phang
    Foster, Jeffrey S.
    Hicks, Michael
    STATIC ANALYSIS, 2011, 6887 : 95 - 111
  • [34] Postconditioned Symbolic Execution
    Yi, Qiuping
    Yang, Zijiang
    Guo, Shengjian
    Wang, Chao
    Liu, Jian
    Zhao, Chen
    2015 IEEE 8TH INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION (ICST), 2015,
  • [35] Symbolic execution with abstraction
    Anand S.
    Pǎsǎreanu C.S.
    Visser W.
    International Journal on Software Tools for Technology Transfer, 2009, 11 (01) : 53 - 67
  • [36] SYMBOLIC EXECUTION AND TESTING
    COWARD, PD
    INFORMATION AND SOFTWARE TECHNOLOGY, 1991, 33 (01) : 53 - 64
  • [37] Advances in Symbolic Execution
    Yang, Guowei
    Filieri, Antonio
    Borges, Mateus
    Clun, Donato
    Wen, Junye
    ADVANCES IN COMPUTERS, VOL 113, 2019, 113 : 225 - 287
  • [38] A symbolic framework for the description of tree architecture models
    Robinson, DF
    BOTANICAL JOURNAL OF THE LINNEAN SOCIETY, 1996, 121 (03): : 243 - 261
  • [39] Symbolic PathFinder: Symbolic execution of Java bytecode
    NASA Ames Research Center, Moffett Field, CA 94035, United States
    ASE - Proc. IEEE/ACM Int. Conf. Autom. Softw. Eng., (179-180):
  • [40] Manticore: A User-Friendly Symbolic Execution Framework for Binaries and Smart Contracts
    Mossberg, Mark
    Manzano, Felipe
    Hennenfent, Eric
    Groce, Alex
    Grieco, Gustavo
    Feist, Josselin
    Brunson, Trent
    Dinaburg, Artem
    34TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE 2019), 2019, : 1186 - 1189