基于工作量感知即时软件缺陷预测方法及装置
- 国知局
- 2024-07-31 23:10:23
本发明涉及软件缺陷预测领域,具体涉及基于工作量感知即时软件缺陷预测方法及装置。
背景技术:
1、软件缺陷与软件的关系就如同疾病与人的关系一样,如果不及时修复,可能会造成经济损失甚至引发不可预料的后果。软件的质量取决于其中的缺陷数量,缺陷越多,软件的质量就越差,并且需要更多的维护成本。
2、传统的基于模块级的软件缺陷预测(software defect prediction,sdp)研究大多忽略了软件质量保证(software quality assurance,sqa)工作量(简称“工作量”)的问题,并假设每个模块应用sqa活动的成本是相同的。在即时软件缺陷预测(just-in-timesoftware defect prediction, jit-sdp)领域,不同的变更通常需要不同的工作量。即使两个变更具有相同的代码改动量,它们所需的工作量可能会有显著差异。例如,变更a和变更b具有相同的代码改动量,但变更a涉及5个文件,而变更b仅涉及1个文件。定位、修复、评审及验证变更a的难度一般高于变更b,因此变更a所需的工作量大于变更b。如果不考虑工作量,研究人员设计的jit-sdp模型在实际应用时可能性能非常差。因此,在设计工作量感知jit-sdp模型时,工作量成为一个重要的度量指标,如何有效表示工作量对模型性能起着决定性的影响。
3、相关技术中的工作量感知jit-sdp技术常见的有ealr法、multi法和dejit法。这些方法目前有以下缺陷:
4、(1)工作量表示不准确。仅仅采用代码改动量表示工作量,忽略了编程技术、代码分布、问题复杂度等因素对工作量的影响。
5、(2)多目标优化问题。面对复杂的组合优化问题时,传统的优化方法往往效率低下且无法满足实际要求。
6、上述问题是目前亟待解决的。
技术实现思路
1、本发明的目的是提供基于工作量感知即时软件缺陷预测方法及装置。
2、为了解决上述技术问题,本发明提供了基于工作量感知即时软件缺陷预测方法,包括:
3、构建初始软件缺陷预测模型;
4、通过加权代码改动量计算变更工作量;
5、依据变更工作量计算初始软件缺陷预测模型的acc和popt值;acc的全称是accuracy,表示使用20%的工作量时,能够检测出的缺陷变更数量与总变更数量的比例;popt的全称是comparing a prediction model with an optimal mode,表示基于代码行数的累积提升图中最优模型和预测模型之间的面积;
6、通过多目标sma算法(slime mould algorithm,黏菌算法),对初始软件缺陷预测模型的超参数进行优化,进行多次迭代,使acc和popt值同时达到最优;
7、将优化后的超参数代入初始软件缺陷预测模型,得到最终软件缺陷预测模型;
8、通过最终软件缺陷预测模型进行缺陷预测。
9、进一步的,所述通过加权代码改动量计算变更工作量的步骤包括:
10、获取历史数据中每个变更的代码改动量cc,计算公式如下:
11、
12、式中,la为变更添加的代码行数,ld为删除的代码行数;
13、通过变更修改文件的数量nf和修改代码在文件中的分布entropy计算变更的难度系数;
14、计算变更工作量,计算公式如下:。
15、进一步的,所述通过变更修改文件的数量nf和修改代码在文件中的分布entropy计算变更的难度系数的步骤包括:
16、采用最小最大值归一化方法对变更修改文件的数量进行归一化处理,计算公式如下所示:
17、
18、式中:表示变更修改文件数量的最小值,表示变更修改文件数量的最大值,nf表示原始值,表示归一化的结果,位于[0,1]之间;
19、采用香农熵表示变更修改文件分布的熵,计算公式如下:
20、
21、式中,表示文件k出现的概率,≥0,并且,n表示修改文件的数量;
22、采用对数对香农熵进行归一化处理,计算公式如下:
23、
24、式中, 0≤entropy≤1,entropy的值越大,表示变更修改文件分布范围越广;
25、变更的难度系数的计算公式如下:。
26、进一步的,所述通过多目标sma算法,对初始软件缺陷预测模型的超参数进行优化,进行多次迭代,使acc和popt值同时达到最优的步骤包括:
27、定义超参数配置空间;
28、对多目标种群初始化;
29、设计sma多目标同步和冲突机制,完成超参数的优化。
30、进一步的,所述对多目标种群初始化的步骤,即:
31、种群搜索空间范围为超参数配置空间,维度为软件缺陷预测模型需要调优的超参数个数;
32、根据随机方法进行对多目标种群进行初始化。
33、进一步的,所述根据随机方法进行对多目标种群进行初始化的步骤,即,采用随机方法生成指定范围内的随机数,将生成pop行、dim列个随机数,其中,pop表示种群个数,dim表示超参数个数;
34、随机数计算公式如下:
35、
36、式中, x表示超参数,ub表示超参数范围的上边界,lb表示超参数范围的下边界,random()表示生成 [0,1] 区间内的随机数。
37、进一步的,所述设计sma多目标同步和冲突机制,完成超参数的优化的步骤即:
38、在多目标优化任务中,n组黏菌同时接近acc和popt达到最优时的超参数组,用下列公式表示其逼近行为:
39、
40、其中,x表示黏菌位置,即超参数空间中的参数,t表示当前迭代次数,x(t)和x(t+1)表示第t次和第t+1次迭代时黏菌的位置,xa和xb表示从黏菌中随机选择的两个不同个体,vb 是振荡参数,在区间内随机振荡,并随着迭代次数的增加而逐渐趋近于零, xb(t)表示第t次迭代时食物浓度最高的位置,vc 表示黏菌参数,从1 线性递减到0,vb 和 vc之间的协同相互作用模仿了黏菌的选择性行为,其中,p值的范围位于[-1, 1]区间,r是一个取值范围在[0, 1]区间之间的随机数;
41、值的计算过程如下:
42、
43、式中,max_t表示最大迭代次数,t表示当前迭代次数;
44、p值的计算过程如下:
45、
46、式中,i∈1,2,…n,s(i)表示第i组黏菌的适应度值,df表示在所有迭代中获得的最佳适应度值的组合;
47、 w是权重参数,由下式计算:
48、
49、
50、式中,condition表示适应度值排在种群的前半部分的黏菌个体,others表示适应度值排在种群的后半部分的黏菌个体, bf( j)表示当前迭代过程中第j个优化目标获得的最优适应度值, wf(j)表示当前迭代过程中第j个优化目标获得的最差适应度值, s(i)(j)表示第i组黏菌第j个优化目标的适应度值, sortindex表示适应度值排序后的序列;
51、当食物浓度较高时,该区域附近的权重较大;而当食物浓度较低时,该区域的权重会减少,从而改变搜索方向,探索其他区域,因此,在种群的前半部分,选择不同黏菌个体权重参数的最大值;在种群的后半部分,选择不同黏菌个体权重参数的最小值,黏菌更新位置的公式如下:
52、
53、式中,z表示位置更新参数,acc和popt分别对应两个不同的黏菌个体,且具有不同的适应度值。
54、本发明还提供了一种基于工作量感知的即时软件缺陷预测装置,包括:
55、构建模块,适于构建初始软件缺陷预测模型;
56、工作量计算模块,适于通过加权代码改动量计算变更工作量;
57、评估值计算模块,适于依据变更工作量计算初始软件缺陷预测模型的acc和popt值;
58、优化模块,适于通过多目标sma算法,对初始软件缺陷预测模型的超参数进行优化,进行多次迭代,使acc和popt值同时达到最优;
59、更新模块,适于将优化后的超参数代入初始软件缺陷预测模型,得到最终软件缺陷预测模型;
60、预测模块,适于通过最终软件缺陷预测模型进行缺陷预测。
61、本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储至少一条指令,所述指令由处理器执行时实现如上述的基于工作量感知的即时软件缺陷预测方法。
62、本发明还提供了一种电子设备,包括存储器和处理器;所述存储器中存储有至少一条指令;所述处理器,通过加载并执行所述至少一条指令以实现如上述的基于工作量感知的即时软件缺陷预测方法。
63、本发明的有益效果是,本发明提供了一种基于工作量感知的即时软件缺陷预测方法及装置,其中,基于工作量感知的即时软件缺陷预测方法包括:构建初始软件缺陷预测模型;通过加权代码改动量计算变更工作量;依据变更工作量计算初始软件缺陷预测模型的acc和popt值;通过多目标sma算法,对初始软件缺陷预测模型的超参数进行优化,进行多次迭代,使acc和popt值同时达到最优;将优化后的超参数代入初始软件缺陷预测模型,得到最终软件缺陷预测模型;通过最终软件缺陷预测模型进行缺陷预测。采用加权代码改动量来计算变更工作量,从而将工作量与具体编程技术、代码分布、问题复杂度等因素进行关联,提高了工作量的合理性,同时通过多目标sma算法,以求解acc和和popt两个性能评估指标的最大值作为优化目标,对软件缺陷预测模型进行优化,提高了预测的准确度,从而提高了软件缺陷预测模型的性能。
本文地址:https://www.jishuxx.com/zhuanli/20240730/196214.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。