Automated Duplicate Bug Report Detection in Large Open Bug Repositories

📄 arXiv: 2504.14797v1 📥 PDF

作者: Clare E. Laney, Andrew Barovic, Armin Moin

分类: cs.SE, cs.AI

发布日期: 2025-04-21

备注: IEEE COMPSAC 2025

DOI: 10.1109/COMPSAC65507.2025.00065


💡 一句话要点

提出基于机器学习的自动缺陷报告去重方法,提高大型开源项目问题追踪效率。

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

关键词: 缺陷报告去重 机器学习 自然语言处理 文本分类 开源项目 问题追踪系统

📋 核心要点

  1. 现有方法难以有效识别重复缺陷报告,浪费开发者时间,降低问题解决效率。
  2. 利用机器学习技术,分析缺陷报告文本数据,自动检测重复报告,减少人工干预。
  3. 实验结果表明,该方法在Eclipse数据集上取得了较高的准确率,验证了其有效性。

📝 摘要(中文)

在大型开源项目中,用户和贡献者经常向问题追踪系统提交软件缺陷或增强请求(即缺陷报告)。然而,他们有时会报告已经存在的问题。这可能是因为他们没有足够的时间研究现有的缺陷报告,或者缺乏特定领域的专业知识,无法意识到现有报告实际上是在用不同的措辞阐述同一问题。本文提出了一种基于机器学习方法的新方法,可以根据报告中的文本数据自动检测开放缺陷库中的重复缺陷报告。我们提出了六种替代方法:主题建模、高斯朴素贝叶斯、深度学习、基于时间的组织、聚类以及使用生成式预训练Transformer大型语言模型的摘要。此外,我们还引入了一种基于阈值的新型重复识别方法,与文献中广泛使用的传统top-k选择方法形成对比。我们的方法在所有提出的方法中都表现出良好的结果,准确率从70%多到90%多不等。我们在属于Eclipse开源项目的公共问题数据集上评估了我们的方法。

🔬 方法详解

问题定义:论文旨在解决大型开源项目中重复缺陷报告检测的问题。现有方法,如人工审核,效率低下且容易出错。传统的top-k选择方法在确定重复报告时,可能会因为相似度阈值设置不当而导致误判或漏判。因此,需要一种自动、准确的重复缺陷报告检测方法,以提高问题追踪系统的效率。

核心思路:论文的核心思路是利用机器学习技术,从缺陷报告的文本数据中学习特征,并基于这些特征来判断报告是否重复。通过比较不同机器学习模型在重复报告检测任务上的性能,找到最有效的方法。此外,论文还提出了一种基于阈值的重复识别方法,以替代传统的top-k选择方法。

技术框架:整体框架包括数据预处理、特征提取、模型训练和重复报告识别四个主要阶段。数据预处理阶段对缺陷报告的文本数据进行清洗和标准化。特征提取阶段使用不同的方法(如主题建模、词袋模型、深度学习模型)将文本数据转换为数值特征。模型训练阶段使用这些特征训练机器学习模型。重复报告识别阶段使用训练好的模型对新的缺陷报告进行预测,并根据预测结果判断其是否为重复报告。

关键创新:论文的关键创新在于:1) 提出了多种基于机器学习的重复报告检测方法,并比较了它们的性能;2) 引入了一种基于阈值的重复识别方法,该方法可以根据实际情况动态调整阈值,从而提高重复报告检测的准确率。

关键设计:论文中使用了多种机器学习模型,包括主题建模(LDA)、高斯朴素贝叶斯、深度学习模型(具体模型结构未知)、聚类算法等。对于基于阈值的重复识别方法,关键在于如何确定合适的阈值。论文中可能采用了交叉验证等方法来选择最佳阈值。具体的损失函数和网络结构等技术细节在摘要中未提及,属于未知信息。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

该研究在Eclipse开源项目的公共数据集上进行了评估,结果表明,提出的方法在重复缺陷报告检测方面取得了显著的成果,准确率从70%多到90%多不等。虽然摘要中没有给出具体的性能数据和对比基线,但可以推断出该方法优于传统的人工审核方法和其他已有的自动化方法。

🎯 应用场景

该研究成果可应用于各种规模的开源项目和商业软件开发团队,帮助他们更有效地管理缺陷报告,减少重复工作,提高问题解决效率。通过自动检测重复报告,可以节省开发者的时间和精力,让他们专注于解决新的问题和改进软件质量。此外,该技术还可以用于构建智能化的缺陷管理系统,提升用户体验。

📄 摘要(原文)

Many users and contributors of large open-source projects report software defects or enhancement requests (known as bug reports) to the issue-tracking systems. However, they sometimes report issues that have already been reported. First, they may not have time to do sufficient research on existing bug reports. Second, they may not possess the right expertise in that specific area to realize that an existing bug report is essentially elaborating on the same matter, perhaps with a different wording. In this paper, we propose a novel approach based on machine learning methods that can automatically detect duplicate bug reports in an open bug repository based on the textual data in the reports. We present six alternative methods: Topic modeling, Gaussian Naive Bayes, deep learning, time-based organization, clustering, and summarization using a generative pre-trained transformer large language model. Additionally, we introduce a novel threshold-based approach for duplicate identification, in contrast to the conventional top-k selection method that has been widely used in the literature. Our approach demonstrates promising results across all the proposed methods, achieving accuracy rates ranging from the high 70%'s to the low 90%'s. We evaluated our methods on a public dataset of issues belonging to an Eclipse open-source project.