基于图卷积神经网络的软件缺陷分派方法

李元香 ,  董夏磊 ,  项正龙 ,  喻飞 ,  吴泓润

武汉大学学报(理学版) ›› 2020, Vol. 66 ›› Issue (3) : 244 -252.

PDF (3587KB)
武汉大学学报(理学版) ›› 2020, Vol. 66 ›› Issue (3) : 244 -252. DOI: 10.14188/j.1671-8836.2019.0154
计算机科学

基于图卷积神经网络的软件缺陷分派方法

作者信息 +

Software Bug Triage Approach Based on Graph Convolutional Neural Network

Author information +
文章历史 +
PDF (3672K)

摘要

软件缺陷的高效自动分派是保障开源软件质量的重要手段。已有研究多基于机器学习技术,从缺陷报告的文本内容和开发者之间的关系入手,研究软件缺陷的自动分派,而对缺陷报告之间的相关关系和基于深度学习技术的缺陷自动分派关注甚少。针对此问题,本文提出了一种基于图卷积神经网络的开发者推荐方法。该方法利用带权重的余弦相似度构建缺陷报告网络,再在增量学习方法下训练图卷积神经网络模型用于开发者推荐。将近年提出的3种方法设置为实验对照组,在大型开源软件项目Eclipse和Mozilla数据集平台上分别进行实验,结果表明本文提出的方法平均推荐准确率比其他3种方法最高提升了60%和70%左右。

Abstract

Efficient automatic bug triage is an important means to guarantee the quality of open-source software. Most of the existing researches are based on the machine learning approach to study the bug triaging from the relationship between the text content of the bug reports and the relationship between developers. However, there is little attention to the correlation between bug reports and the deep learning based bug triaging method. Aiming at the problem of automatic bug triage, this paper proposes a developer recommendation method based on the graph convolutional neural network (GCN). Firstly, the bug reports network is constructed by using the cosine similarity with weights, and then the GCN network model is trained for developer recommendation under the incremental learning method. In this paper, three methods proposed in recent years are set as experimental control groups. Experiments are carried out on the large-scale open-source software project Eclipse and Mozilla datasets. The results show that the average recommended accuracy of the proposed method is about 60% and 70% higher than that of the other three methods.

Graphical abstract

关键词

缺陷分派 / 图卷积神经网络 / 开发者推荐 / 开源软件

Key words

bug triage / graph convolutional neural network (GCN) / developer recommendation / open-source software

引用本文

引用格式 ▾
李元香,董夏磊,项正龙,喻飞,吴泓润. 基于图卷积神经网络的软件缺陷分派方法[J]. 武汉大学学报(理学版), 2020, 66(3): 244-252 DOI:10.14188/j.1671-8836.2019.0154

登录浏览全文

4963

注册一个新账户 忘记密码

0  引 言

随着开源软件的使用人数、规模和复杂程度的日益增加,大量的软件缺陷被发现,并以缺陷报告的形式被提交到缺陷追踪系统[1]。将缺陷报告分派给合适的开发者修复(又称缺陷分派)是保障开源软件质量的重要环节。很多缺陷往往被错误地分派给不合适的开发者,导致缺陷报告需要被再分派。一个缺陷报告将被重复抛掷给下一个开发者,直至某一个开发者完成了缺陷的修复[2,3]。统计数据表明,Eclipse项目的一些缺陷甚至被抛掷数十次才能完成修复,而缺陷抛掷平均耗时约100天[4,5]

提高缺陷修复效率的最有效方法之一是将提交的缺陷自动推荐到最可能修复的开发者。目前,国内外学者主要从缺陷报告的文本内容和开发者之间的协作关系两方面研究缺陷自动分派的开发者推荐方法。早期的研究多基于文本分类方法[2,6,7,8,9],即以开发者作为分类的类别信息,从缺陷报告的摘要、描述和评论等文本内容提取文本特征,并训练机器学习模型实现为新提交的缺陷报告推荐最合适的开发者。另一方面,一些学者认为缺陷分派过程蕴含开发者间的协作,由此构造开发者协作网络(如开发者抛掷图)以辅助缺陷分派[5,10,11,12,13]。Zhang等[11]学者同时考虑缺陷报告的文本内容和开发者关系,即先根据缺陷报告的文本内容训练分类器给出候选开发者,再利用开发者协作网络对候选开发者进行优先级排名,优先级排名最高的开发者作为最终推荐结果。随着深度学习技术的日益成熟,一些学者开始基于深度学习模型研究缺陷分派[14,15,16,17]。Mani等[18]提出了一种基于注意机制的深度双向递归神经网络(DBRNN-A)模型,自动从缺陷报告的文本内容提取特征。Lee等[19]基于卷积神经网络(CNN)在JDT和Firefox数据平台实现开发者的推荐。

