Repository logo
Log in(current)
Repository logoMIT Open ScholarshipDSpace@MIT
  1. Home
  2. MIT Open Access Articles
  3. MIT Open Access Articles
  4. Synthesizing framework models for symbolic execution

Synthesizing framework models for symbolic execution

Thumbnail Image
Download
Name

icse2016_corrected.pdf

Size

255 KB

Format

Adobe PDF

Checksum (MD5)

eb377579aa26d99c526533013cb72c9e

Author(s)
Jeon, Jinseong
•
Qiu, Xiaokang
•
Fetter-Degges, Jonathan
•
Foster, Jeffrey S.
•
Solar-Lezama, Armando
Date Issued
May 2016
Journal
Proceedings of the 38th International Conference on Software Engineering (ICSE '16)
Publisher
Association for Computing Machinery (ACM)
Citation
Jinseong Jeon, Xiaokang Qiu, Jonathan Fetter-Degges, Jeffrey S. Foster, and Armando Solar-Lezama. 2016. Synthesizing framework models for symbolic execution. In Proceedings of the 38th International Conference on Software Engineering (ICSE '16). ACM, New York, NY, USA, 156-167.
Version
Author's final manuscript
Abstract
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.
MIT Department
Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
Terms of Use
Creative Commons Attribution-Noncommercial-Share Alike
http://creativecommons.org/licenses/by-nc-sa/4.0/
Persistent DSpace Link
http://hdl.handle.net/1721.1/103076
DOI of Published Version
https://doi.org/10.1145/2884781.2884856
Repository logo
PrivacyPermissionsAccessibilityContact us
Repository logo
Notify us about copyright concerns.