一种面向代价感知的实时缺陷预测模型增强框架制造技术

技术编号:21453809 阅读:89 留言:0更新日期:2019-06-26 04:44
本发明专利技术提出了一种面向代价感知的实时缺陷预测模型增强框架,包括将原有的预测风险值和和代价值转化为同一量纲,再将转化后的值通过自适应学习进行加权组合作为新的预测风险值,最后将该面向代价感知的实时缺陷预测模型增强框架应用于现有的代价感知的实时缺陷预测模型进行增强。本发明专利技术面向代价感知的实时缺陷预测模型增强框架使用自适应学习充分利用了原有预测的模型的风险值和审查代价值,并且通过数据转换解决了数据分布不平衡问题,有效提高了模型的预测效果。

【技术实现步骤摘要】
一种面向代价感知的实时缺陷预测模型增强框架
本专利技术涉及一种同时考虑预测风险和代码审查代价的自适应学习框架,属于软件缺陷预测领域,尤其是涉及一种面向代价感知的实时缺陷预测模型增强框架。
技术介绍
软件质量保证为开发高质量的软件系统提供了保障,而软件缺陷预测则有助于开发者将有限的的质量保证资源优先分配给有缺陷的模块,从而提高测试和审查的效率。代价感知的实时缺陷预测模型会基于预测的风险值和修改的代码行对所有软件改动进行排序,因此预测出具有较高风险值和较少的代码修改量的改动将会最先被审查,更大程度地提高了模型的现实意义。现有的代价感知实时缺陷预测模型,根据类型可以分为无监督模型和有监督模型。代表性的无监督模型有LT和CCUM:Yang等人将12个不同的改动度量值的倒数进行降序排列分别构建12个无监督模型,在6个开源项目的实验结果显示这些无监督模型中多数模型的效果要优于有监督的方法;Liu等人利用不同规模的代码改动,提出了一种基于代码改动量的无监督模型CCUM,6个开源项目上的结果显示优于所有已有的有监督和无监督模型。代表性的有监督模型有EALR、OneWay、CBS和MULTI:Kamei等人提出了一种有监督的代价感知线性回归模型EALR,通过在6个开源项目和5个商业项目上的研究,EALR检测出35%缺陷改动平均需要审查20%的代码改动量。Fu和Menzies重现了Yang等人的工作,提出的有监督模型OneWay能在Yang等人训练出的无监督模型基础上,利用带标记的训练数据自动选择最佳改动度量,实验结果证明OneWay要优于大多数无监督模型。同样地,Huang等人重现Yang等人的工作后设计了一种简洁的先分类再排序的增强有监督模型CBS,结果表明CBS在recall指标上与LT持平,并在其他指标上超过LT。Chen等人则将代价敏感的实时缺陷预测视为多目标优化的问题,旨在同时达到预测的缺陷改动数目的最大化和审查代价的最小化。据此构建的有监督方法MULTI在Popt和recall指标上要优于对比的有监督和无监督方法。大多数现有的代价感知的实时缺陷预测模型只是简单将预测风险值和代价值用于提升模型的预测效果,并没有对两者的权重进行适应性优化,也没有考虑到代码改动的取值分布存在高度不平衡性。
技术实现思路
本专利技术针对现有的代价感知的实时缺陷预测模型存在的缺陷,提出了一种能够应用于这些模型的面向代价感知的实时缺陷预测模型增强框架,能够自适应学习预测风险值和审查代价值的权重,并且对不平衡的数据进行转换。该面向代价感知的实时缺陷预测模型增强框架的具体步骤为:步骤1、判断缺陷预测模型的类型为有监督模型或无监督模型,若为有监督模型,转至步骤2;若为无监督模型,转至步骤4;步骤2、使用训练数据构建有监督的缺陷预测模型,分别预测训练数据和测试数据的风险值;步骤3、根据步骤2得到的训练数据的风险值以及训练数据的代价值,使用遗传算法自动学习最优权重值λ1、λ2;步骤4、使用训练数据构建无监督的缺陷预测模型,预测测试数据的风险值,并将λ1和λ2都赋值为1;步骤5、将测试数据的风险值和代价值根据权重进行减法组合,得到测试数据新的风险值;步骤6、计算经过所述面向代价感知的实时缺陷预测模型增强框架增强后模型的评价指标。优选地,在所述步骤3中,所述遗传算法选取轮盘赌选择、单点交叉和随机变异作为遗传算子,所述轮盘赌选择选择适应度更高的染色体,组合交叉在个体编码串上,所述单点交叉是在个体编码串上随机设置一个交叉点,两个配对的染色体在所述交叉点附近进行部分染色体互换,所述随机变异随机修改个体一个父染色体的部分染色体;根据适应度选取λ1、λ2,所述适应度为指定的评价指标,或取所有评价指标的平均值。优选地,在步骤2、4中,风险值由原有的代价感知的实时缺陷预测模型的预测公式直接计算,若原始缺陷预测模型为有监督模型EALR,则风险值R(x)的计算公式为:R(x)=Y(x)/effort(x)其中,x为一次软件改动,若所述改动有缺陷则Y(x)为1,否则为0,effort(x)为审查改动所需的工作量,由修改的代码行总数表示;若原始缺陷预测模型为无监督模型,基于某一改动度量的取值M(x),则风险值R(x)的计算公式为:R(x)=1/M(x)优选地,在步骤5中,所述一种面向代价感知的实时缺陷预测模型增强框架在现有的代价感知的实时缺陷预测模型的基础上,首先将原有的预测风险值和代价值转化为同一量纲,再将转化后的值进行加权组合作为新的预测风险值,新的预测风险值R′(x)的计算公式为:R′(x)=λ1*θ(y(x))-λ2*θ(effort(x))其中,x为一次软件改动,y(x)为原始风险值,effort(x)为审查改动所需的工作量,由修改的代码行的总数表示,θ(·)为转换函数,λ1和λ2为权重参数,所述权重值都为正实数。本专利技术面向代价感知的实时缺陷预测模型增强框架使用自适应学习充分利用了原有预测的模型的风险值和审查代价值,并且通过数据转换解决了数据分布不平衡问题,有效提高了模型的预测效果。附图说明图1是本专利技术所提出一种面向代价感知的实时缺陷预测模型增强框架的总体流程图;图2是本专利技术在6个开源项目数据集Bugzilla、Columba、JDT、Platform、Mozilla和PostgreSQL上各评价指标结果的盒图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。如图1所示,本专利技术提出了一种用于代价感知的实时缺陷预测模型增强框架,包括以下步骤:步骤1、根据具体应用的代价敏感的实时缺陷预测模型判断是否属于有监督模型,即训练预测模型时使用的训练数据是否具有类别标记。若为有监督模型,转至步骤2;若为无监督模型,转至步骤4。步骤2、使用训练数据构建有监督的代价感知的实时缺陷预测模型,分别预测训练数据和测试数据的风险值,风险值由原有模型的预测公式直接计算。步骤3、原有的实时缺陷预测模型简单地将预测风险值和代价值用于对预测结果的改进,并未对两者进行不同权重的组合优化,进而更加合理地表示软件改动的风险值。所述面向代价感知的实时缺陷预测模型增强框架使用遗传算法自动学习两者的权重值λ1、λ2,因而能够充分利用这两种信息。其中,遗传算法选取了轮盘赌选择、单点交叉和随机变异作为遗传算子。轮盘赌选择会以更高的几率选择适应度更高的染色体。组合交叉在个体编码串上,单点交叉是在个体编码串上随机设置一个交叉点,两个配对的染色体将在此交叉点附近进行部分染色体互换。随机变异将随机修改个体的一个父染色体的部分染色体。λ1、λ2作为遗传算法的最优解,将根据适应度选取。适应度为指定的评价指标,或取所有评价指标的平均值。步骤4、使用训练数据构建无监督的代价敏感的实时缺陷预测模型,预测测试数据的风险值,风险值由原有模型的预测公式直接计算,并将λ1、λ2都赋值为1。步骤5、所述面向代价感知的实时缺陷预测模型增强框架在现有的代价感知的实时缺陷预测模型的基础上,首先将原有的预测风险值和和代价值转化为同一量纲,再将转化后的值进行加权组合,最后作为新的预测风险值R′(x)的计算公式:R′(x)=本文档来自技高网
...