值得注意的是,除了缺陷报告的文本内容和开发者关系外,缺陷报告之间亦存在相关关系。两个缺陷报告可能在其被修复的开发者上存在相似性,也可能在缺陷报告文本内容上存在相似性。本文通过融合缺陷报告的摘要和缺陷修复者来定义缺陷报告之间的相似性,将缺陷报告表示为节点,以缺陷报告之间的相似关系为链边构建缺陷报告网络。然而,构建的缺陷报告网络属于非欧几里得数据,无法直接使用传统的机器学习和深度学习模型。图卷积神经网络(graph convolutional neural network,GCN)能对非欧几里得结构数据的节点特征信息与结构信息进行端对端学习,并适用于任意拓扑结构的网络[20,21]。因此,本文采用GCN模型来实现缺陷报告的开发者自动推荐。在Eclipse和Mozilla数据平台上,本文以增量学习法将网络中的节点划分为训练集和测试集,使用缺陷报告的预定义字段(项目和组件)作为节点的属性特征,并基于GCN模型为测试集上的缺陷报告推荐开发者。此外,本文进一步讨论了带权重与不带权重的缺陷报告网络对开发者推荐准确率的影响。在相同的数据平台上,本文选取了近年提出的基于深度学习和机器学习的缺陷分派方法作为实验对比。

1  软件缺陷分派的相关概念

1.1 软件缺陷报告

大型开源项目往往使用缺陷追踪系统来管理缺陷报告,其中Eclipse和Mozilla项目均使用Bugzilla系统管理[22]。如图1所示,Eclipse项目中ID号为284 540的缺陷报告信息主要包括:(a) 摘要(summary),(b) 预定义字段(pre-defined fields),(c) 描述(description),(d) 评论(comment)和(e) 修复历史(history)。其中,预定义字段描述缺陷报告的基本信息,例如缺陷报告的状态、提交时间、所属的平台和组件等信息;摘要、描述和评论3部分信息组成缺陷报告的文本内容。摘要和描述分别概括地和详细地报告缺陷的信息,评论部分记录了开发者对缺陷修复的讨论。修复历史记录了开发者修复缺陷过程(包括时间、动作和状态)。

1.2 软件缺陷自动分派

在缺陷追踪系统中,一个缺陷从被提交到被解决的生命周期如图2所示。软件缺陷在被提交时,被系统标记为“新提交”(NEW)状态。新提交的缺陷被管理员或者开发人员(按缺陷文本内容或缺陷的预定义字段等)分派给开发者D1,标记为“ASSIGNED”。若D1无法修复该缺陷,该缺陷被再分派(抛掷)给其他开发者,标记为“TOSSED”。开发者之间重复抛掷直至某开发者修复该缺陷,则被标记为修复完成状态“RESOLVED”。管理员或开发人员验证缺陷是否被修复,验证完成后,缺陷被标记为“关闭”(CLOSED)状态。

本文重点关注如何自动地为给定的缺陷报告推荐最可能将其修复的开发者,即图2中缺陷报告在“RESOLVED”状态之前的开发者指派过程。缺陷报告的生命周期中还存在其他的过程,例如,一些缺陷报告被开发者确认为无效、与其他缺陷重复或无法修复时,也会被标记为“RESOLVED”。此外,还有一些缺陷被修复完以后仍存在问题,继而被重新打开再分派。

1.3 缺陷报告网络的构建规则

当前的众多研究工作表明,软件缺陷报告之间的相似性是缺陷分派的重要依据之一。缺陷报告的相似度亦是本文构建缺陷报告网络的基础。

