paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Repairing crashes in Android apps

修复 Android 应用中的崩溃
ICSE Proceedings of the 40th International Conference on Software Engineering2018匹配度 3/10 · 论文研究 Android 应用崩溃的自动修复,属于软件工程中的程序修复与测试方向,并未涉及用户核心关注的 PL 与 LLM/Agent 交叉、静态分析、浮点程序分析或贝叶斯程序分析;仅其问题驱动的经验研究与 benchmark 构建方式可能有一点方法学参考价值。引用 72 inbox
Shin Hwei Tan, Zhen Dong, Xiang Gao, Abhik Roychoudhury
crossref: 2026-09-12

AI 速览

一句话:提出首个自动修复 Android 应用崩溃的技术,通过八种变换算子与搜索式修复框架 Droix 实现。

Android 应用频繁崩溃,带来糟糕用户体验和经济损失。已有工作多关注自动测试生成以检测崩溃,但崩溃的自动修复尚未被研究。本文提出首个自动修复 Android 应用崩溃的方法。与多数基于测试的修复不同,该方法无需测试套件,仅分析单个失败测试以定位崩溃并推断原因。作者通过实证研究归纳出崩溃常见根因,并提炼为八种通用变换算子,在基于搜索的修复框架 Droix 中应用。为评估,作者构建了包含可复现崩溃的基准 DroixBench。实验表明,自动补丁常与人类补丁语法相同,有时甚至更优(避免回归),验证了这些算子足以修复 Android 崩溃。

问题
Android 应用频繁崩溃,但已有工作主要关注崩溃检测,缺乏自动修复崩溃的方法。
方法
通过实证研究归纳崩溃常见根因并提炼为八种通用变换算子,无需测试套件,仅基于单个失败测试分析崩溃位置与原因,在 Droix 中以搜索式修复框架应用算子生成补丁。
评估
构建了可复现崩溃的基准 DroixBench,并在其上评估 Droix;实验显示自动补丁常与人类补丁语法一致,有时在避免回归方面甚至优于人类补丁。
原文摘要(Abstract)

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 原文 ·

BibTeX
@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}
}