一种软件缺陷报告修复人推荐方法技术

技术编号:28119612 阅读:19 留言:0更新日期:2021-04-19 11:24
本发明专利技术公开了一种软件缺陷报告修复人推荐方法,本方法使用结构化深度学习模型,将缺陷报告的描述、缺陷报告的产品、组件、开发者进行匹配后,作为结构化深度学习模型的输入。通过模型的输出来判断某一开发者与该缺陷报告是否适合修复该缺陷报告,从而得出推荐的开发者。本方法首次提出通过结构化深度学习模型的方式来改进缺陷报告修复人推荐的效果。并且充分利用了软件缺陷数据库中的历史数据,利用历史缺陷报告和开发者进行匹配组成样本,用于训练模型,能够减少人工分配的工作量,提高分配效率。效率。效率。

【技术实现步骤摘要】
一种软件缺陷报告修复人推荐方法


[0001]本专利技术涉及一种软件缺陷报告修复人推荐方法,属于计算机软件开发


技术介绍

[0002]随着软件开发技术的不断更新,软件系统功能日益多样化,软件系统的复杂度也不 断提高。而软件缺陷能否得到高效的解决,是衡量软件质量管理水平的重要指标,软件 缺陷管理在学术界和工业界也受到越来越多的关注。对于软件开发团队来说,在软件的 生命周期中,及时地发现和解决软件缺陷能够有效地提高软件产品质量,降低软件开发 成本。对于用户来说,高效的解决软件缺陷能够提升用户体验,提高软件开发团队的知 名度。
[0003]为了有效地管理软件缺陷,软件缺陷跟踪系统,如Bugzilla、JIRA等软件被广泛地 应用于现代软件开发过程中。在软件开发和维护的过程中,软件测试人员或者用户在发 现缺陷后,通过缺陷跟踪系统提交缺陷报告。然后由负责缺陷分派的质量管理人员将缺 陷报告分派给缺陷修复开发者。现代软件系统由于规模庞大、开发团队人员众多,以及 分布式团队的兴起,使得软件缺陷分配所需的工作量迅速增长,因此人工为软件缺陷分 配开发者非常耗时费力。软件缺陷分配需要综合考量该缺陷的特点以及开发者的经验和 通常,所以如何将缺陷报告分配给合适的开发人员也对质量管理人员的经验和能力提出 了较高的要求。
[0004]面对软件缺陷数量的快速增长和缺陷复杂度的提升,传统的软件缺陷分配方式暴露 出分配效率低、耗费成本大等不足。需要一种自动化的方式将缺陷报告与开发者个性化 匹配,减少人工分配的工作量,提高分配效率

技术实现思路

