发布于 

DENATURE: duplicate detection and type identification in open source bug repositories

  • 论文下载地址: 下载链接
  • 作者: Ruby Chauhan, Shakshi Sharma, Anjali Goyal
  • 期刊: International Journal of System Assurance Engineering and Management
  • Affiliation: 印度可靠性工程、质量和运营管理协会(SREQOM)
  • 发表年份: 2023年
  • 关键词: Bug tracking system, Bug reports, Duplicate detection, Bug type identification, Similarity measures, Classification, Information retrieval techniques

摘要

在开源软件项目中,处理错误报告至关重要,但识别重复错误报告和确定其类型却是具有挑战性的任务。本研究提出了一个名为DENATURE的框架,旨在解决这一问题。该框架使用了排名方法和文本特征来检测重复错误报告,并引入了机器学习分类器进行错误类型的识别。实验结果表明,DENATURE在重复错误检测和错误类型识别任务中实现了高准确性,为提高开源软件项目的错误处理效率提供了有力支持。此外,本研究还讨论了参数选择、内部和外部有效性等方面的问题,以确保结果的可靠性。这一研究对于提高开源软件项目的可靠性和效率具有重要意义。

创新点与借鉴点

  1. 双重任务解决: 该研究不仅着眼于重复错误的检测,还致力于错误类型的识别。这种双重任务解决有助于更全面地提高错误处理的效率。

  2. 多种分类技术: 为错误类型识别,本研究使用了五种不同的分类技术,如朴素贝叶斯、k-最近邻、决策树、支持向量机和逻辑回归。这种多样性有助于找到最适合任务的分类方法。

  3. 文本特征在重复检测中的应用: 本文采用了文本特征来检测重复错误报告,这是一个有前景的方法,可以在其他领域中借鉴,例如自然语言处理和信息检索。

实验

实验数据集: - 使用了来自Eclipse项目的Bug报告数据集,总计45,296个报告。其中,有40,202个是可重现的错误报告,5,094个是不可重现的错误报告。

步骤 1: 数据预处理: - 使用Python的Natural Language Toolkit (NLTK)来进行停用词去除。 - 利用文本清理技术来处理错误报告描述,以提取有用的信息。

步骤 2: 重复错误报告检测: - 使用排名方法和文本特征来进行重复错误报告的检测。 - 通过计算相似性分数来确定报告之间的相似性。

步骤 3: 错误类型识别: - 针对非重复的错误报告,使用机器学习分类器将其分类为可重现(R)和不可重现(NR)两类。 - 使用五种不同的分类技术:朴素贝叶斯、k-最近邻、决策树、支持向量机和逻辑回归。

步骤 4: 集成学习在错误类型识别中的应用: - 采用四种基于集成的分类器,包括随机森林、AdaBoost、梯度提升和XGBoost,以进一步确定错误类型。

步骤 5: 性能评估: - 使用多种评估指标,包括Precision、Recall、F1 Score和Accuracy等,来评估重复错误检测和错误类型识别的性能。

外部和内部有效性考虑: - 关注实验结果的外部有效性,以确保结果在不同数据集和项目中的适用性。 - 关注实验环境中的内部有效性,以减小偏见和错误的影响。

总的来说,该实验方法结合了文本处理技术、排名方法、机器学习分类器和集成学习,以实现在开源软件项目中的重复错误检测和错误类型识别。

总结

  • (1): 本文研究背景是在开源软件故障库中解决重复错误报告检测和类型识别的问题。
  • (2): 过去方法包括排名、二进制和决策重复错误报告检测,但存在参数选择问题。本文提出的方法采用排名和文本特征,并引入机器学习进行类型识别,以提高效率。
  • (3): 本文的研究方法包括重复错误报告检测和错误类型识别。检测使用排名方法和文本特征,类型识别使用机器学习分类器。