一句话:提出协作式缺陷发现,利用相似应用缺陷报告与 Bugine 推荐 GitHub issue 发现 Android 新缺陷。
Android 应用自动化测试虽能发现崩溃,但开发者更倾向阅读自然语言测试用例,且不同应用的自然语言缺陷报告存在未被复用的冗余。本文提出协作式缺陷发现,利用其他相似应用的缺陷来发现被测应用的缺陷,并设计三种交互程度不同的设置:来自不同应用开发者、人工搜索 GitHub 仓库、以及缺陷推荐系统 Bugine。Bugine 通过自然语言处理寻找提及被测应用与其他应用共有 UI 组件的 GitHub issue,并用排序算法选择高质量 issue。软件测试课程中前两种设置发现 17 个新缺陷,Bugine 发现 34 个;合计发现 51 个新缺陷,其中 8 个被确认、11 个被开发者修复。
Many automated test generation techniques have been proposed for finding crashes in Android apps. Despite recent advancement in these approaches, a study shows that Android app developers prefer reading test cases written in natural language. Meanwhile, there exist redundancies in bug reports (written in natural language) across different apps that have not been previously reused. We propose collaborative bug finding, a novel approach that uses bugs in other similar apps to discover bugs in the app under test. We design three settings with varying degrees of interactions between programmers: (1) bugs from programmers who develop a different app, (2) bugs from manually searching for bug reports in GitHub repositories, (3) bugs from a bug recommendation system, Bugine. Our studies of the first two settings in a software testing course show that collaborative bug finding helps students who are novice Android app testers to discover 17 new bugs. As students admit that searching for relevant bug reports could be time-consuming, we introduce Bugine, an approach that automatically recommends relevant GitHub issues for a given app. Bugine uses (1) natural language processing to find GitHub issues that mention common UI components shared between the app under test and other apps in our database, and (2) a ranking algorithm to select GitHub issues that are of the best quality. Our results show that Bugine is able to find 34 new bugs. In total, collaborative bug finding helps us find 51 new bugs, in which eight have been confirmed and 11 have been fixed by the developers. These results confirm our intuition that our proposed technique is useful in discovering new bugs for Android apps.
DOI 原文 ·
@inproceedings{paperbot5567,
title = {Collaborative bug finding for Android apps},
author = {Shin Hwei Tan and Ziqiang Li},
booktitle = {ICSE},
year = {2020},
doi = {10.1145/3377811.3380349}
}