[0005]鉴于目前软件复杂度逐步提高,软件开发的方法和团队日益多样化,软件缺陷修复 对于软件的开发、使用和维护有着重要的意义。而目前的人工方法存在着分配效率低、 耗费成本高等问题。本专利技术提供了一种软件缺陷报告修复人推荐方法。本专利技术的目的是 将新增的软件缺陷报告推荐给适合的开发者进行修复。
[0006]本专利技术的
技术实现思路
为:
[0007]一种软件缺陷报告修复人推荐方法,其步骤为:
[0008]1)从软件缺陷报告数据库中选取此前已经完成修复的缺陷报告,从缺陷报告中提取该缺 陷的描述信息和元信息。描述信息包括摘要和详细描述。元信息包括产品、组件、部 署平台、操作系统、危险等级。并提取出参与评论该缺陷报告的开发人员;
[0009]2)将1)中提取的摘要和描述的文本内容组合在一起,并且对文本内容进行自然语言处 理,将文本转换为数字序列表示,称为描述序列;
[0010]3)将1)中提取出的缺陷报告中涉及的元信息,即产品、组件、部署平台、操作系统、 危险等级分别进行编号。并为每个开发者指定唯一的编号。对所有的缺陷报告根据其 所属的产品进行分类,分成若干个子集。选取历史缺陷报告中前80%的缺陷报告作为 训练数据
集,后20%的缺陷报告作为测试数据集;
[0011]4)将2)、3)中得到的每一个缺陷报告的描述序列、组件编号、部署平台编号、操作系 统编号、危险等级编号、与参与评论该缺陷报告的每一名开发者编号组成分别组成正 样本,并附加标签1,构建正样本集合;
[0012]5)对于训练数据集的每一个缺陷报告,随机选取与参与评论该缺陷报告的开发者数量相 同的未评论该缺陷报告的开发者与之组成负样本,并附加标签0,组建负样本集合, 并将该负样本集合与4)中得到的正样本集合混合并打乱后组成第一组训练集 TrainSet1;
[0013]6)将训练数据集中所有的开发者按照参与缺陷报告的数量降序排列,从中选取前30%的 开发者作为高频开发者集合。对于每一个缺陷报告,从高频开发者集合中选取与参与 评论该缺陷报告的开发者数量相同的未评论该缺陷报告的开发者与之组成负样本,并 附加标签0,组建负样本集合,并将该负样本集合与4)中得到的正样本集合混合并 打乱后组成第一组训练集TrainSet2;
[0014]7)将测试数据集中所有的缺陷报告与所有的开发者一一匹配,组建测试集TestSet;
[0015]8)构建多输入的结构化深度学习模型,模型接收6个输入,分别是:描述序列、组件编 号、部署平台编号、操作系统编号、危险等级编号、开发者编号。模型输出一个(0,1) 之间的值;
[0016]9)将5)、6)中得到的训练集数据分别输入模型,对模型分别进行若干轮训练,由训练 集TrainSet1训练得到的模型为model1,由训练集TrainSet2训练得到的模型为model2。 由model1和model2得到的结果进行加权组合后得到最终结果。并在测试集TestSet上通 过对评价指标的观测评估的性能,对模型的结构和参数进行优化;
[0017]10)将未分配修复推荐人的缺陷报告提取其摘要和描述,采用与2)相同的方法进行自然 语言处理,转换为描述序列。采用与3)相同的方法将报告中的产品、组件、部署平 台、操作系统、危险等级转换为对应的编号。并根据该缺陷等报告的产品编号对其进 行分类。最后将该缺陷报告的信息与所有的开发者分别配对组成样本;
[0018]11)对于9)中提及的由未分配推荐人的缺陷报告和所有开发者分别组成的样本,输入8) 训练所得模型,获得每组样本对应的模型输出,并对输出值进行降序排序,选择排名 靠前的Q名开发者作为该缺陷报告的推荐修复人;
[0019]进一步的,所述相关的开发者指所有参与评论该缺陷报告的开发者。
[0020]进一步的,将缺陷报告摘要和描述组合在一起,并进行自然语言处理,包括英文分词、 去除停用词及提取词干。并根据数据集中的文本中出现的所有词组建词典,根据词出现的词 频进行降序排列,将每个词对应一个唯一的整数,从而将文本转换成数字序列。
[0021]进一步的,提取历史缺陷报告数据集中所有出现的产品,将每个产品对应到一个唯一的 整数。对于数据集中出现的组件、部署平台、操作系统、危险等级,以及参与缺陷报告的开 发者做相同的处理,使它们分别对应一个整数。
[0022]进一步的,将所有的缺陷报告集合{br1,br2,...,br
M
}(其中M历史数据库中缺陷报告的数 量,M>0)根据其所属的产品进行分类,分为若干个子集。
[0023]进一步的,构建正样本集合时,将每一个历史缺陷报告br
i
与所有参与该缺陷报告的开发 者进行配对(其中dev
i,j
表示参与缺陷报告br
i
的第j名开发
者, 0<i≤M,M为所有历史缺陷报告的数量,1≤j≤H
i
,H
i
为参与缺陷报告br
i
的所有开发者 的数量。),分别组成H
i
个正样本,并附加标签1。
[0024]进一步的,构建训练集1时,从所有的开发者里未参与该缺陷报告的开发者中,随机选 取H
i
名开发者,与该缺陷报告br
i
配对成H
i
个负样本,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种软件缺陷报告修复人推荐方法,其特征在于:该方法的具体实施步骤为,1)从软件缺陷报告数据库中选取此前已经完成修复的缺陷报告,从缺陷报告中提取该缺陷的描述信息和元信息;描述信息包括摘要和详细描述;元信息包括产品、组件、部署平台、操作系统、危险等级;并提取出参与评论该缺陷报告的开发人员;2)将1)中提取的摘要和描述的文本内容组合在一起,对文本内容进行自然语言处理,将文本转换为数字序列表示,称为描述序列;3)将1)中提取出的缺陷报告中涉及的元信息,即产品、组件、部署平台、操作系统、危险等级分别进行编号;并为每个开发者指定唯一的编号;对所有的缺陷报告根据其所属的产品进行分类,分成若干个子集;选取历史缺陷报告中前80%的缺陷报告作为训练数据集,后20%的缺陷报告作为测试数据集;4)将2)、3)中得到的训练数据集中每一个缺陷报告的描述序列、组件编号、部署平台编号、操作系统编号、危险等级编号、与参与评论缺陷报告的每一名开发者编号组成分别组成正样本,并附加标签1,构建正样本集合;5)对于训练数据集每一个缺陷报告,随机选取与参与评论该缺陷报告的开发者数量相同的未评论该缺陷报告的开发者与之组成负样本,并附加标签0,组建负样本集合,并将该负样本集合与4)中得到的正样本集合混合并打乱后组成第一组训练集TrainSet1;6)将训练数据集中所有的开发者按照参与bug的数量降序排列,从中选取前30%的开发者作为高频开发者集合;对于每一个缺陷报告,从高频开发者集合中选取与参与评论该缺陷报告的开发者数量相同的未评论该缺陷报告的开发者与之组成负样本,并附加标签0,组建负样本集合,并将该负样本集合与4)中得到的正样本集合混合并打乱后组成第一组训练集TrainSet2;7)将测试数据集中所有的缺陷报告与所有的开发者一一匹配,组建测试集TestSet;8)构建多输入的结构化深度学习模型,模型接收6个输入,分别是:描述序列、组件编号、部署平台编号、操作系统编号、危险等级编号、开发者编号;模型输出一个(0,1)之间的值;9)将5)、6)中得到的训练集数据分别输入模型,对模型分别进行若干轮训练,由训练集TrainSet1训练得到的模型为model1,由训练集TrainSet2训练得到的模型为model2;由model1和model2得到的结果进行加权组合后得到最终结果;并在测试集TestSet上通过对评价指标的观测评估的性能,对模型的结构和参数进行优化;10)将未分配修复推荐人的缺陷报告提取其摘要和描述,采用与2)相同的方法进行自然语言处理,转换为描述序列;采用与3)相同的方法将报告中的产品、组件、部署平台、操作系统、...

【专利技术属性】
技术研发人员:张文赵江鹏李健
申请(专利权)人:北京工业大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1