摘要
当软件缺陷报告在跟踪系统中被指派给开发人员进行缺陷修复之后,缺陷修复人员就需要根据提交的缺陷报告来进行软件缺陷定位,并做出相应的代码变更,以修复该软件缺陷.在缺陷修复的整个过程中,软件缺陷定位占用了开发人员大量的时间.提出了一种方法级别的细粒度软件缺陷定位方法MethodLocator,以提高软件修复人员的工作效率.MethodLocator首先对缺陷报告和源代码方法体利用词向量(word2vec)和TF-IDF结合的方法进行向量表示;然后,根据源代码文件中方法体之间的相似度对方法体进行扩充;最后,通过对扩充后的方法体和缺陷报告计算其余弦距离并排序,来定位为修复软件缺陷所需做出变更的方法.在4个开源软件项目Argo UML、Ant、Maven和Kylin上的实验结果表明,MethodLocator方法优于现有的缺陷定位方法,它能够有效地将软件缺陷定位到源代码的方法级别上.
When a software bug report is assigned to a developer for bug resolution, the developer needs to locate the bug in a source code file and make code changes correspondingly to resolve the software bug. In fact, most of time of the developer is spent on bug location in the whole process of bug resolution. This study proposes a method level fine-grained bug location approach, called MethodLocator, to improve the efficiency of software bug resolution. Firstly, it takes the vector representation of the bug report and the source code method body using the word vector (Word2Vec) and TF-IDF. Secondly, MethodLocator augments method body of each method based on similarities among all method bodies in the source code files. Thirdly, MethodLocator locates methods for change to resolve the bug based on similarities between the bug report and the augmented methods. Experimental results on four open source software projects as ArgoUML, Ant, Maven, and Kylin demonstrate that MethodLocator is better than state-of-the-art techniques in method level bug location.
作者
张文
李自强
杜宇航
杨叶
ZHANG Wen;LI ZI-Qiang;DU Yu-Hang;YANG Ye(School of Economics and Management, Beijing University of Chemical Technology, Beijing 100029, China;College of Economics and Management, Beijing University of Technology, Beijing 100124, China)
出处
《软件学报》
EI
CSCD
北大核心
2019年第2期195-210,共16页
Journal of Software
基金
国家自然科学基金(61379046
61432001)
西安市科技计划(2016CXWL21)~~