一种软件缺陷严重程度识别方法技术

技术编号:24205878 阅读:133 留言:0更新日期:2020-05-20 14:38
本发明专利技术公开了一种软件缺陷报告严重程度识别方法。该方法基于卷积神经网络来实现缺陷报告严重程度的识别,利用元启发式算法—遗传算法进行特征选择来提高预测的性能。通过本发明专利技术方法能够高效识别软件缺陷报告的严重程度,降低软件维护的成本,对软件开发过程具有非常重要的意义。本发明专利技术提出使用遗传算法来进行特征提取,同时结合深度学习模型进行预测。相比于传统的软件缺陷报告严重程度预测方法,本发明专利技术利用遗传算法进行特征选择,采用最小化平均绝对偏差作为适应度函数来评估每个个体,大大提高特征选择的效果;使用深度卷积神经网络创建模型,进一步提高特征选择的准确性,增强预测模型的性能。

A method of software defect severity identification

【技术实现步骤摘要】
一种软件缺陷严重程度识别方法
本专利技术涉及软件仓库挖掘领域,尤其涉及一种遗传算法和卷积神经网络的软件缺陷报告严重程度识别方法。
技术介绍
在软件开发过程中,不可避免地会出现软件缺陷,软件缺陷会影响软件质量,需要被及时修复,并且软件缺陷的修复在软件开发生命周期中占很大比例。因此,提高软件缺陷修复效率是确保软件质量的关键。目前,为了解决这个问题,很多大型项目都使用软件缺陷报告跟踪系统来记录缺陷信息,以便快速定位和修复缺陷。软件缺陷报告的严重性主要包括blocker、critical、major、normal、minor、trivial六个级别,其中blocker、critical和major级别的缺陷归类为严重缺陷,其他级别的缺陷归类为非严重缺陷。在对缺陷报告进一步分类时,传统的做法是开发人员手动将用户所提交的软件缺陷报告定性分成两类,来帮助开发人员确定哪些缺陷需要被及时修复以及哪些缺陷可以延迟修复。在实际操作中,首先由于用户之间表达方式的差异性,同类型的软件缺陷也许会被判定为不同级别的严重程度;其次,开发人员手动分类软件缺陷报告时,主观性较强且效率低下,因此人们迫切需要依靠自动化技术实现软件缺陷报告的分类。近年来受到机器学习在预测领域所取得的成果启发,研究人员已经将机器学习技术应用到软件缺陷报告严重程度识别这一问题。然而将传统机器学习技术应用到缺陷报告严重程度识别时,会遇到一个很大的挑战,即无法有效提取文本特征。传统预测方法对软件缺陷报告严重程度预测的准确率较低,可能会导致开发人员花费大量时间在紧急度低的软件缺陷上,对软件质量造成巨大影响。相比较之下,机器学习算法可以有效识别软件缺陷报告严重程度,极大地降低了软件维护的成本。
技术实现思路
为了克服现有技术的不足,本专利技术提供一种结合遗传算法和卷积神经网络的软件缺陷报告严重程度识别方法,可有效解决上述问题。本专利技术具体采用的技术方案如下:一种软件缺陷严重程度识别方法,具体包括以下步骤:步骤(1)定义软件缺陷的严重程度,将normal、trivial和minor级别归为非严重缺陷s1,将major、blocker和critical级别归为严重缺陷s2;步骤(2)给定缺陷报告集合R=(R1,R2,...Rn),将其中每个软件缺陷报告表示成Ri=<reportId,des,severity>,i=1,2...,n,其中reportId表示软件缺陷报告编号,des表示软件缺陷报告的描述信息,severity表示软件缺陷报告的严重程度,即s1或s2;步骤(3)对每个软件缺陷的描述信息des进行预处理:首先对des进行标记,用空格区分成单词形式,并删除其中的符号,然后基于停用词列表移除其中的停用词,最后将每个单词转为它的原型(即将每个单词转为它原有的词干或词根);经过预处理后每个缺陷报告Ri=<reportId,preDes,severity>,其中preDes表示预处理后的描述信息;步骤(4)首先抽取所有缺陷报告中的描述信息preDes中的不同单词,形成关键词字典Dict=(w1,w2,...,wk),即特征集合,其中每一个关键词就是一个特征;然后利用遗传算法进行特征选择,特征选择的步骤如下:4-1.设定初始化种群X=(X1,X2,...,Xp),p表示种群大小,以及最大迭代次数MaxIter;种群中的每一个个体Xi可以用一个长度为k的二进制串表示,其中1代表对应的特征被选中,0表示对应的特长度k即关键词的个数;4-2.对于每个个体Xi,根据关键词字典Dict得到对应的特征子集SDi(基于个体Xi二进制串过滤得到),然后根据SDi去除每个preDes的冗余特征,即只保留在SDi中存在的特征,得到preDesR;4-3.利用TF-IDF加权方法计算每个特征的权重,其中TF表示单词频率,IDF表示文档反向频率;TF-IDF公式为TF-IDFl,i=TFl,j×IDFj,其中TF-IDFl,j表示第j个单词在第l个文档中的权重,TFl,j表示第j个单词在第l个文档中的频率,IDFj=log(n/DFj)表示第j个单词的文档反向频率,n表示文档的个数,DFj表示包含第j个单词的文档的个数;4-4.对种群中的每一个个体Xi采用最小化平均绝对偏差作为适应度函数进行评估;适应度函数定义如下:其中,MAD(Xi)表示第i个个体Xi对应的适应度值,al是第l个软件缺陷报告中被选中的特征的数量,el,j表示第l个软件缺陷报告中第j个特征的权值,即TF-IDFl,j;然后采用锦标赛选择算法对种群进行选择,被选择的个体进入子代种群;4-5.对子代种群进行交叉和变异,重复上述步骤4-2到4-4的操作,直到达到最大迭代次数MaxIter;4-6.输出最优特征子集;步骤(5)单词向量化,基于最优特征子集将每个缺陷报告的preDes中的冗余特征进行过滤,得到preDesR;然后利用Word2Vec中的Skip-gram模型将每个preDesR中的每个单词转为一个d维向量,即步骤(6)训练软件缺陷报告严重程度预测的卷积神经网络模型M,将步骤(5)得到的每个单词的向量表示输入至模型M的Embedding层进行训练,具体步骤如下:第一,设置模型参数:Numberofhiddenunits(隐藏单元数)、IterMax(CNN训练最大迭代次数)、Batchsize(批量大小)、L2、Learningrate(学习率)、Dropout和Dimensionalofwordvectors(单词向量维度);第二,将R分为训练数据集合ζtrain与测试数据集合ζtest;第三,将训练数据集合ζtrain所有单词的输入至CNN中进行训练;第四,对于训练数据集合ζtrain中数据,利用三个不同卷积核执行卷积操作,分别对每一个卷积结果进行最大池化1-Max操作,输出Θ1,Θ2,Θ3;第五,对Θ1,Θ2,Θ3进行Flatten操作,展平成一维向量,并输入到全连接层中,其中激活函数使用Relu,输出第六,卷积神经网络通过损失函数Loss计算c与之间的损失值,即预测的严重程度与真实的严重程度的差值,不断优化模型参数,其中c是每次迭代对ζtrain中的部分数据的预测结果;第七,达到设定的损失函数要求值或达到最大迭代次数IterMax后,迭代结束;最后,输出预测模型M;步骤(7)将测试数据集合ζtest数据输入至预测模型M,输出预测结果c’,得到类标签s1或s2;步骤(8)进行十折交叉验证,十次预测之后取平均值,作为最终预测结果本专利技术提出使用遗传算法来进行特征提取,同时结合深度学习模型进行预测。相比于传统的软件缺陷报告严重程度预测方法,本专利技术具有如下收益:1、利用遗传算法进行特征选择,采用最小化平均绝对偏差作为适应度函数来评估每个个体,大大提高特征选择的效果;2、使用深度卷积神经网络创建模型,进一步提高特征选择的准确性,增强预本文档来自技高网
...