【技术保护点】
1.一种用于面向代价感知的实时缺陷预测模型增强框架,能够适应各种现有的JIT模型,其特征在于,包括以下步骤:步骤1、判断缺陷预测模型的类型为有监督模型或无监督模型,若为有监督模型,转至步骤2;若为无监督模型,转至步骤4;步骤2、使用训练数据构建有监督的缺陷预测模型,分别预测训练数据和测试数据的风险值;步骤3、根据步骤2得到的训练数据的风险值以及训练数据的代价值,使用遗传算法自动学习最优权重值λ1、λ2;步骤4、使用训练数据构建无监督的缺陷预测模型,预测测试数据的风险值,并将λ1和λ2都赋值为1;步骤5、将测试数据的风险值和代价值根据权重进行减法组合,得到测试数据新的风险值;步骤6、计算经过所述面向代价感知的实时缺陷预测模型增强框架增强后模型的评价指标。

【技术特征摘要】
1.一种用于面向代价感知的实时缺陷预测模型增强框架,能够适应各种现有的JIT模型,其特征在于,包括以下步骤:步骤1、判断缺陷预测模型的类型为有监督模型或无监督模型,若为有监督模型,转至步骤2;若为无监督模型,转至步骤4;步骤2、使用训练数据构建有监督的缺陷预测模型,分别预测训练数据和测试数据的风险值;步骤3、根据步骤2得到的训练数据的风险值以及训练数据的代价值,使用遗传算法自动学习最优权重值λ1、λ2;步骤4、使用训练数据构建无监督的缺陷预测模型,预测测试数据的风险值,并将λ1和λ2都赋值为1;步骤5、将测试数据的风险值和代价值根据权重进行减法组合,得到测试数据新的风险值;步骤6、计算经过所述面向代价感知的实时缺陷预测模型增强框架增强后模型的评价指标。2.根据权利要求1所述的一种面向代价感知的实时缺陷预测模型增强框架,其特征在于,在所述步骤3中,所述遗传算法选取轮盘赌选择、单点交叉和随机变异作为遗传算子,所述轮盘赌选择选择适应度更高的染色体,组合交叉在个体编码串上,所述单点交叉是在个体编码串上随机设置一个交叉点,两个配对的染色体在所述交叉点附近进行部分染色体互换,所述随机变异随机修改个体一个父染色体的部分染色体;根据适应度选取λ1、λ2,所述适应度为指定的评价指标,或取...

【专利技术属性】
技术研发人员:荆晓远李志强陈昊文黄鹤彭奕姚永芳
申请(专利权)人:广东石油化工学院
类型:发明
国别省市:广东,44

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

1