Fine-grained Code Coverage Measurement in Automated Black-box Android Testing

被引:18
作者
Pilgun, Aleksandr [1 ]
Gadyatskaya, Olga [2 ]
Zhauniarovich, Yury [3 ]
Dashevskyi, Stanislav [4 ]
Kushniarou, Artsiom [5 ]
Mauw, Sjouke [1 ]
机构
[1] Univ Luxembourg, FSTC, 6 Ave Fonte, L-4362 Esch Sur Alzette, Luxembourg
[2] Leiden Univ, LIACS, 1 Nielsbohrweg, NL-2335 CA Leiden, Netherlands
[3] 5 Molodezhnaya Str, Uzda 223411, BELARUS
[4] Forescout Technol BV, John F Kennedylaan 2, NL-5612 AB Eindhoven, Netherlands
[5] iTechArt Inc, 10 Tolstoy Str, Minsk 220007, BELARUS
关键词
Android; automated software testing; code coverage; instrumentation;
D O I
10.1145/3395042
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Today, there are millions of third-party Android applications. Some of them are buggy or even malicious. To identify such applications, novel frameworks for automated black-box testing and dynamic analysis are being developed by the Android community. Code coverage is one of the most common metrics for evaluating effectiveness of these frameworks. Furthermore, code coverage is used as a fitness function for guiding evolutionary and fuzzy testing techniques. However, there are no reliable tools for measuring fine-grained code coverage in black-box Android app testing. We present the Android Code coVerage Tool, ACVTool for short, that instruments Android apps and measures code coverage in the black-box setting at class, method and instruction granularity. ACVTool has successfully instrumented 96.9% of apps in our experiments. It introduces a negligible instrumentation time overhead, and its runtime overhead is acceptable for automated testing tools. We demonstrate practical value of ACV-Tool in a large-scale experiment with Sapienz, a state-of-the-art automated testing tool. Using ACVTool on the same cohort of apps, we have compared different coverage granularities applied by Sapienz in terms of the found amount of crashes. Our results showthat none of the applied coverage granularities clearly outperforms others in this aspect.
引用
收藏
页数:35
相关论文
共 72 条
  • [1] Allix K, 2016, 13TH WORKING CONFERENCE ON MINING SOFTWARE REPOSITORIES (MSR 2016), P468, DOI [10.1145/2901739.2903508, 10.1109/MSR.2016.056]
  • [2] Deploying Search Based Software Engineering with Sapienz at Facebook
    Alshahwan, Nadia
    Gao, Xinbo
    Harman, Mark
    Jia, Yue
    Mao, Ke
    Mols, Alexander
    Tei, Taijin
    Zorin, Ilya
    [J]. SEARCH-BASED SOFTWARE ENGINEERING, SSBSE 2018, 2018, 11036 : 3 - 45
  • [3] Ammann Paul, 2016, Introduction to Software Testing, V2, DOI DOI 10.1017/9781316771273
  • [4] [Anonymous], 2015, NDSS
  • [5] Arnatovich Y., 2014, SEKE, P205
  • [6] Arzt Steven, 2017, 2017 IEEE/ACM 4th International Conference on Mobile Software Engineering and Systems (MOBILESoft). Proceedings, P13, DOI 10.1109/MOBILESoft.2017.2
  • [7] Azim T, 2013, ACM SIGPLAN NOTICES, V48, P641, DOI [10.1145/2544173.2509549, 10.1145/2509136.2509549]
  • [8] ARTist: The Android Runtime Instrumentation and Security Toolkit
    Backes, Michael
    Bugiel, Sven
    Schranz, Oliver
    von Styp-Rekowsky, Philipp
    Weisgerber, Sebastian
    [J]. 2017 IEEE EUROPEAN SYMPOSIUM ON SECURITY AND PRIVACY (EUROS&P), 2017, : 481 - 495
  • [9] Bartel Alexandre, 2012, ARXIVCSCR12084536
  • [10] Guiding App Testing with Mined Interaction Models
    Borges, Nataniel P., Jr.
    Gomez, Maria
    Zeller, Andreas
    [J]. 2018 IEEE/ACM 5TH INTERNATIONAL CONFERENCE ON MOBILE SOFTWARE ENGINEERING AND SYSTEMS (MOBILESOFT), 2018, : 133 - 143