一些研究表明[16,17,23,24,25,26],除缺陷报告的摘要外,缺陷报告其他属性,如产品、组件和参与人属性也对缺陷分派的准确率有重要的影响。本文使用缺陷报告的参与人、产品、组件和摘要4个属性,基于余弦相似度来衡量缺陷报告间的相似度。任意两个缺陷报告 km 间的相似度s( k,m )的计算如下

s(k,m)=i=1n(ki×mi)i=1n(ki)2×i=1n(mi)2

其中,n表示缺陷报告向量的维度,kimi 分别为 km 的第i维分量。

针对有N个缺陷报告的数据集,我们将缺陷报告作为网络节点,令vi 表示图中的节点,V为网络的节点集,viV。由于邻接矩阵是网络图的常用存储表示,本文亦采用邻接矩阵 A 表示缺陷报告节点间的链边信息。若缺陷报告 km 之间的相似度s( k,m )大于或等于α,则Akm =1,即两个缺陷报告之间存在链边;反之,Akm =0,即 km 之间不存在链边,即

Akm=1,if  s(k,m)α0,if  s(k,m)<α

因此,根据公式(1)和(2)可以构建出缺陷报告网络G=(V,E, A ),其中,eij 表示vivj 间的链边,E为网络的链边集合,eijE

2  图卷积神经网络模型

2.1 基于半监督学习的图卷积神经网络

本文采用Defferrard等[20]和Kipf等[27]提出的半监督机制的图卷积神经网络模型(semi-supervised graph convolutional neural network,SGCN)来实现开发者的推荐。基于半监督学习的图神经网络模型的本质思想是:通过图(或网络)结构数据中部分被标记的节点训练神经网络结构模型,使网络模型预测出未标记节点的标签。针对缺陷报告网络G=(V,E, A ),节点vi 的特征向量记为 XiRDD为特征的维度。网络中节点的属性特征矩阵记为 XRN×D

SGCN模型在损失函数

Lloss=L0+λLreg

中引入图拉普拉斯正则化项

Lreg=i,jAijf(Xi)-f(Xj)2

来防止过拟合,其中L0为监督损失(即被标记的节点)。通过在输入图的邻接矩阵 A 上调整函数f(⋅),使得模型能从监督损失L0中分配梯度信息,从而能学习带标签或不带标签节点的表示。

2.2 图卷积操作

根据Weisfeiler-Lehman算法[28],将图上的谱卷积定义为节点特征向量 x 和卷积核gθ在傅里叶域上的积,图卷积定义为

gθx=UgθUTx

其中, U 是规范化图拉普拉斯的特征向量矩阵。SGCN模型采用切比雪夫多项式Tk (x)到K阶截断的卷积核,即它只依赖于距离中心节点(K阶邻域)最大K步的邻居节点。卷积核定义如下

gθ'(Λ)=k=0Kθk'Tk(Λ˜)

其中,Λ˜=2Λλmax-ININ 为单位矩阵,λmax为拉普拉斯矩阵 L 的最大特征值,θ'RK是切比雪夫系数的矢量。

基于卷积核(6)式,可以得到卷积如下

gθ'x=k=0Kθk'Tk(L˜)x

其中,L˜=2Lλmax-IN,当K=1,即只考虑一阶邻域中的节点,此时的卷积操作关于拉普拉斯矩阵 L 是线性的。因此,在这个线性卷积公式中,进一步将λmax近似等于2,则(7)式可简化为

gθ'xθ0'x+θ1'x(L-IN)x=θ0'x-θ1'D-12AD-12x

θ0'θ1'两个自由滤波参数在整个图上被共享。令θ=θ0'=θ1',将两个参数简化为一个参数,得到

gθ'xθ(IN+D-12AD-12)x

IN+D-12AD-12的取值为[0,2],重复这个卷积可能导致梯度爆炸或梯度消失,因此将IN+D-12AD-12归一化为IN+D˜-12AD˜-12。其中,A˜=A+INA 的带自环邻居矩阵,D˜为邻接矩阵A˜的度矩阵(D˜ii=jA˜ij)。将(9)式表达为更一般化,即在C维特征向量的节点和F个滤波器下,卷积(9)式可写为

ZD˜-12A˜D˜-12XΘ

其中,ΘRC×F为滤波器的参数矩阵,ZRN×F为卷积后的输出矩阵。

2.3 层间的传播

