Can We Enhance Bug Report Quality Using LLMs?: An Empirical Study of LLM-Based Bug Report Generation

📄 arXiv: 2504.18804v1 📥 PDF

作者: Jagrit Acharya, Gouri Ginde

分类: cs.SE, cs.AI

发布日期: 2025-04-26


💡 一句话要点

利用指令微调LLM自动生成高质量Bug报告,提升软件维护效率

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: Bug报告生成 大型语言模型 指令微调 软件维护 自动化测试

📋 核心要点

  1. 现有Bug报告质量参差不齐,信息不完整或不清晰,导致开发者需要花费大量时间进行人工处理。
  2. 利用指令微调LLM,将非结构化的Bug报告自动转换为高质量、结构化的报告,减少人工干预。
  3. 实验表明,微调后的Qwen 2.5在CTQRS指标上优于其他模型,且在未见过的项目上也有较好的泛化能力。

📝 摘要(中文)

Bug报告是开发者诊断和修复软件缺陷的关键信息来源。然而,不清晰、不完整或含糊不清的报告会导致延迟和大量的人工工作。本文探讨了指令微调的大型语言模型(LLM)是否可以将非正式、非结构化的bug报告自动转换为符合标准模板的高质量、结构化报告。研究评估了三个开源指令微调LLM(Qwen 2.5、Mistral和Llama 3.2)以及ChatGPT-4o,并使用CTQRS、ROUGE、METEOR和SBERT等指标进行性能评估。实验结果表明,微调后的Qwen 2.5的CTQRS得分为77%,优于微调后的Mistral(71%)、Llama 3.2(63%)和3-shot学习的ChatGPT(75%)。进一步分析表明,Llama 3.2在检测缺失字段(特别是预期行为和实际行为)方面表现出更高的准确性,而Qwen 2.5在捕获重现步骤方面表现出卓越的性能,F1得分为76%。在其他流行项目(如Eclipse、GCC)上的额外测试表明,该方法具有良好的泛化能力,在未见项目的bug报告中实现了高达70%的CTQRS。这些发现突出了指令微调在自动化结构化bug报告生成方面的潜力,从而减少了开发人员的人工工作并简化了软件维护流程。

🔬 方法详解

问题定义:论文旨在解决软件开发过程中,由于低质量Bug报告导致的开发人员效率降低问题。现有的Bug报告通常信息不完整、不清晰,需要开发人员花费大量时间进行人工处理和信息补充,这严重影响了软件维护的效率。

核心思路:论文的核心思路是利用大型语言模型(LLM)的强大文本生成和理解能力,通过指令微调的方式,使LLM能够自动将非结构化的、信息不完整的Bug报告转换为结构化的、高质量的报告。这样可以减少开发人员的人工干预,提高Bug修复的效率。

技术框架:整体框架包括以下几个主要步骤:1) 收集和整理Bug报告数据集;2) 选择合适的LLM作为基础模型(Qwen 2.5, Mistral, Llama 3.2, ChatGPT-4o);3) 设计指令,指导LLM将非结构化Bug报告转换为结构化报告;4) 使用Bug报告数据集对LLM进行指令微调;5) 使用CTQRS、ROUGE、METEOR和SBERT等指标评估微调后的LLM的性能。

关键创新:论文的关键创新在于:1) 探索了指令微调LLM在Bug报告生成任务中的应用;2) 比较了不同LLM在Bug报告生成任务中的性能,并发现Qwen 2.5在该任务中表现最佳;3) 验证了该方法在不同项目中的泛化能力。与现有方法相比,该方法能够自动生成高质量的Bug报告,减少人工干预,提高Bug修复的效率。

关键设计:论文的关键设计包括:1) 使用CTQRS指标来评估生成Bug报告的质量,该指标综合考虑了完整性、正确性、及时性和相关性;2) 使用ROUGE、METEOR和SBERT等指标来评估生成Bug报告的文本质量;3) 对LLM进行指令微调,使其能够更好地理解和执行Bug报告生成任务。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

实验结果表明,经过指令微调的Qwen 2.5模型在CTQRS指标上达到了77%,显著优于微调后的Mistral(71%)、Llama 3.2(63%)以及3-shot学习的ChatGPT(75%)。此外,该方法在未见过的项目上也能达到70%的CTQRS,表明其具有良好的泛化能力。

🎯 应用场景

该研究成果可应用于软件开发和维护领域,通过自动生成高质量的Bug报告,减少开发人员在Bug修复过程中花费的时间和精力,提高软件维护效率。此外,该技术还可以应用于自动化测试和缺陷预测等领域,为软件质量保障提供更全面的支持。

📄 摘要(原文)

Bug reports contain the information developers need to triage and fix software bugs. However, unclear, incomplete, or ambiguous information may lead to delays and excessive manual effort spent on bug triage and resolution. In this paper, we explore whether Instruction fine-tuned Large Language Models (LLMs) can automatically transform casual, unstructured bug reports into high-quality, structured bug reports adhering to a standard template. We evaluate three open-source instruction-tuned LLMs (\emph{Qwen 2.5, Mistral, and Llama 3.2}) against ChatGPT-4o, measuring performance on established metrics such as CTQRS, ROUGE, METEOR, and SBERT. Our experiments show that fine-tuned Qwen 2.5 achieves a CTQRS score of \textbf{77%}, outperforming both fine-tuned Mistral (\textbf{71%}), Llama 3.2 (\textbf{63%}) and ChatGPT in 3-shot learning (\textbf{75%}). Further analysis reveals that Llama 3.2 shows higher accuracy of detecting missing fields particularly Expected Behavior and Actual Behavior, while Qwen 2.5 demonstrates superior performance in capturing Steps-to-Reproduce, with an F1 score of 76%. Additional testing of the models on other popular projects (e.g., Eclipse, GCC) demonstrates that our approach generalizes well, achieving up to \textbf{70%} CTQRS in unseen projects' bug reports. These findings highlight the potential of instruction fine-tuning in automating structured bug report generation, reducing manual effort for developers and streamlining the software maintenance process.