中文

用于检测非崩溃逻辑缺陷的Android应用全自动化功能模糊测试

软件工程 2021-10-06 v2

摘要

Android应用是基于GUI的事件驱动软件,近年来已无处不在。显然,功能正确性对应用成功至关重要。然而,除崩溃缺陷外,非崩溃功能缺陷(本文简称为“非崩溃缺陷”),如无意的功能失效、静默用户数据丢失与错误显示信息,即便在热门且经过充分测试的应用中也十分普遍。这些非崩溃功能缺陷通常由程序逻辑错误引起,并表现于图形用户界面(GUIs)上。实践中,此类缺陷的有效检测面临重大挑战,因为(1)当前做法严重依赖昂贵的小规模人工验证(缺乏自动化);(2)现代全自动化测试仅限于崩溃缺陷(缺乏测试预言)。本文通过引入独立视图模糊测试填补此空白,这是一种新颖的、用于检测Android应用中非崩溃功能缺陷的全自动化方法。受蜕变测试启发,我们的核心见解是利用Android应用普遍持有的独立视图属性,从一组验证特定应用属性的种子测试制造保属性变异测试。变异测试有助于在额外不利条件下锻炼被测应用。任何属性违例均指示可能的功能缺陷以供进一步人工确认。我们已将该方法实现为自动化端到端功能模糊测试工具Genie。给定一应用,(1)Genie自动检测非崩溃缺陷,无需人工提供测试与预言(故全自动化);(2)所检测的非崩溃缺陷具有多样性(故通用且不限于特定功能属性),这使Genie有别于先前工作。

关键词

引用

@article{arxiv.2008.03585,
  title  = {Fully Automated Functional Fuzzing of Android Apps for Detecting Non-crashing Logic Bugs},
  author = {Ting Su and Yichen Yan and Jue Wang and Jingling Sun and Yiheng Xiong and Geguang Pu and Ke Wang and Zhendong Su},
  journal= {arXiv preprint arXiv:2008.03585},
  year   = {2021}
}