← 最新论文
💻 computer science

Automatically Enhancing the Quality of Android App Bug Reports

本文提出了 BugScribe,一种由大语言模型驱动的方法,它通过将用户描述与应用程序执行数据相结合,自动增强 Android 应用的缺陷报告,从而生成准确、完整且可复现的组件,其质量显著优于现有的基准方法。

原作者: Antu Saha, Atish Kumar Dipongkor, Sam Bennett, Kevin Moran, Andrian Marcus, Oscar Chaparro

发布于 2026-07-03
📖 1 分钟阅读☕ 轻松阅读

原作者: Antu Saha, Atish Kumar Dipongkor, Sam Bennett, Kevin Moran, Andrian Marcus, Oscar Chaparro

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,你正在试图向开发者解释一个视频游戏中的漏洞(glitch)。你说:“当我点击那个奇怪的按钮时,程序就崩溃了。”开发者们面面相觑。哪个按钮?在哪个界面上?在崩溃发生之前究竟发生了什么?如果没有这些细节,他们根本无法修复它。

这就是 BUGSCRIBE 所要解决的问题。它是一个旨在将人类编写的混乱、模糊的错误报告,自动转化为一份开发者真正可以使用的、完美的、分步骤的操作说明书的工具。

以下是论文通过使用一些日常类比来解释它的方式:

问题所在:“翻译丢失”的错误报告

大多数移动应用中的错误都是你在屏幕上看到的视觉问题。由于计算机无法总是自动发现这些故障,因此必须由人类来报告。但人类并不擅长编写技术性指令。他们会遗漏步骤、使用模糊的词汇,或者忽略“预期结果”(即原本应该发生什么)。

论文指出,核心问题不仅在于写作水平糟糕,更在于撰写者与应用的实际“内部运作机制”脱节。他们知道哪里坏了,但他们不知道应用到达该状态的具体路径。

解决方案:BUGSCRIBE(“翻译官”与“导游”)

研究人员构建了一个名为 BUGSCRIBE 的系统。把它想象成一个超级聪明的翻译官,它精通两种语言:人类的抱怨应用的代码

  1. 绘制疆域图: 在它查看错误报告之前,BUGSCRIBE 会先探索应用本身。它构建了一张巨大且详细的地图(一个“图/graph”),记录了每一个屏幕和每一个你可以点击的按钮。它知道点击“屏幕 1”上的“按钮 A”会跳转到“屏幕 2”。
  2. 阅读投诉: 它接收用户混乱的报告(例如:“尝试恢复备份后,应用崩溃了”)。
  3. 连点成线: 这是神奇之处。BUGSCRIBE 使用强大的 AI(大语言模型)将用户模糊的词汇与其地图上的特定按钮和屏幕进行匹配。
    • 类比: 想象一位游客说:“我在大喷泉附近迷路了。”普通的导游可能会靠猜。而 BUGSCRIBE 就像一位拥有全城 GPS 地图的导游,它能看到游客的位置,并瞬间知道他们是如何走到喷泉那里的具体路径。
  4. 编写完美的报告: 它将错误报告重写为三个完美的章节:
    • 观测行为 (Observed Behavior): 究竟出了什么问题(例如:“应用在‘恢复’弹窗处崩溃”)。
    • 预期行为 (Expected Behavior): 本该发生什么(例如:“备份应该被恢复并显示‘成功’消息”)。
    • 复现步骤 (Steps to Reproduce): 一份精确的、原子化的点击列表(例如:“1. 点击‘更多’。2. 点击‘恢复’。3. 点击‘确定’”)。

它是如何运作的:“组件特定”策略

论文强调了一个聪明的技巧:BUGSCRIBE 并不以同样的方式对待报告的所有部分。它知道错误报告的不同部分需要从应用地图中获取不同类型的“线索”。

  • 针对步骤(如何复现): 它侧重于路径。它关注点击序列和涉及的具体屏幕,以确保步骤的准确性。
  • 针对描述(发生了什么): 它侧重于目的地。它观察崩溃发生的最终屏幕,以准确描述到底出了什么问题。

研究人员通过向该系统输入来自 26 个不同 Android 应用的 48 份真实错误报告进行了测试。他们将 BUGSCRIBE 的输出与原始报告以及其他 AI 工具进行了对比。

结果:巨大的提升

结果就像是从草图升级到了蓝图:

  • 复现步骤: 质量提升了 44% 到 82%。AI 生成的步骤比人类或其他 AI 编写的步骤更加准确且完整。
  • 描述: “发生了什么”和“应该发生什么”这两个部分的质量提升了 3.8% 到 35%

为什么这很重要

在此之前,如果开发者收到一份糟糕的报告,他们必须靠猜测、询问用户更多信息,或者盲目地尝试复现错误。有了 BUGSCRIBE,这个工具充当了桥梁,它利用应用自身的数据,将用户的粗略想法转化为技术性的细节。它将一份“也许这里坏了”的笔记,变成了一份“这里是具体如何使其损坏”的指令,节省了开发者的时间和精力。

简而言之: BUGSCRIBE 是一个工具,它通过利用应用自身的内部地图,将人类对应用故障的模糊抱怨,转化为一份完美的、技术性的维修指南。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →