首页> 中国专利> 一种基于多特征缺陷再分配图分配缺陷报告的方法

一种基于多特征缺陷再分配图分配缺陷报告的方法

摘要

基于多特征缺陷再分配图分配缺陷报告的方法综合运用机器学习模型和缺陷再分配图预测缺陷修复人员,用已修复的缺陷报告中开发人员之间的再分配关系,将再分配关系转化为缺陷再分配图,使用机器学习模型预测完缺陷报告开发人员后,结合缺陷再分配图更新缺陷报告开发人员,完成缺陷报告修复人员的预测;具体方法为以下步骤:步骤1)对选取的缺陷报告数据集进行分类,分为训练集和测试集;步骤2)用训练集来训练机器学习模型和创建缺陷再分配图;步骤3)用机器学习模型预测测试集的缺陷修复人员;步骤4)结合缺陷再分配图更新缺陷修复人员;通过使用本发明的方法,能有效地减少缺陷再分配的路径长度,提高缺陷分配的预测精度,降低缺陷修复人员搜索的失败率。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-03-01

    未缴年费专利权终止 IPC(主分类):G06F11/36 授权公告日:20150401 终止日期:20180307 申请日:20120307

    专利权的终止

  • 2018-02-09

    专利实施许可合同备案的注销 IPC(主分类):G06F11/36 合同备案号:2016320000213 让与人:南京邮电大学 受让人:江苏南邮物联网科技园有限公司 解除日:20180116 申请日:20120307

    专利实施许可合同备案的生效、变更及注销

  • 2016-12-14

    专利实施许可合同备案的生效 IPC(主分类):G06F11/36 合同备案号:2016320000213 让与人:南京邮电大学 受让人:江苏南邮物联网科技园有限公司 发明名称:一种基于多特征缺陷再分配图分配缺陷报告的方法 申请公布日:20120808 授权公告日:20150401 许可种类:普通许可 备案日期:20161118 申请日:20120307

    专利实施许可合同备案的生效、变更及注销

  • 2015-04-01

    授权

    授权

  • 2012-10-03

    实质审查的生效 IPC(主分类):G06F11/36 申请日:20120307

    实质审查的生效

  • 2012-08-08

    公开

    公开

查看全部

说明书

技术领域

本发明涉及一种缺陷分配的方法,主要利用缺陷报告的分配历史创建缺陷再分配图,结 合缺陷再分配图实现缺陷报告的分配,属于数据挖掘和机器学习领域。

背景技术

缺陷是软件中的错误,表示给定需求的软件开发过程中的一些意外行为[1]。及时的识别 和纠正软件缺陷对软件工程实践来说至关重要,为了处理大量的缺陷报告,软件追踪系统如 Bugzilla已被广泛使用,而大部分缺陷报告都是手动地分配开发人员,这种分配方式既耗时又 浪费人力;Mozilla和Eclipse工程每天会接收几百个缺陷报告,再从几千个开发人员中选择 一个开发人员来修复这个报告;为缺陷报告分配好开发人员后,开发人员还会将缺陷报告分 配给其他的开发人员,即缺陷报告再分配;软件工程中几乎有一半的缺陷报告会出现再分配, 缺陷报告再分配会增加缺陷修复过程的耗时,及时准确地为缺陷报告找到开发人员,可以提 高缺陷修复的效率[2]。

Syed Nadeem Ahsan提出基于潜在语义索引和支持向量机的自动缺陷分配系统,选取部分 已经修复的缺陷报告作为数据集,获取缺陷报告的词条文档矩阵和修复缺陷报告的开发者信 息,用处理好的数据集训练机器学习模型,该方法虽能自动为缺陷分配开发人员,但分配的 准确率很低[3];Gaeul Jeong提出了基于缺陷再分配图的缺陷分配,该方法利用已经修复的 缺陷报告训练机器学习模型和创建缺陷再分配图,用缺陷再分配图更新缺陷修复人员,该方 法较好地提高了缺陷分配的准确率,但搜索失败率还是较高。

Pamela Bhattacharya提出使用基于细粒度的逐渐积累学习和多特征的缺陷再分配图提 高缺陷再分配[4],该方法是选取一部分已经修复的缺陷报告,建立一个缺陷再分配图,并将 开发人员修复的缺陷所属的产品和部件,以及开发人员最后修复的时间加入缺陷再分配图, 在训练机器学习模型时,用测试集中的每个缺陷报告更新训练集和缺陷再分配图,该方法能 有效地提高缺陷分配的预测精度,但该方法很耗时;

[1]Naresh Kumar Nagwani and Dr.Shrish Verma.Predictive Data Mining Model for Software Bug  Estimation Using Average Weighted Similarity.Advance Computing Conference(IACC),2010 IEEE 2nd International.page(s):373-378.

[2]G.Jeong,S.Kim,and T.Zimmermann,“Improving bug triage with bug tossing graphs,”in  Proceedings of the 7th joint meeting of the European software engineering conference and the  ACM SIGSOFT symposium on The foundations of software engineering on European software  engineering conference and foundations of software engineering symposium.ACM,2009,pp. 111-120.

[3]Syed Nadeem Ahsan,Javed Ferzund and Franz Wotawa.“Automatic Software Bug Triage System(BTS) Based on Latent Semantic Indexing and Support Vector Machine”.2009Fourth International Conference on  Software Engineering Advances.IEEE.2009.

[4]P.Bhattacharya and I.Neamtiu,“Fine-grained incremental learning and multi-feature tossing graphs to  improve bug triaging,”Proc.IEEE Intl.Conf.Software Maintenance(ICSM 10),IEEE,Sept.2010,pp.1-10.

发明内容

技术问题:本发明的目的是提供一种基于多特征缺陷再分配图分配缺陷报告的方法。以 往预测方法主要通过机器学习模型来预测缺陷修复人员,该方法预测精度低,不能有效处理 缺陷再分配问题以及减少再分配路径长度。本发明提出的基于多特征的缺陷再分配图预测缺 陷修复人员方法,结合缺陷再分配图,找到缺陷修复人员之间的关系,再综合考虑缺陷修复 者已修复缺陷所属的产品和部件,及缺陷修复者最后参与 缺陷修复的时间,预测缺陷修复人员。

技术方案:本发明的一种基于多特征缺陷再分配图分配缺陷报告的方法主要分为以下步 骤:

一.训练阶段:获取数据集中标记为已修复的缺陷报告,训练机器学习模型和建立 缺陷再分配图;

步骤1)读入取缺陷报告,选取标记为已修复的缺陷报告;

步骤2)将步骤1)得到的缺陷报告按时间排序,平均分成十份,九份用于训练机器学习 模型,一份用于测试集;

步骤3)逐一读取训练集中的缺陷报告,获取修复缺陷报告的开发人员之间的再分配路径 关系,即A→B→C→D;其中A表示修复缺陷报告的第一个开发人员,A不能修复该缺陷报 告,则将缺陷报告再分配给开发人员B,B也不能修复,将缺陷报告再分配给开发人员C,C再 分配给开发人员D,缺陷报告最终由开发人员D修复;

步骤4)将由步骤3)得到的再分配关系转化面向目标的路径图,即A→D,B→D,C→D, 用公式(1)计算各个开发人员之间的状态转移概率,绘制缺陷再分配图;

其中,m表示由开发人员D再分配给开发人员Dj的缺陷数目,n表示由开发人员D再分配的所 有缺陷数目,D→Di表示由开发人员D分配给开发人员Di,开发人员Di不一定完成缺陷报 告的修复,D→Dj表示缺陷报告由开发人员D再分配给开发人员Dj,且Dj将缺陷报告修复;

步骤5)读取测试集中的第一条缺陷报告,记为bnew,提取该缺陷报告“题目”和“描述” 信息;

步骤6)读取训练集中的第一条缺陷报告,记为b,并提取“题目”和“描述”信息,用 公式(2),计算缺陷报告的相似度,记为S;

Similarity(q1,q2)=Σi=1nw1iw2iΣi=1nw21i×Σi=1nw22i---(2)

其中,将缺陷报告的“题目”和“描述”转化为n维向量,记为(w1,w2,...,wn),w是缺陷报 告中的单词,n表示缺陷报告中单词的数目,wi表示第i个单词在向量中的权重,w1i表示第 1个缺陷报告中第i个单词的权重,w2i表示第2个缺陷报告中第i个单词的权重; q1=(w11,w12,...,w1n)表示选取的测试集的缺陷报告,q2=(w21,w22,...,w2n)表示选取的训练集的 缺陷报告;

步骤7)比较由步骤6)得到的相似度S和预先给定的相似度阈值T,如果S≥T,则将选取 的测试集中的缺陷报告bnew加入缺陷报告集合L中;

