一句话:提出首个自动修复 Android 应用崩溃的技术,通过八种变换算子与搜索式修复框架 Droix 实现。
Android 应用频繁崩溃,带来糟糕用户体验和经济损失。已有工作多关注自动测试生成以检测崩溃,但崩溃的自动修复尚未被研究。本文提出首个自动修复 Android 应用崩溃的方法。与多数基于测试的修复不同,该方法无需测试套件,仅分析单个失败测试以定位崩溃并推断原因。作者通过实证研究归纳出崩溃常见根因,并提炼为八种通用变换算子,在基于搜索的修复框架 Droix 中应用。为评估,作者构建了包含可复现崩溃的基准 DroixBench。实验表明,自动补丁常与人类补丁语法相同,有时甚至更优(避免回归),验证了这些算子足以修复 Android 崩溃。
Android apps are omnipresent, and frequently suffer from crashes --- leading to poor user experience and economic loss. Past work focused on automated test generation to detect crashes in Android apps. However, automated repair of crashes has not been studied. In this paper, we propose the first approach to automatically repair Android apps, specifically we propose a technique for fixing crashes in Android apps. Unlike most test-based repair approaches, we do not need a test-suite; instead a single failing test is meticulously analyzed for crash locations and reasons behind these crashes. Our approach hinges on a careful empirical study which seeks to establish common root-causes for crashes in Android apps, and then distills the remedy of these root-causes in the form of eight generic transformation operators. These operators are applied using a search-based repair framework embodied in our repair tool Droix. We also prepare a benchmark DroixBench capturing reproducible crashes in Android apps. Our evaluation of Droix on DroixBench reveals that the automatically produced patches are often syntactically identical to the human patch, and on some rare occasion even better than the human patch (in terms of avoiding regressions). These results confirm our intuition that our proposed transformations form a sufficient set of operators to patch crashes in Android.
DOI 原文 ·
@inproceedings{paperbot4439,
title = {Repairing crashes in Android apps},
author = {Shin Hwei Tan and Zhen Dong and Xiang Gao and Abhik Roychoudhury},
booktitle = {ICSE},
year = {2018},
doi = {10.1145/3180155.3180243}
}