Android Testing via Synthetic Symbolic Execution

被引:0
|
作者
Gao, Xiang [1 ]
Tan, Shin Hwei [1 ,2 ]
Dong, Zhen [1 ]
Roychoudhury, Abhik [1 ]
机构
[1] Natl Univ Singapore, Singapore, Singapore
[2] Southern Univ Sci & Technol, Shenzhen, Peoples R China
来源
PROCEEDINGS OF THE 2018 33RD IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMTED SOFTWARE ENGINEERING (ASE' 18) | 2018年
基金
新加坡国家研究基金会;
关键词
Android testing; Symbolic execution; Program synthesis;
D O I
10.1145/32381417.3238225
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Symbolic execution of Android applications is challenging as it involves either building a customized VM for Android or modeling the Android libraries. Since the Android Runtime evolves from one version to another, building a high-fidelity symbolic execution engine involves modeling the effect of the libraries and their evolved versions. Without simulating the behavior of Android libraries, path divergence may occur due to constraint loss when the symbolic values flow into Android framework and these values later affect the subsequent path taken. Previous works such as JPF-Android have relied on the modeling of execution environment such as libraries. In this work, we build a dynamic symbolic execution engine for Android apps, without any manual modeling of execution environment. Environment (or library) dependent control flow decisions in the application will trigger an on-demand program synthesis step to automatically deduce a representation of the library. This representation is refined on-the-fly by running the corresponding library multiple times. The overarching goal of the refinement is to enhance behavioral coverage and to alleviate the path divergence problem during symbolic execution. Moreover, our library synthesis can be made context-specific. Compared to traditional synthesis approaches which aim to synthesize the complete library code, our context-specific synthesis engine can generate more precise expressions for a given context. The evaluation of our dynamic symbolic execution engine, built on top of JDART, shows that the library models obtained from program synthesis are often more accurate than the semi-manual models in JPF-Android. Furthermore, our symbolic execution engine could reach more branch targets, as compared to using the JPF-Android models.
引用
收藏
页码:419 / 429
页数:11
相关论文
共 50 条
  • [31] SAFL: Increasing and Accelerating Testing Coverage with Symbolic Execution and Guided Fuzzing
    Wang, Mingzhe
    Liang, Jic
    Chen, Yuanliang
    Jiang, Yu
    Jiao, Xun
    Liu, Han
    Zhao, Xibin
    Sun, Jiaguang
    PROCEEDINGS 2018 IEEE/ACM 40TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING - COMPANION (ICSE-COMPANION, 2018, : 61 - 64
  • [32] Symbolic Types for Lenient Symbolic Execution
    Chang, Stephen
    Knauth, Alex
    Torlak, Emina
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2018, 2
  • [33] Automated Compatibility Testing Method for Software Logic by Using Symbolic Execution
    Uetsuki, Keiji
    Matsuodani, Tohru
    Tsuda, Kazuhiko
    2015 IEEE EIGHTH INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION WORKSHOPS (ICSTW), 2015,
  • [34] Interoperability-Guided Testing of QUIC Implementations using Symbolic Execution
    Rath, Felix
    Schemmel, Daniel
    Wehrle, Klaus
    EPIQ'18: PROCEEDINGS OF THE 2018 WORKSHOP ON THE EVOLUTION, PERFORMANCE, AND INTEROPERABILITY OF QUIC, 2018, : 15 - 21
  • [35] Chopped Symbolic Execution
    Trabish, David
    Mattavelli, Andrea
    Rinetzky, Noam
    Cadar, Cristian
    PROCEEDINGS 2018 IEEE/ACM 40TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2018, : 350 - 360
  • [36] 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
  • [37] Symbolic Router Execution
    Zhang, Peng
    Wang, Dan
    Gember-Jacobson, Aaron
    SIGCOMM '22: PROCEEDINGS OF THE 2022 ACM SIGCOMM 2022 CONFERENCE, 2022, : 336 - 349
  • [38] Detecting MPI Usage Anomalies via Partial Program Symbolic Execution
    Ye, Fangke
    Zhao, Jisheng
    Sarkar, Vivek
    PROCEEDINGS OF THE INTERNATIONAL CONFERENCE FOR HIGH PERFORMANCE COMPUTING, NETWORKING, STORAGE, AND ANALYSIS (SC'18), 2018,
  • [39] Symbolic Partial-Order Execution for Testing Multi-Threaded Programs
    Schemmel, Daniel
    Buening, Julian
    Rodriguez, Cesar
    Laprell, David
    Wehrle, Klaus
    COMPUTER AIDED VERIFICATION (CAV 2020), PT I, 2020, 12224 : 376 - 400
  • [40] Protocol testing with symbolic execution and rule based specification using multicore approach
    George, Sherin Mariam
    Sangeetha, U.
    INTERNATIONAL CONFERENCE ON EMERGING TRENDS IN ENGINEERING, SCIENCE AND TECHNOLOGY (ICETEST - 2015), 2016, 24 : 1609 - 1615