步骤8)重复步骤6)和步骤7)直至计算完训练集中所有的缺陷报告;

步骤9)读取集合L中的第一条缺陷报告,将修复该缺陷报告的开发人员提取出来,加入 节点集合;

步骤10)重复步骤9)直至提取完集合L中的所有缺陷报告,用节点集合中的开发人员, 创建缺陷再分配子图;

二.训练阶段,结合机器学习模型和缺陷再分配子图,预测缺陷报告的开发人员

步骤11)使用数据挖掘工具来将步骤2)中得到的文本文件进行格式转换,转换结果是将 所有缺陷报告的内容都写入一个.arff格式的文件中;

步骤12)读取测试集中缺陷报告,提取该缺陷报告所属的产品和部件信息;

步骤13)用朴素贝叶斯分类器预测修复该缺陷报告的预测开发人员列表,选择排名前五 的开发人员记为{D1,D2,D3,D4,D5};

步骤14)结合由步骤10)得到的缺陷再分配子图,用公式(3)更新开发人员列表; Rank(Tk)=Pr(Di→Tk)+Matched Product(Tk)+MatchedComponent(Tk)+LastActivity(Tk)  (3)

Pr(Di→Tk)表示开发人员Di和开发人员Tk之间的再分配转移概率,Matched Product(Tk) 判定开发人员Tk修复的缺陷报告所属的产品类型,如果修复预测的缺陷报告和Tk修复的缺陷 产品一样,则Matched Product(Tk)取值1,否则取值为0;MatchedComponent(Tk)判定开发人员Tk修复的缺陷报告所属的部件类型和缺陷报告部件类型是否一致,一样取值1,否则0;如果开 发人员Tk最后参与缺陷修复时间在100天之内,则LastActivity(Tk)取值1,否则为0;

步骤15)由步骤14)可得到新的缺陷修复人员列表{D1,T1,D2,T2,D3,T3,D4,T4,D5,T5},选取排 名前五的开发人员即{D1,T1,D2,T2,D3};

步骤16)重复步骤12)到步骤15)直至完成所有测试集中缺陷报告的预测。

有益效果:本发明方法综合运用机器学习模型和缺陷再分配图预测缺陷修复人员,用已 修复的缺陷开发人员之间的关系建立缺陷再分配图,预测新的缺陷的修复人员;通过使用本 发明的方法,能有效地减少缺陷再分配的路径长度,提高缺陷分配的预测精度,降低缺陷修 复人员搜索的失败率。

附图说明

图1是利用机器学习模型和缺陷再分配图预测缺陷修复人员的流程图。

图2是缺陷报告再分配路径图和开发人员之间的状态转移概率,其中A,B,C,D和E都是 修复缺陷报告的开发人员,A→B→C→D表示缺陷报告分配给开发人员A后,由A再分配 给开发人员B,再由B再分配给开发人员C,开发人员C再分配给D,由开发人员D修复缺陷 报告。

图3是基于缺陷报告开发人员的再分配图,其中箭头表示开发人员之间的转移关系,箭 头上的数字表示状态转移概率值。

具体实施方式

本发明提出的利用缺陷再分配图为缺陷报告分配开发人员的方法,是一种基于缺陷再分 配图和相似度预测缺陷修复者的方法。提取数据集中已修复的缺陷报告,将缺陷报告分为训 练集和测试集,用训练集训练机器学习模型和建立缺陷再分配图,用机器学习模型预测新缺 陷的修复人员,再用缺陷再分配图更新缺陷修复人员列表,选取排名前五的缺陷修复人员。 整个方法包括提取缺陷报告,训练机器学习模型,建立缺陷再分配图,缺陷修复人员的预测 与评估等四大模块。

利用机器学习模型与缺陷再分配图实现缺陷分配的方法需要以下步骤:

步骤1)对选取的缺陷报告数据集进行分类,分为训练集和测试集;

步骤2)用训练集来训练机器学习模型和创建缺陷再分配图;

步骤3)用机器学习模型预测测试集的缺陷修复人员;

步骤4)结合缺陷再分配图更新缺陷修复人员;

基于多特征的缺陷再分配图预测缺陷修复人员,其详细的步骤如下:

一、训练阶段:获取数据集中标记为已修复的缺陷报告,训练机器学习模型和建立缺陷再

分配图;

步骤1)读入取缺陷报告,选取标记为已修复的缺陷报告;

步骤2)将步骤1)得到的缺陷报告按时间排序,平均分成十份,九份用于训练机器学习 模型,一份用于测试集;

