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
基金
新加坡国家研究基金会;
关键词
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] Mutation-inspired symbolic execution for software testing
    Valle-Gomez, Kevin J.
    Garcia-Dominguez, Antonio
    Delgado-Perez, Pedro
    Medina-Bulo, Inmaculada
    IET SOFTWARE, 2022, 16 (05) : 478 - 492
  • [32] Symbolic Execution for Software Testing: Three Decades Later
    Cadar, Cristian
    Sen, Koushik
    COMMUNICATIONS OF THE ACM, 2013, 56 (02) : 82 - 90
  • [33] Shadow Symbolic Execution for Better Testing of Evolving Software
    Cadar, Cristian
    Palikareva, Hristina
    36TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE COMPANION 2014), 2014, : 432 - 435
  • [34] Using Metamorphic Testing to Improve Dynamic Symbolic Execution
    Alatawi, Eman
    Miller, Tim
    Sondergaard, Harald
    2015 24TH AUSTRALASIAN SOFTWARE ENGINEERING CONFERENCE (ASWEC 2015), 2015, : 38 - 47
  • [35] Symbolic Execution of Network Software Based on Unit Testing
    Zhou Lin
    Liu Fei
    Gan Shuitao
    Qin Xiaojun
    Han Wenbao
    2014 9TH IEEE INTERNATIONAL CONFERENCE ON NETWORKING, ARCHITECTURE, AND STORAGE (NAS), 2014, : 128 - 132
  • [36] Extending symbolic execution for automated testing of stored procedures
    Ghafoor, Maryam Abdul
    Mahmood, Muhammad Suleman
    Siddiqui, Junaid Haroon
    SOFTWARE QUALITY JOURNAL, 2020, 28 (02) : 853 - 887
  • [37] Extending symbolic execution for automated testing of stored procedures
    Maryam Abdul Ghafoor
    Muhammad Suleman Mahmood
    Junaid Haroon Siddiqui
    Software Quality Journal, 2020, 28 : 853 - 887
  • [38] Checking Interaction-Based Declassification Policies for Android Using Symbolic Execution
    Micinski, Kristopher
    Fetter-Degges, Jonathan
    Jeon, Jinseong
    Foster, Jeffrey S.
    Clarkson, Michael R.
    COMPUTER SECURITY - ESORICS 2015, PT II, 2015, 9327 : 520 - 538
  • [39] SCSE: Boosting Symbolic Execution via State Concretization
    Wang, Huibin
    Li, Chunqiang
    Meng, Jianyi
    Xiang, Xiaoyan
    IEICE TRANSACTIONS ON INFORMATION AND SYSTEMS, 2019, E102D (08) : 1506 - 1516
  • [40] Higher-Order Symbolic Execution via Contracts
    Tobin-Hochstadt, Sam
    Van Horn, David
    ACM SIGPLAN NOTICES, 2012, 47 (10) : 537 - 554