[Paper] 关于开发者使用 Bug Localization Tools 时行为的理解
Source: arXiv - 2605.04828v1
概述
Bug localization——自动指向可能包含缺陷的代码部分——多年来一直是热门研究课题。虽然大多数研究追求更高的精确度指标,但本文颠覆传统,询问开发者实际上如何使用这些工具。通过观察十一位程序员在不同工具支持下处理真实的 bug,作者揭示了影响工具采纳和效果的人本因素。
关键贡献
- 对开发者‑工具交互的实证洞察:首次定性研究,实时观察开发者在使用错误定位助手时的行为。
- 识别出三个实用维度:
- 交互模式 – 开发者如何查询、解释并依据工具输出采取行动。
- 社会与情境线索 – 代码所有权、团队沟通和项目历史在决策中的权重。
- 问题解决策略 – 开发者在缩小错误范围时构建的心理模型。
- 面向未来工具的设计建议,超越单纯的准确率(例如提供更丰富的上下文、可解释性以及与现有工作流的无缝集成)。
- 方法论蓝图,用于在开发者工具上开展 think‑aloud、半结构化研究。
方法论
研究人员设置了一个 受控实验室实验,共有 11 名参与者(包括学生和行业开发者)。每位参与者完成了 四个错误定位任务,这些任务取自真实的开源项目。任务使用 定制的错误定位工具 执行,该工具可以切换以提供不同层次的支持信息(例如,仅提供文件排名列表,或额外提供调用图或版本控制提示)。
在实验过程中,要求参与者 大声思考,在口头表达推理的同时,研究人员记录屏幕活动和音频。每个任务结束后,进行 半结构化访谈,深入探讨他们的心理模型、挫败感以及他们查阅的外部信息(例如,问题跟踪器的评论、团队成员的意见)。随后,使用主题分析对定性数据进行编码,以发现重复出现的模式。
结果与发现
| 方面 | 研究观察到的内容 |
|---|---|
| 工具交互 | 开发者很少直接接受排名最高的建议;他们会将工具输出与自身知识三角验证,经常在建议列表、源代码和版本控制历史之间切换。 |
| 社会/上下文信息 | 对代码作者、最近提交或正在进行的功能工作的了解会极大影响对哪些建议的信任程度。当缺少这些上下文时,参与者会表现出较低的信心。 |
| 问题解决 | 参与者会围绕 bug 原因构建假设,并使用工具验证或驳斥这些假设,而不是把工具当作黑箱答案引擎。 |
| 支持层级影响 | 添加解释性提示(例如,文件为何被排名)可以减少在“猜测”上花费的时间,并提升感知有用性,即使底层排名准确度保持不变。 |
| 采纳障碍 | 单纯的高准确率并不能保证采纳;糟糕的 UI 反馈、缺乏与 IDE 的集成以及缺失的上下文数据被列为致命障碍。 |
实际意义
- 优先考虑可解释性:展示 为什么 推荐某个文件(例如堆栈跟踪、最近的编辑),以配合开发者的假设检验工作流。
- 整合社交信号:引入所有权数据、最近的提交信息以及问题追踪器的评论,使工具能够在原始排名的基础上呈现“谁了解什么”。
- 以 IDE 为中心的交付:将建议直接嵌入开发者的主要编辑器(通过行内注释),可减少上下文切换并提升采纳率。
- 可配置的粒度:允许用户切换辅助信息的展示量;新手可能需要更多指导,而专家则可能更倾向于简洁列表。
- 超越精度的度量:评估工具时关注 解决时间、认知负荷 与 开发者满意度,而不仅仅是 top‑k 准确率。
限制与未来工作
- 样本规模与多样性:仅有 11 名参与者,主要来自学术环境;结果可能无法完全推广到大型、分布式的工业团队。
- 受控环境:实验室任务缺乏真实开发周期中的压力、干扰和多任务处理。
- 工具特定性:研究结果与所使用的特定原型绑定;其他本地化算法可能会以不同方式与开发者交互。
未来的研究方向包括将研究规模扩大到更大、更异质的团队,测试 持续集成 流水线自动提供本地化提示的影响,以及开发能够随时间学习开发者偏好上下文层级的 自适应界面。
作者
- Pablo Diaz Pedreira
- Tamara Lopez
- Michel Wermelinger
论文信息
- arXiv ID: 2605.04828v1
- 分类: cs.SE
- 出版日期: 2026年5月6日
- PDF: 下载 PDF