步骤3)逐一读取训练集中的缺陷报告,获取修复缺陷报告的开发人员之间的再分配路径 关系,即如A→B→C→D,缺陷报告先分配给开发人员A,A不能修复,将缺陷报告分配 给B,B不能修复,将缺陷报告再分配给C,直到开发人员D才完成缺陷报告的修复;

步骤4)将由步骤3)得到的再分配关系转化面向目标的路径图,即A→D,B→D,C→D, 即将所有的开发人员都面向最后修复缺陷报告的开发人员,用公式(1)计算各个开发人员之 间的状态转移概率,绘制缺陷再分配图;

其中,m表示由开发人员D再分配给开发人员Dj的缺陷数目,n表示由开发人员D再分配的所 有缺陷数目,D→Di表示由开发人员D分配给开发人员Di,开发人员Di不一定完成缺陷报 告的修复,D→Dj表示缺陷报告由开发人员D再分配给开发人员Dj,且Dj将缺陷报告修复;

步骤5)读取测试集中的第一条缺陷报告,记为bnew,提取该缺陷报告“题目”和“描述” 信息;

步骤6)读取训练集中的第一条缺陷报告,记为b,并提取“题目”和“描述”信息,用 公式(2),计算缺陷报告的相似度,记为S;

Similarity(q1,q2)=Σi=1nw1iw2iΣi=1nw21i×Σi=1nw22i---(2)

其中,将缺陷报告的“题目”和“描述”转化为n维向量,记为(w1,w2,...,wn),w是缺陷报 告中的单词,n表示缺陷报告中单词的数目,wi表示第i个单词在向量中的权重,w1i表示第 1个缺陷报告中第i个单词的权重,w2i表示第2个缺陷报告中第i个单词的权重; q1=(w11,w12,...,w1n)表示选取的测试集的缺陷报告,q2=(w21,w22,...,w2n)表示选取的训练集的 缺陷报告;

步骤7)比较由步骤6)得到的相似度S和预先给定的相似度阈值T,如果S≥T,则将测试 集中的缺陷报告bnew加入缺陷报告集合L中;

步骤8)重复步骤6)和步骤7)直至计算完训练集中所有的缺陷报告;

步骤9)读取缺陷报告集合L中的第一条缺陷报告,将修复该缺陷报告的开发人员提取出 来,加入节点集合;

步骤10)重复步骤9)直至提取完集合L中的所有缺陷报告,用节点集合中的开发人员, 创建缺陷再分配子图;

一、训练阶段,结合机器学习模型和缺陷再分配子图,预测缺陷报告的开发人员

步骤11)使用数据挖掘工具来将步骤2)中得到的文本文件进行格式转换,转换结果是将 所有缺陷报告的内容都写入一个.arff格式的文件中,每一行表示的是一个缺陷报告的内容, 主要包括缺陷的严重程度,优先级,缺陷的状态,修复缺陷的开发人员,缺陷的简短描述;

步骤12)读取测试集中缺陷报告,提取该缺陷报告该缺陷报告所属的产品和部件信息;

步骤13)用朴素贝叶斯分类器预测修复该缺陷报告的预测开发人员列表,选择排名前五 的开发人员记为{D1,D2,D3,D4,D5};

步骤14)结合由步骤10)得到的缺陷再分配子图,用公式(3)更新开发人员列表; Rank(Tk)=Pr(Di→Tk)+Matched Product(Tk)+MatchedComponent(Tk)+LasTactivity(Tk)(3) 其中,Pr(Di→Tk)表示开发人员Di和开发人员Tk之间的再分配转移概率,Matched Product(Tk) 判定开发人员Tk修复的缺陷报告所属的产品类型,如果修复预测的缺陷报告和Tk修复的缺陷 产品一样,则Matched Product(Tk)取值1,否则取值为0;MatchedComponent(Tk)判定开发人员Tk修复的缺陷报告所属的部件类型和缺陷报告部件类型是否一致,一样取值1,否则0;如果开 发人员Tk最后参与缺陷修复时间在100天之内,则LastActivity(Tk)取值1,否则为0。

步骤15)由步骤14)可得到新的缺陷修复人员列表{D1,T1,D2,T2,D3,T3,D4,T4,D5,T5},选取排 名前五的开发人员即{D1,T1,D2,T2,D3};

步骤16)重复步骤12)到步骤15)直至完成所有测试集中缺陷报告的预测。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号