基于上述推导,SGCN模型使用

Hl=σ(D˜-12A˜D˜-12Hl-1Wl)

中的信号传播规则。其中, Wl 为特定层的可训练权重矩阵,σ()为激活函数, Hl 为第l层的激活矩阵。

2.4 基于SGCN模型的开发者推荐框架

SGCN模型结构如图3所示,输入端为采用1.3节的方法构建的缺陷报告网络G。模型的输出层为网络中的缺陷报告节点预测其标签类别(即开发者),即为输入网络中的缺陷报告推荐最适合的修复者。由于SGCN模型的训练遵循半监督学习机制,因此我们标记输入的缺陷报告网络中的一定比例节点,而另一部分比例节点未被标记。

图3中SGCN模型有2层隐藏层,其工作的流程为:首先将缺陷报告“描述”提取的文本特征作为节点的特征X,并计算邻接矩阵Â=D˜-12A˜D˜-12,将其输入到SGCN网络中,在输出层得到

M=Softmax(ÂRelu(ÂXW(0))W(1))

所示节点的预测标签 Z (即预测的开发者)。其中, W(0)为输入层和隐藏层Ⅰ之间的权重矩阵, W(1)为隐藏层Ⅱ和输出层之间的权重矩阵。

针对SGCN的半监督分类问题,将所有标签节点的期望交叉熵作为损失函数,如下

Lloss=-lylf=1FYlflnZlf

其中, Y 为真实标签,yl 表示有标签的节点,F为标签(即开发者)的数量。

3  实验结果与分析

3.1 数据收集与处理

我们在Bugzilla缺陷追踪平台,设置爬虫的检索为“已验证”和“已修复”状态,爬取2001—2011年间Eclipse和Mozilla开源软件项目上的22 000条缺陷报告。爬取的缺陷报告包括产品(product)和组件(component)等预定义字段、缺陷报告的修改历史信息以及缺陷的文本信息(摘要、描述和评论)。本文只提取缺陷报告的产品和组件两个预定义字段,并从缺陷的修改历史纪录中提取修复人(fixer)。本文实验中两个数据集平台如表1所示,Eclipse和Mozilla分别包括750和1 330个开发者。同时,Eclipse包括167个产品和783个组件,Mozilla包括6个产品和85个组件。

我们提取摘要和描述作为缺陷报告的文本内容。与其他研究中自然语言数据的预处理过程相似,对于缺陷报告的文本内容,依次对摘要和描述进行清洗(去数字、去标点符号和去非字母字符)、分词、去停用词、词干提取等处理。

3.2 实验方案

由于获取的缺陷报告数据具有时序性,本文所有实验采用基于折叠训练与验证(folding-based training and validation)的增量学习方法[29]。首先,按缺陷报告的修复完成的关闭时间,顺序地对Eclipse和Mozilla数据集排序,并将两个数据集均匀等分为n份。第1次实验时,使用第1份数据作为训练集,并将第2份作为测试集。第2次实验时,将第2份数据加到训练集,将第3份数据作为测试集。一般来说,在第i次实验时,用前i份数据作为训练集,第i+1份数据作为测试集。增量学习法划分训练集和测试集示意图如图4所示。与Bhattacharya等[29]的划分方法类似,在增量学习方法中设置n=10,即数据被划分为10份。

3.3 本文方法实验

SGCN模型的实现以TensorFlow为深度学习库,模型的隐藏层深度设置为2,在Intel(R) Xeon(R) CPU E5-2660 v3(2.60 GHz)和Tesla V100 GPU的配置环境下运行实验。所有实验的学习率为0.01,dropout设置为0.5,最大迭代期为1 000。神经网络的权重 W(0)W(1)采用批量梯度下降进行训练。

表2表3为SGCN模型分别在Eclipse和Mozilla数据集上的Top-N推荐结果,本文设置N分别为1、3、5和10。为了减少实验误差[30],每次实验重复运行20次,本实验结果均为平均值。数据集的划分方法采用n=10的增量学习方法,训练集比例从0.1增长至0.9。构建缺陷报告网络的阈值α设置为0.95.

