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 条
  • [1] CRAXDroid: Automatic Android System Testing by Selective Symbolic Execution
    Yeh, Chao-Chun
    Lu, Han-Lin
    Chen, Chun-Yen
    Khor, Kee-Kiat
    Huang, Shih-Kun
    2014 IEEE EIGHTH INTERNATIONAL CONFERENCE ON SOFTWARE SECURITY AND RELIABILITY - COMPANION (SERE-C 2014), 2014, : 140 - 148
  • [2] SYMBOLIC EXECUTION AND TESTING
    COWARD, PD
    INFORMATION AND SOFTWARE TECHNOLOGY, 1991, 33 (01) : 53 - 64
  • [3] Worst-Case Execution Time Testing via Evolutionary Symbolic Execution
    Aquino, Andrea
    Denaro, Giovanni
    Salza, Pasquale
    2018 29TH IEEE INTERNATIONAL SYMPOSIUM ON SOFTWARE RELIABILITY ENGINEERING (ISSRE), 2018, : 76 - 87
  • [4] Automatic Detection of Android Steganography Apps via Symbolic Execution and Tree Matching
    Chen, Wenhao
    Lin, Li
    Newman, Jennifer
    Guan, Yong
    2021 IEEE CONFERENCE ON COMMUNICATIONS AND NETWORK SECURITY (CNS), 2021, : 254 - 262
  • [5] Test Generation via Dynamic Symbolic Execution for Mutation Testing
    Zhang, Lingming
    Xie, Tao
    Zhang, Lu
    Tillmann, Nikolai
    de Halleux, Jonathan
    Mei, Hong
    2010 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE, 2010,
  • [6] Automatic Testing of Symbolic Execution Engines via Program Generation and Differential Testing
    Kapus, Timotej
    Cadar, Cristian
    PROCEEDINGS OF THE 2017 32ND IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE'17), 2017, : 590 - 600
  • [7] SYMBOLIC EXECUTION AND PROGRAM TESTING
    KING, JC
    COMMUNICATIONS OF THE ACM, 1976, 19 (07) : 385 - 394
  • [8] Data Flow Testing for PLC Programs via Dynamic Symbolic Execution
    He, Weigang
    Mao, Xia
    Su, Ting
    Huang, Yanhong
    Shi, Jianqi
    2021 28TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE (APSEC 2021), 2021, : 152 - 160
  • [9] Symbolic execution and model checking for testing
    Pasareanu, Corina S.
    Visser, Willem
    HARDWARE AND SOFTWARE: VERIFICATION AND TESTING, 2008, 4899 : 17 - +
  • [10] APPLICATIONS OF SYMBOLIC EXECUTION TO PROGRAM TESTING
    DARRINGER, JA
    KING, JC
    COMPUTER, 1978, 11 (04) : 51 - 59