中文

CrashTranslator:直接从堆栈跟踪自动复现移动应用崩溃

软件工程 2023-10-12 v1

摘要

崩溃报告对软件维护至关重要,因为它们让开发者得知移动应用中遇到的问题。在修复之前,开发者需要复现崩溃,这是一项极其耗时且繁琐的任务。现有研究利用自然语言描述的复现步骤进行自动崩溃复现。然而我们发现,不可忽视的一部分崩溃报告在崩溃发生时仅包含堆栈跟踪。此类仅含堆栈跟踪的崩溃仅揭示崩溃发生时的最后一个GUI页面,缺乏逐步指导。开发者往往需花费更多精力理解问题并复现崩溃,而现有技术无法处理此类情况,因而对自动支持的迫切需求更为突出。本文提出一种名为CrashTranslator的方法,直接从堆栈跟踪自动复现移动应用崩溃。它通过利用预训练的大语言模型(Large Language Model, LLM)预测触发崩溃的探索步骤,并设计一种基于强化学习的技术来缓解不准确的预测并从整体上引导搜索。我们在涉及58款流行Android应用的75份崩溃报告上评估CrashTranslator,其成功复现了61.3%的崩溃,优于最先进的基线109%至206%。此外,平均复现时间为68.7秒,优于基线302%至1611%。我们还评估了CrashTranslator的有用性,结果令人鼓舞。

关键词

引用

@article{arxiv.2310.07128,
  title  = {CrashTranslator: Automatically Reproducing Mobile Application Crashes Directly from Stack Trace},
  author = {Yuchao Huang and Junjie Wang and Zhe Liu and Yawen Wang and Song Wang and Chunyang Chen and Yuanzhe Hu and Qing Wang},
  journal= {arXiv preprint arXiv:2310.07128},
  year   = {2023}
}

备注

Accepted by ICSE 24