表2和3中的结果显示,随着训练集样本比例的增加,Top-1推荐准确率缓慢增加。在Eclipse数据集平台上,在0.9比例的训练集时SGCN模型的Top-10推荐准确率达到0.98。表3中Mozilla数据集平台上的结果表明,最高推荐准确率达到0.95。此外,在训练集比例不变的情况下,随着K增加(即推荐人数的增加),推荐准确率也大幅上升。验证了本文提出方法的有效性。

3.4 对比实验

本文设置了4组对比实验来验证本文提出的SGCN模型的有效性,其中第1组为考虑缺陷报告间链边权重下基于GCN模型的开发者推荐模型(记为Ga);第2、3组分别为近两年提出的缺陷自动分派的开发者推荐新方法[18,31],即Wu等[31]提出的基于开发者因素的机器学习方法(记为Gb)和Mani等[18]基于递归神经网络的深度学习方法(记为Gc);第4组为Mani等在文献[18]使用的组合BOW(Bag of Words)和多项式贝叶斯(MNB)模型的开发者推荐方法(记为Gd)。

第1组模型(Ga)中,缺陷报告网络上链边的权重定义如下

wi,j=s(i,j)

即将两个缺陷报告间的相似程度作为链边间的权重。

第2组对比方法(Gb)使用作者在文献[31]中配置的支持向量机模型的参数,模型的输入特征为开发者的修复主题和开发者的工作空间(包括工作产品和工作组件)。

第3组对比方法(Gc)使用文献[18]中作者在DBRNN-A模型配置的参数,即300个LSTM单元、丢弃概率(dropout probability)为0.3、学习率为0.001以及epoch设置为100。

第4组对比方法(Gd)使用文献[18]中作者为BOW+MNB模型组合设置的参数,句子的最短长度为15个词,最小的单词词频设置为5。

在Eclipse和Mozilla数据平台上,表2和3中不考虑缺陷报告网络权重下SGCN模型的推荐结果(记为SGCN)与4组实验的对比结果如图5图6所示。为了给出清晰的实验对比结果,图5图6中仅展示训练集比例0.5~0.9的推荐准确率。

图5(a)中Top-1的推荐结果显示,整体上,考虑缺陷报告网络链边权重(Ga组)的推荐准确率比不考虑权重(SGCN组)的略有增加,说明考虑缺陷报告网络链变权重能够一定程度提高开发者推荐的准确率。相比于其他3组(Gb、Gc和Gd)实验中的方法,在相同的训练集比例下,图5(a~d)中基于GCN模型(SGCN组和Ga组)比其他3组方法的推荐准确率均有很大的提升,最高提升为60%左右。并且,随着推荐的开发者数量的增加,推荐准确率也大幅提高。此外,相比于其他实验组,Gc组(文献[18]中的DBRNN-A模型)的推荐准确率最低,在0.9比例训练样本时Top-1的推荐准确率在0.2左右。

在Mozilla平台数据集上,图6中Top-1、Top-3、Top-5和Top-10的推荐结果同样表明,基于GCN模型远高于其他3组模型的推荐准确率。其中,基于GCN模型并考虑权重(Ga组)时的推荐准确率略高于不考虑权重时(SGCN)的推荐准确率;此外,3组模型Gb、Gc和Gd的推荐准确率从高到低依次是Gb组模型(文献[31]中基于开发者因素的SVM模型),Gd组模型(文献[18]中的DBRNN-A模型)和Gc组模型(文献[18]中的BOW+MNB模型)。基于GCN的SGCN模型和Ga组模型比Gb、Gc和Gd的推荐准确率最高提升了70%左右。

图5图6中的推荐准确率说明,本文提出的基于图卷积神经网络的缺陷报告修复者推荐方法比其他主流方法更具优势。

3.5 相似度阈值α对准确率的影响

由(2)式可知,缺陷报告网络的构建与阈值α有关。我们以训练集与测试集0.50.5的比例,在相同的数据集上(见表1)研究阈值α[0,1]对推荐准确率的影响。以Top-1推荐准确率为例,在图7中研究α对推荐结果的影响,每组α取值下的推荐结果为实验执行20次的平均结果。随着α的增加,Eclipse和Mozilla数据集平台上的开发者推荐准确率呈增加趋势。

该实验结果与α的作用原理一致。α越大,构建的缺陷报告网络上的两个报告节点的相似度越高,因而SGCN模型通过链接的邻居关系找到相似开发者的准确率也将越高。

