当前位置: X-MOL 学术ACM Trans. Softw. Eng. Methodol. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Fine-grained Code Coverage Measurement in Automated Black-box Android Testing
ACM Transactions on Software Engineering and Methodology ( IF 4.4 ) Pub Date : 2020-07-06 , DOI: 10.1145/3395042
Aleksandr Pilgun 1 , Olga Gadyatskaya 2 , Yury Zhauniarovich 3 , Stanislav Dashevskyi 4 , Artsiom Kushniarou 5 , Sjouke Mauw 6
Affiliation  

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 ACVTool 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 show that none of the applied coverage granularities clearly outperforms others in this aspect.

中文翻译:

自动化黑盒 Android 测试中的细粒度代码覆盖率测量

今天,有数以百万计的第三方 Android 应用程序。其中一些是错误的,甚至是恶意的。为了识别此类应用程序,Android 社​​区正在开发用于自动黑盒测试和动态分析的新框架。代码覆盖率是评估这些框架有效性的最常见指标之一。此外,代码覆盖率被用作指导进化和模糊测试技术的适应度函数。但是,在黑盒 Android 应用程序测试中,没有可靠的工具来测量细粒度的代码覆盖率。我们介绍了 Android 代码覆盖工具,简称 ACVTool,它可以检测 Android 应用程序并在类、方法和指令粒度的黑盒设置中测量代码覆盖率。在我们的实验中,ACVTool 已成功检测了 96.9% 的应用程序。它引入了可忽略的检测时间开销,并且其运行时开销对于自动化测试工具来说是可以接受的。我们在使用最先进的自动化测试工具 Sapienz 进行的大规模实验中展示了 ACVTool 的实用价值。在同一组应用程序上使用 ACVTool,我们比较了 Sapienz 在发现的崩溃数量方面应用的不同覆盖粒度。我们的结果表明,在这方面,没有一个应用的覆盖粒度明显优于其他覆盖粒度。我们根据发现的崩溃数量比较了 Sapienz 应用的不同覆盖粒度。我们的结果表明,在这方面,没有一个应用的覆盖粒度明显优于其他覆盖粒度。我们根据发现的崩溃数量比较了 Sapienz 应用的不同覆盖粒度。我们的结果表明,在这方面,没有一个应用的覆盖粒度明显优于其他覆盖粒度。
更新日期:2020-07-06
down
wechat
bug