一句话:论文提出 CraftDroid,从应用市场重建的应用谱系中挖掘 Android 崩溃修复,并发布崩溃基准 ReCBench。
Android 应用常因误用框架 API 而崩溃,但官方文档对潜在异常说明不足,加之缺少 issue 和变更跟踪系统,收集修复样例成本高,导致自动崩溃修复研究受限于少量案例。本文提出可扩展方法 CraftDroid,利用从应用市场重建的 2.8 万条应用谱系,无需应用源码或 issue 报告;通过重复测试,在相同测试输入下定位运行时日志不同的应用版本之间的修复。实验共挖掘出 104 个相关崩溃修复,进一步抽象出 17 个细粒度修复模板,并证明其可有效修补已崩溃 apk。最后发布 ReCBench 基准,包含 200 个崩溃 apk 及崩溃复现脚本,供社区评估生成的崩溃修复补丁。
Android apps are prone to crash. This often arises from the misuse of Android framework APIs, making it harder to debug since official Android documentation does not discuss thoroughly potential exceptions.Recently, the program repair community has also started to investigate the possibility to fix crashes automatically. Current results, however, apply to limited example cases. In both scenarios of repair, the main issue is the need for more example data to drive the fix processes due to the high cost in time and effort needed to collect and identify fix examples. We propose in this work a scalable approach, CraftDroid, to mine crash fixes by leveraging a set of 28 thousand carefully reconstructed app lineages from app markets, without the need for the app source code or issue reports. We developed a replicative testing approach that locates fixes among app versions which output different runtime logs with the exact same test inputs. Overall, we have mined 104 relevant crash fixes, further abstracted 17 fine-grained fix templates that are demonstrated to be effective for patching crashed apks. Finally, we release ReCBench, a benchmark consisting of 200 crashed apks and the crash replication scripts, which the community can explore for evaluating generated crash-inducing bug patches.
@inproceedings{paperbot5371,
title = {Mining Android crash fixes in the absence of issue- and change-tracking systems},
author = {Pingfan Kong and Li Li and Jun Gao and Tegawendé F. Bissyandé and Jacques Klein},
booktitle = {ISSTA},
year = {2019},
doi = {10.1145/3293882.3330572}
}