4  结 语

传统的缺陷分派方法多从文本内容上考虑缺陷报告之间的相似性,而忽视了从多方面属性刻画缺陷报告之间的相似性。针对该问题,本文从修复人、产品、组件和摘要4个属性考虑缺陷报告之间的相关关系来构建缺陷报告网络,进而基于图卷积神经网络模型为缺陷报告推荐最可能的Top-N开发者。本文将近年基于机器学习和深度学习的缺陷分派研究的3种新方法设置为实验对照组,以增量学习法划分网络节点为训练集和测试集。实验结果表明,基于图卷积神经网络模型的开发者推荐准确率远高于对照组的推荐准确率。在Eclipse数据平台上,基于图卷积神经网络模型的Top-1推荐准确率比3组对照组的方法最高提升了60%左右;在Mozilla数据平台上的推荐准确率比3个对照组的方法最高提升了70%左右。验证了本文提出的基于图卷积神经网络的软件缺陷分派方法的有效性。下一步将考虑在更大规模数据集上,基于空间的图卷积神经网络模型实现的高准确率的缺陷分派。

参考文献

[1]

ZHANG J, WANG X Y, HAO D, et al. A survey on bug-report analysis [J]. Science China (Information Sciences), 2015, 58(2): 21101.

[2]

ANVIK J, HIEW L, MURPHY G C. Who should fix this bug? [C]// Proceedings of the 28th International Conference on Software Engineering. New York: ACM, 2006: 361-370. DOI:10.1145/1134285.1134336 .

[3]

ANVIK J. Automating bug report assignment [C]// Proceedings of the 28th International Conference on Software Engineering. New York: ACM, 2006: 937-940. DOI:10.1145/1134285.1134457 .

[4]

LIU S. Projected revenue of open source software from 2008 to 2020 [DB/OL]. [2019-02-12].

[5]

JEONG G, KIM S, ZIMMERMANN T. Improving bug triage with bug tossing graphs [DB/OL]// [2019-04-06].

[6]

LIN Z P, SHU F D, YANG Y, et al. An empirical study on bug assignment automation using Chinese bug data [C]// Proceedings of the 2009 3rd International Symposium on Empirical Software Engineering and Measurement.New York: IEEE, 2009: 451-455. DOI:10.1109/ESEM.2009.5315994 .

[7]

XIE X H, ZHANG W, YANG Y, et al. Dretom: Developer recommendation based on topic models for bug resolution [C]// Proceedings of the 8th International Conference on Predictive Models in Software Engineering.New York: ACM, 2012: 19-28. DOI:10.1145/2365324.2365329 .

[8]

NAGUIB H, NARAYAN N, BRUEGGE B, et al. Bug report assignee recommendation using activity profiles [C]// Proceedings of the 10th Working Conference on Mining Software Repositories. New York: IEEE Press, 2013: 22-30. DOI:10.1109/MSR.2013.6623999 .

[9]

XIA X, LO D, DING Y, et al. Improving automated bug triaging with specialized topic model [J]. IEEE Transactions on Software Engineering, 2017, 43(3): 272-297.

[10]

BERTRAM D, VOIDA A, GREENBERG S, et al. Communication, collaboration, and bugs: The social nature of issue tracking in small, collocated teams [C]// Proceedings of the 2010 ACM Conference on Computer Supported Cooperative Work. New York: ACM, 2010: 291-300. DOI:10.1145/1718918.1718972 .

[11]

ZHANG W Q, NIE L M, JIANG H, et al. Developer social networks in software engineering: Construction, analysis, and applications [J]. Science China (Information Sciences), 2014, 57(12): 1-23.

[12]

BHATTACHARYA P, NEAMTIU I. Fine-grained incremental learning and multi-feature tossing graphs to improve bug triaging [C]// 2010 IEEE International Conference on Software Maintenance. New York: IEEE Press, 2010: 1-10. DOI:10.1109/ICSM.2010.5609736 .

[13]

WU W J, ZHANG W, YANG Y, et al. Drex: Developer recommendation with K-nearest-neighbor search and expertise ranking [C]// 2011 18th Asia⁃Pacific Software Engineering Conference. New York: IEEE Press, 2011: 389-396. DOI:10.1109/APSEC.2011.15 .

