Skip to main content
QUICK REVIEW

[论文解读] FUSION: A Tool for Facilitating and Augmenting Android Bug Reporting

Kevin Moran, Mario Linares‐Vásquez|arXiv (Cornell University)|Jan 18, 2018
Software Engineering Research参考文献 9被引用 4
一句话总结

FUSION 是一种增强 Android 错误报告的工具,通过静态和动态分析自动提取 GUI 组件和事件流,然后利用上下文相关的应用数据,引导用户通过结构化、自动生成的复现步骤。它显著提高了错误报告的可复现性——120 份 FUSION 报告中有 107 份可复现,而传统系统(如 GCIT)的 120 份报告中仅有 97 份可复现。

ABSTRACT

As the popularity of mobile smart devices continues to climb the complexity of "apps" continues to increase, making the development and maintenance process challenging. Current bug tracking systems lack key features to effectively support construction of reports with actionable information that directly lead to a bug's resolution. In this demo we present the implementation of a novel bug reporting system, called Fusion, that facilitates users including reproduction steps in bug reports for mobile apps. Fusion links user-provided information to program artifacts extracted through static and dynamic analysis performed before testing or release. Results of preliminary studies demonstrate that Fusion both effectively facilitates reporting and allows for more reliable reproduction of bugs from reports compared to traditional issue tracking systems by presenting more detailed contextual app information. Tool website: www.fusion-android. com Video url: https://youtu.be/AND9h0ElxRg

研究动机与目标

  • 解决传统错误追踪系统中的关键缺陷:依赖非结构化、不完整的用户报告,这些报告往往无法复现。
  • 通过将功能描述与底层代码及 GUI 元素关联,缩小非开发人员报告者与开发人员之间的词汇鸿沟。
  • 通过整合自动化程序分析与引导式、基于 Web 的报告界面,提升错误报告的质量和可操作性。
  • 通过提供结构化、可追溯且上下文丰富的报告(含截图和组件级元数据),帮助开发人员更可靠地复现错误。
  • 不仅支持错误报告,还通过相同的结构化报告流程,为未来支持功能请求提供便利。

提出的方法

  • FUSION 对 Android APK 进行静态和动态分析,以在应用发布前提取 GUI 组件、事件流和屏幕切换。
  • 其动态分析引擎使用深度优先搜索(DFS)启发式算法,探索应用 UI 组件中的可能用户交互路径。
  • 基于 Web 的报告生成器中的自动补全引擎,根据先前步骤和已知应用状态,建议有效的 UI 操作,从而减少用户输入错误。
  • 报告者通过引导式组合框构建错误报告,系统按类型、文本和屏幕位置建议组件,对不支持的手势操作提供回退机制。
  • 报告中的每一步均链接到该组件实例化时的源代码类,实现对实现代码的可追溯性。
  • 最终报告包含唯一 ID、带截图的逐步操作、组件元数据(类型、位置、类名)以及全屏截图,以实现视觉可追溯性。

实验结果

研究问题

  • RQ1自动化静态和动态分析能否提升用户报告的错误复现步骤的完整性和结构化程度?
  • RQ2与传统问题追踪系统相比,FUSION 在多大程度上减少了非开发人员报告者与开发人员之间的词汇鸿沟?
  • RQ3使用 FUSION 生成的错误报告的可复现性,与使用传统系统(如 Google Code Issue Tracker)相比如何?
  • RQ4FUSION 中的自动补全机制能否在保持与实际应用行为高度一致的同时,降低用户报告的负担和错误率?
  • RQ5对源代码组件的可追溯性链接对开发人员调试效率有何影响?

主要发现

  • 在物理设备上,FUSION 报告的可复现成功率达到了 107/120,显著优于传统系统(如 GCIT)的 97/120。
  • FUSION 的引导式、自动生成输入界面降低了报告者的认知负荷,使其能够提供更一致、更详细的复现步骤。
  • 静态和动态分析的整合使得即使报告者缺乏技术知识,也能准确建议 UI 组件和状态转换。
  • 报告者更倾向于使用 FUSION 而非传统系统,因其结构化、上下文感知的输入方式减少了歧义,并增强了对报告质量的信心。
  • 该工具能够将每一步骤链接到源代码类,并提供视觉截图,显著提升了开发人员的理解速度和调试效率。
  • 系统通过为不支持的手势或组件提供手动输入回退模式,在处理边缘情况方面表现出强健性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。