【技术保护点】
1.一种软件缺陷严重程度识别方法,其特征在于包括以下步骤:/n步骤(1)定义软件缺陷的严重程度,将normal、trivial和minor级别归为非严重缺陷s

【技术特征摘要】
1.一种软件缺陷严重程度识别方法,其特征在于包括以下步骤:
步骤(1)定义软件缺陷的严重程度,将normal、trivial和minor级别归为非严重缺陷s1,将major、blocker和critical级别归为严重缺陷s2;
步骤(2)给定缺陷报告集合R=(R1,R2,...Rn),将其中每个软件缺陷报告表示成Ri=<reportId,des,severity>,i=1,2...,n,其中reportId表示软件缺陷报告编号,des表示软件缺陷报告的描述信息,severity表示软件缺陷报告的严重程度,即s1或s2;
步骤(3)对每个软件缺陷的描述信息des进行预处理:首先对des进行标记,用空格区分成单词形式,并删除其中的符号,然后基于停用词列表移除其中的停用词,最后将每个单词转为它的原型(即将每个单词转为它原有的词干或词根);经过预处理后每个缺陷报告Ri=<reportId,preDes,severity>,其中preDes表示预处理后的描述信息;
步骤(4)首先抽取所有缺陷报告中的描述信息preDes中的不同单词,形成关键词字典Dict=(w1,w2,...,wk),即特征集合,其中每一个关键词就是一个特征;然后利用遗传算法进行特征选择,特征选择的步骤如下:
4-1.设定初始化种群X=(X1,X2,...,Xp),p表示种群大小,以及最大迭代次数MaxIter;种群中的每一个个体Xi可以用一个长度为k的二进制串表示,其中1代表对应的特征被选中,0表示对应的特长度k即关键词的个数;
4-2.对于每个个体Xi,根据关键词字典Dict得到对应的特征子集SDi(基于个体Xi二进制串过滤得到),然后根据SDi去除每个preDes的冗余特征,即只保留在SDi中存在的特征,得到preDesR;
4-3.利用TF-IDF加权方法计算每个特征的权重,其中TF表示单词频率,IDF表示文档反向频率;TF-IDF公式为TF-IDFl,j=TFl,j×IDFj,其中TF-IDFl,j表示第j个单词在第l个文档中的权重,TFl,j表示第j个单词在第l个文档中的频率,IDFj=log(n/DFj)表示第j个单词的文档反向频率,n表示文档的个数,DFj表示包含第j个单词的文档的个数;
4-4.对种群中的每一个个体Xi采用最小化平均绝对偏差作为适应度函数...

【专利技术属性】
技术研发人员:俞东进郭世明陈信王琳
申请(专利权)人:杭州电子科技大学
类型:发明
国别省市:浙江;33

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

1