[14]

ZHANG T, LEE B. An Automated Bug Triage Approach: A Concept Profile and Social Network Based Developer Recommendation [M]. Berlin: Springer, 2012: 505-512.

[15]

PARK J W, LEE M W, KIM J, et al. Cost-aware triage ranking algorithms for bug reporting systems [J]. Knowledge and Information Systems, 2016, 48(3): 679-705.

[16]

ZHANG W, WANG S, WANG Q. Ksap: An approach to bug report assignment using KNN search and heterogeneous proximity [J]. Information and Software Technology, 2016, 70:68-84. DOI:10.1016/j.infsof.2015.10.004 .

[17]

WANG S, ZHANG W, YANG Y, et al. Devnet: Exploring developer collaboration in heterogeneous networks of bug repositories [C]// 2013 International Symposium on Empirical Software Engineering and Measurement. New York: IEEE Press, 2013: 193-202. DOI:10.1109/ESEM.2013.24 .

[18]

MANI S, SANKARAN A, ARALIKATTE R. Deeptriage: Exploring the effectiveness of deep learning for bug triaging [C]// Proceedings of the ACM India Joint International Conference on Data Science and Management of Data. New York: ACM, 2019: 171-179. DOI:10.1145/3297001.3297023 .

[19]

LEE S R, HEO M J, LEE C G, et al. Applying deep learning based automatic bug triager to industrial projects [C]// Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering. New York: ACM, 2017: 926-931. DOI:10.1145/3106237.3117776 .

[20]

DEFFERRARD M, BRESSON X, VANDERGHEYNST P. Convolutional neural networks on graphs with fast localized spectral filtering [C]// Proceedings of the 30th International Conference on Neural Information Processing Systems. New York: Curran Associates Inc, 2016: 3844-3852. DOI:10.1109/MSP.2017.2693418 .

[21]

ZHANG Z W, CUI P, ZHU W W. Deep learning on graphs: A survey [DB/OL].[2019-04-21].

[22]

SERRANO N, CIORDIA I. Bugzilla, itracker, and other bug trackers [J]. IEEE Software, 2005, 22(2): 11-13.

[23]

AHSAN SN, FERZUND J, WOTAWA F. Automatic software bug triage system (BTS) based on latent semantic indexing and support vector machine [C]// 2009 4th International Conference on Software Engineering Advances. New York: IEEE, 2009: 216-221. DOI:10.1109/ICSEA.2009.92 .

[24]

SHOKRIPOUR R, ANVIK J, KASIRUN Z M, et al. Why so complicated?Simple term filtering and weighting for location-based bug report assignment recommendation [DB/OL].[2019-04-23].

[25]

XIA X, LO D, WANG X Y, et al. Accurate developer recommendation for bug resolution [DB/OL].[2019-03-03].

[26]

XIA X, LO D, WANG X Y, et al. Dual analysis for recommending developers to resolve bugs [J]. Journal of Software: Evolution and Process, 2015, 27(3): 195-220.

[27]

KIPF T N, WELLING M. Semi-supervised classification with graph convolutional networks [DB/OL].[2019-05-05].

[28]

SHERVASHIDZE N, SCHWEITZER P, JAN E, et al. The Weisfeiler-Lehman method and graph isomorphism testing [J]. Journal of Machine Learning Research, 2011, 12(2011): 2539-2561.

[29]

BHATTACHARYA P, NEAMTIU I, SHELTON C R. Automated, highly-accurate, bug assignment using machine learning and tossing graphs [J]. Journal Systems Software, 2012, 85(10): 2275-2292.

[30]

WITTEN I H, FRANK E, HALL M A, et al. Data Mining: Practical Machine Learning Tools and Techniques [M]. San Francisco:Morgan Kaufmann, 2012.

[31]

WU H R, LIU H Y, MA Y T. Empirical study on developer factors affecting tossing path length of bug reports [J]. IET Software, 2018, 12(3): 258-270.

基金资助

国家自然科学基金(61672391)

福建省高校重大教育教学改革研究项目(FBJG20180015)

AI Summary AI Mindmap
PDF (3587KB)

0

访问

0

被引

详细

导航
相关文章

AI思维导图

/