发布于 

一种新的通过查询扩展进行方法级精细化缺陷定位的方法

  • 论文下载地址: 下载链接
  • 作者: Wen Zhang, Ziqiang Li, Qing Wang, Juan Li
  • 学校: 北京工业大学
  • 发表: IEEE 1st International Workshop on Intelligent Bug Fixing (IBF)
  • 发表年份: 2019年
  • 关键词: Bug localization, Method-level, Query expansion, Software quality assurance, Information retrieval

摘要

本文介绍了一种名为FineLocator的方法,用于在方法级别进行精细化的缺陷定位。传统的缺陷定位方法通常是在文件级别进行的,而FineLocator通过查询扩展的方式实现了方法级别的缺陷定位。文章描述了FineLocator方法的关键概念和步骤,包括计算方法之间的调用依赖关系、使用TF-IDF计算方法表示、引入语义相似性和时间接近性等增强因素,以及将bug报告和方法转换为数值向量的过程。

文章还进行了实验评估,使用了五个不同的项目进行测试。实验结果显示,FineLocator方法在Top-5和Top-10度量上都取得了显著的性能提升,证明了其在方法级别缺陷定位任务中的有效性。这篇文章的研究有助于改善软件质量保证过程中的缺陷定位方法,提高了精细化定位的准确性和效率。您可以在文章的链接中找到更详细的信息。

创新点与借鉴点

创新点

  1. FineLocator方法: 本文提出了FineLocator方法,这是一种用于方法级别的细粒度Bug定位的新方法。FineLocator采用了语义相似性、时间接近性和调用依赖性等多种因素,以扩展方法并提高Bug定位准确性。这种方法在提高Bug定位精度方面具有显著的创新性。

  2. 跨项目Bug定位挑战: 文章指出,与工作量估计和缺陷预测不同,跨项目Bug定位研究较少。作者强调了Bug报告和源代码在不同项目之间的差异,使得跨项目Bug定位成为一个具有挑战性的任务。这一观点突出了在这一领域的创新性工作潜力。

借鉴点

  1. 数据校准与适应性: 本文强调了在软件开发模型中使用来自其他组织或项目的数据进行校准和改进的重要性。这个思想可以借鉴到其他软件工程领域,如项目规划和风险管理,以提高模型的准确性和适应性。

  2. 跨项目缺陷预测: 文章提到了使用来自其他项目的缺陷数据来构建缺陷预测模型的方法。这个思路可以启发其他研究者在不同软件项目之间共享和应用缺陷数据以提高缺陷预测的可靠性。

  3. 未来工作: 本文提出了未来工作的方向,包括改进FineLocator方法以更好地利用Bug报告和源代码的信息,以及扩展FineLocator以解决跨项目Bug定位问题。这些未来工作的思路可以在其他研究中用于改进和扩展相关方法和技术。

实验与方法

实验

实验数据集: 作者使用了五个不同的软件项目作为实验数据集,以评估FineLocator方法的性能。这些项目包括了不同的应用领域和规模,从而增加了实验的多样性和可信度。

性能指标: 作者使用了多个性能指标来评估FineLocator方法的效果。其中包括Top-N Rank、Mean Average Precision(MAP)、Mean Reciprocal Rank(MRR)等指标,这些指标用于衡量方法的Bug定位准确性和效率。

对比方法: 为了评估FineLocator的性能,作者将其与其他两种方法(BugLocator和BLIA1.5)进行了比较。这些方法代表了当前领域内的主要技术,用于评估FineLocator在方法级别Bug定位上的优越性。

参数调优: 作者对FineLocator方法中的参数进行了调优,以找到最佳的参数设置。这有助于确保FineLocator在不同项目上的性能优化。

跨项目实验: 文章中还进行了跨项目实验,以研究FineLocator在不同项目之间的泛化能力。这有助于理解方法是否可以在不同上下文中成功应用。

方法

FineLocator方法: 本文的核心方法是FineLocator,它用于方法级别的Bug定位。FineLocator方法包括了多个步骤,包括方法提取、方法扩展和相似性计算。方法扩展的过程利用了语义相似性、时间接近性和调用依赖性等因素,以增强方法的表达,从而提高Bug定位准确性。

语义相似性计算: FineLocator方法使用词嵌入技术(word2vec)来计算Bug报告和源代码方法之间的语义相似性。这有助于衡量它们之间的关联程度。

调用依赖性计算: FineLocator还计算方法之间的调用依赖性,以了解它们之间的关系。这有助于确定哪些方法更有可能与特定的Bug报告相关。

参数控制: FineLocator方法中有一些参数需要进行控制和调优,以确保方法在不同项目和上下文中的性能最佳化。

总结

  • (1): 这篇文章研究背景是关于软件质量保证中缺陷定位的重要性以及方法级别的精细化缺陷定位方法的需求。

  • (2): 过去的方法包括BugLocator等,但它们存在着静态文件级别定位的限制和效率问题。本文的方法通过查询扩展,以方法级别的精细度进行缺陷定位,解决了这些问题,并提出了一种新的方法 FineLocator。

  • (3): 本文的研究方法包括计算方法之间的调用依赖关系、使用TF-IDF计算方法表示、引入语义相似性、时间接近性等增强因素,以及将bug报告和方法转换为数值向量的步骤。

  • (4): 本文方法在五个项目上进行了实验,取得了显著的性能提升,特别是在Top-5和Top-10度量上。这表明FineLocator方法在方法级别的缺陷定位任务上表现出色,支持了其研究目标。