首页> 中国专利> 一种软件缺陷预测特征的选择方法及装置

一种软件缺陷预测特征的选择方法及装置

摘要

本发明公开了一种软件缺陷预测特征的选择方法及装置。所述方法包括:根据历史软件缺陷数据库,获取领域缺陷数据集;基于Bootstrap抽样技术对所述领域缺陷数据集进行抽样处理,生成软件缺陷样本集;基于所述软件缺陷样本集和马尔科夫毯模型,对原始特征进行分组,得到多个特征组;根据预先设计的启发式特征选择策略,从所述多个特征组中筛选出初始特征,得到筛选的候选特征序列;基于遗传算法从所述候选特征序列中搜索出目标特征子集。本发明能够更有效地提高软件缺陷预测准确性。

著录项

说明书

技术领域

本发明涉及软件测试技术领域,特别是一种软件缺陷预测特征的选择方法及装置。

背景技术

软件缺陷预测作为有效提升测试过程的辅助方法之一,其通过分析和挖掘软件缺陷数据,构建软件缺陷预测模型,从而预测出被测项目中的潜在缺陷模块,帮助测试人员实现更有针对性的测试,因此在软件工程领域具有重要的意义。

由于我们通常采用带有标签的缺陷数据集训练缺陷预测模型,若该缺陷数据集的标签带有噪声,则会导致最终预测结果不可信。而在实际的软件测试中,在对程序模块进行类型标记时容易产生噪声,主要原因包括:①软件测试存在漏报,即将有缺陷的程序模块误标记为无缺陷;②采用手工方式对标签进行标记易出现标记错误。因此,如何在标签噪声影响下提高分类性能和鲁棒性已成为软件缺陷预测技术在工程实践应用时必须要解决的关键因素。

特征选择作为重要的“数据预处理”过程,能够有效识别并移除无关特征和冗余特征,广泛用于解决维数灾难问题,提升缺陷预测模型的性能和可解释性。而在软件缺陷预测中,我们期望选择的特征子集不仅具有较高的分类准确性,更要对标签噪声具有良好的鲁棒性。虽然已有研究人员对特征选择方法的噪声鲁棒性进行了分析,但是很少有学者针对性地设计出具有一定噪声鲁棒性的特征选择方法。

发明内容

本发明解决的技术问题是:克服现有技术的不足,提供了一种软件缺陷预测特征的选择方法及装置。

为了解决上述技术问题,本发明实施例提供了一种软件缺陷预测特征的选择方法,包括:

根据历史软件缺陷数据库,获取领域缺陷数据集;

基于Bootstrap抽样技术对所述领域缺陷数据集进行抽样处理,生成软件缺陷样本集;

基于所述软件缺陷样本集和马尔科夫毯模型,对原始特征进行分组,得到多个特征组;

根据预先设计的启发式特征选择策略,从所述多个特征组中筛选出初始特征,得到筛选的候选特征序列;

基于遗传算法从所述候选特征序列中搜索出目标特征子集。

可选地,所述基于所述软件缺陷样本集和马尔科夫毯模型,对原始特征进行分组,得到多个特征组,包括:

计算所述软件缺陷样本集中特征与特征之间的对称不确定性SU1值,及所述软件缺陷样本集中特征与目标类别之间的对称不确定性SU2值;所述目标类别包括:缺陷类别和非缺陷类别;

根据所述对称不确定性SU1值、所述对称不确定性SU2值和所述马尔科夫毯模型,对所述原始特征进行分组,得到所述多个特征组。

可选地,所述根据预先设计的启发式特征选择策略,从所述多个特征组中筛选出初始特征,得到筛选的候选特征序列,包括:

获取所述多个特征组中类相关度最大的第一特征;

获取所述多个特征组中Fisher得分最高的第二特征;

获取所述多个特征组内特征相关度累加和最大的第三特征;

获取所述多个特征组间特征相关度累加和最小的第四特征;

基于所述第一特征、所述第二特征、所述第三特征和所述第四特征,生成所述候选特征序列。

可选地,所述获取所述多个特征组中类相关度最大的第一特征,包括:

针对每个所述特征组,计算所述特征组内每个特征与目标类别之间的对称不确定性值;

选取所述对称不确定性值最大的特征作为所述第一特征。

可选地,所述获取所述多个特征组中Fisher得分最高的第二特征,包括:

针对每个所述特征组,计算所述特征组内每个特征的Fisher评分值;

选取所述特征组内的所述Fisher评分值最高的特征作为所述第二特征。

可选地,所述获取所述多个特征组内特征相关度累加和最大的第三特征,包括:

针对每个所述特征组,计算所述特征组内的一个特征与其它所有特征之前的对称不确定性值的和值;

将所述和值最大的特征作为所述第三特征。

可选地,所述获取所述多个特征组间特征相关度累加和最小的第四特征,包括:

针对每个所述特征组,计算所述特征组内的每个特征与其它特征组内的所有特征的对称不确定性值的和值;

将所述特征组内的对称不确定性值的和值最大的特征作为所述第四特征。

可选地,所述基于遗传算法从所述候选特征序列中搜索出目标特征子集,包括:

计算所述候选特征序列中每个特征出现的特征概率;

根据所述特征概率,生成由M个个体组成的初始种群;其中,M为正整数;

根据所述领域缺陷数据集、所述初始种群和适应度函数,计算所述M个个体对应的适应度;

根据所述适应度从所述候选特征序列中筛选出所述目标特征子集。

为了解决上述技术问题,本发明实施例还提供了一种软件缺陷预测特征的选择装置,包括:

缺陷数据集获取模块,用于根据历史软件缺陷数据库,获取领域缺陷数据集;

缺陷样本集生成模块,用于基于Bootstrap抽样技术对所述领域缺陷数据集进行抽样处理,生成软件缺陷样本集;

多个特征组获取模块,用于基于所述软件缺陷样本集和马尔科夫毯模型,对原始特征进行分组,得到多个特征组;

候选特征序列获取模块,用于根据预先设计的启发式特征选择策略,从所述多个特征组中筛选出初始特征,得到筛选的候选特征序列;

目标特征子集搜索模块,用于基于遗传算法从所述候选特征序列中搜索出目标特征子集。

可选地,所述多个特征组获取模块包括:

对称不确定值计算单元,用于计算所述软件缺陷样本集中特征与特征之间的对称不确定性SU1值,及所述软件缺陷样本集中特征与目标类别之间的对称不确定性SU2值;所述目标类别包括:缺陷类别和非缺陷类别;

多个特征组获取单元,用于根据所述对称不确定性SU1值、所述对称不确定性SU2值和所述马尔科夫毯模型,对所述原始特征进行分组,得到所述多个特征组。

可选地,所述候选特征序列获取模块包括:

第一特征获取单元,用于获取所述多个特征组中类相关度最大的第一特征;

第二特征获取单元,用于获取所述多个特征组中Fisher得分最高的第二特征;

第三特征获取单元,用于获取所述多个特征组内特征相关度累加和最大的第三特征;

第四特征获取单元,用于获取所述多个特征组间特征相关度累加和最小的第四特征;

候选特征序列生成单元,用于基于所述第一特征、所述第二特征、所述第三特征和所述第四特征,生成所述候选特征序列。

可选地,所述第一特征获取单元包括:

第一对称不确定性SU值计算子单元,用于针对每个所述特征组,计算所述特征组内每个特征与目标类别之间的对称不确定性值;

第一特征选取子单元,用于选取所述对称不确定性值最大的特征作为所述第一特征。

可选地,所述第二特征获取单元包括:

Fisher评分值计算子单元,用于针对每个所述特征组,计算所述特征组内每个特征的Fisher评分值;

第二特征选取子单元,用于选取所述特征组内的所述Fisher评分值最高的特征作为所述第二特征。

可选地,所述第三特征获取单元包括:

第一和值计算子单元,用于针对每个所述特征组,计算所述特征组内的一个特征与其它所有特征之前的对称不确定性值的和值;

第三特征获取子单元,用于将所述和值最大的特征作为所述第三特征。

可选地,所述第四特征获取单元包括:

第二和值计算子单元,用于针对每个所述特征组,计算所述特征组内的每个特征与其它特征组内的所有特征的对称不确定性值的和值;

第四特征获取子单元,用于将所述特征组内的对称不确定性值的和值最大的特征作为所述第四特征。

可选地,所述目标特征子集搜索模块包括:

特征概率计算单元,用于计算所述候选特征序列中每个特征出现的特征概率;

初始种群生成单元,用于根据所述特征概率,生成由M个个体组成的初始种群;其中,M为正整数;

适应度计算单元,用于根据所述领域缺陷数据集、所述初始种群和适应度函数,计算所述M个个体对应的适应度;

目标特征子集筛选单元,用于根据所述适应度从所述候选特征序列中筛选出所述目标特征子集。

本发明与现有技术相比的优点在于:本发明实施例提供的软件缺陷预测特征的选择方法及装置,基于Bootstrap抽样技术并结合多种特征排序技术以及遗传算法提出了由粗到精的特征选择方法,能够更有效地提高软件缺陷预测准确性。本发明实施例能够有效提升特征选择方法的噪声鲁棒性:采用Bootstrap抽样技术保证候选特征的多样性以及特征选择的抗噪声能力;在候选特征选择阶段,采用多种不同的特征选择策略,旨在具备更优的分类性能和噪声鲁棒性。

附图说明

图1为本发明实施例提供的一种软件缺陷预测特征的选择方法的步骤流程图;

图2为本发明实施例提供的一种软件缺陷预测特征的选择装置的结构示意图。

具体实施方式

实施例一

参照图1,示出了本发明实施例提供的一种软件缺陷预测特征的选择方法的步骤流程图,如图1所示,该软件缺陷预测特征的选择方法具体可以包括如下步骤:

步骤101:根据历史软件缺陷数据库,获取领域缺陷数据集。

在本发明实施例中,历史软件缺陷数据库是指预先保存的含有软件缺陷特征的数据库。

在需要进行软件缺陷预测特征的选择时,可以从历史软件缺陷数据库中选择领域缺陷数据集,具体地,从软件缺陷历史仓库中挖掘软件模块和度量元,并根据缺陷报告对数据集标签进行标注,形成领域缺陷数据集D。

在获取领域缺陷数据集之后,执行步骤102。

步骤102:基于Bootstrap抽样技术对所述领域缺陷数据集进行抽样处理,生成软件缺陷样本集。

在获取领域缺陷数据集之后,可以基于Bootstrap抽样技术对领域缺陷数据集进行抽样处理,生成软件缺陷样本集,具体地,结合Bootstrap抽样技术对该领域缺陷数据集进行抽样,生成N(N为正整数)个软件缺陷自助样本集(即本发明实施例统计的软件缺陷样本集),每个自助样本集规模和原数据集一样大。

在基于Bootstrap抽样技术对领域缺陷数据集进行抽样处理,生成软件缺陷样本集之后,执行步骤103。

步骤103:基于所述软件缺陷样本集和马尔科夫毯模型,对原始特征进行分组,得到多个特征组。

在生成软件缺陷样本集之后,可以基于软件缺陷样本集和马尔科夫毯对原始特征进行分组,以得到多个特征组,具体地,可以结合下述具体实现方式进行详细描述。

在本发明的一种具体实现方式中,上述步骤103可以包括:

子步骤A1:计算所述软件缺陷样本集中特征与特征之间的对称不确定性SU1值,及所述软件缺陷样本集中特征与目标类别之间的对称不确定性SU2值;所述目标类别包括:缺陷类别和非缺陷类别。

在本发明实施例中,对称不确定性SU值是指对称不确定性所对应的数值。

在获取软件缺陷样本集之后,可以计算软件缺陷样本集中特征与特征之间的对称不确定性,并将该对称不确定性对应的数值作为对称不确定性SU1值,记为SU(f

目标类别是指对软件特征进行分类的类别,可以包括缺陷类别和非缺陷类别。

在计算得到对称不确定性SU1值和对称不确定性SU2值之后,执行子步骤A2。

子步骤A2:根据所述对称不确定性SU1值、所述对称不确定性SU2值和所述马尔科夫毯模型,对所述原始特征进行分组,得到所述多个特征组。

在计算得到对称不确定性SU1值和对称不确定性SU2值之后,可以根据对称不确定性SU1值和对称不确定性SU2值,结合马尔科夫毯模型对原始特征进行分组,以得到多个特征组,即根据SU(f

分组后的特征具有如下特点:同一特征组中的特征冗余度较高;而不同特征组之间的特征冗余度较低。

在对原始特征进行分组得到多个特征组之后,执行步骤104。

步骤104:根据预先设计的启发式特征选择策略,从所述多个特征组中筛选出初始特征,得到筛选的候选特征序列。

在对原始特征进行分组得到多个特征组之后,可以根据预先设计的启发式特征选择策略,从多个特征组中筛选出初始特征,得到筛选的候选特征序列,具体地,可以结合下述具体实现方式进行详细描述。

在本发明的另一种具体实现方式中,上述步骤104可以包括:

子步骤B1:获取所述多个特征组中类相关度最大的第一特征。

在本发明实施例中,第一特征是指从多个特征组中选择的类相关度最大的特征。

在获取多个特征组之后,可以获取多个特征组中类相关度最大的第一特征,具体地,针对每个特征组,依次计算组里每个特征与类的对称不确定性,选择取值最大的特征作为候选特征。

子步骤B2:获取所述多个特征组中Fisher得分最高的第二特征。

第二特征是指从多个特征组中选择的Fisher得分最高的特征。

在获取多个特征组之后,可以获取多个特征组中Fisher得分最高的特征作为第二特征,具体地,针对每个特征组,依次计算组里每个特征的Fisher得分,选择取值最大的特征作为候选特征。

子步骤B3:获取所述多个特征组内特征相关度累加和最大的第三特征。

第三特征是指从多个特征组中选择的特征相关度累加和最大的特征。

在获取多个特征组之后,可以获取多个特征组内特征相关度累加和最大的特征作为第三特征,具体地,针对每个特征组,可以计算特征组内的一个特征与其它所有特征之前的对称不确定性值的和值,并将和值最大的特征作为第三特征。

子步骤B4:获取所述多个特征组间特征相关度累加和最小的第四特征。

第四特征是指多个特征组间特征相关度累加和最小的特征。

在获取多个特征组之后,可以获取多个特征组间特征相关度累加和的最小值,以作为第四特征,具体地,针对每个特征组,计算特征组内的每个特征与其它特征组内的所有特征的对称不确定性值的和值,将特征组内的对称不确定性值的和值最大的特征作为第四特征。

子步骤B5:基于所述第一特征、所述第二特征、所述第三特征和所述第四特征,生成所述候选特征序列。

在获取上述第一特征、第二特征、第三特征和第四特征之后,可以结合第一特征、第二特征、第三特征和第四特征生成候选特征序列,可以理解地,候选特征序列组织形式包括:候选特征的名称以及其被选中的次数,即结合候选特征的名称和被选中的次数进行排序,以生成候选特征序列。

在得到筛选的候选特征序列之后,执行步骤105。

步骤105:基于遗传算法从所述候选特征序列中搜索出目标特征子集。

在得到候选特征序列之后,可以基于遗传算法从候选特征序列中搜索出目标特征子集,具体地,可以结合下述具体实现方式进行详细描述。

在本发明的另一种具体实现方式中,上述步骤105可以包括:

子步骤C1:计算所述候选特征序列中每个特征出现的特征概率;

子步骤C2:根据所述特征概率,生成由M个个体组成的初始种群;其中,M为正整数;

子步骤C3:根据所述领域缺陷数据集、所述初始种群和适应度函数,计算所述M个个体对应的适应度;

子步骤C4:根据所述适应度从所述候选特征序列中筛选出所述目标特征子集。

在本发明实施例中,在获取候选特征序列之后,可以先对候选特征序列中的候选特征进行二进制编码,具体为:假设候选特征个数为L,则通过二进制编码得到一个长度为L的二进制符号串,若第i位所代表的特征被选中则将该位设置为1,否则设置为0。

计算候选特征序列C中的每个特征出现的概率(计算公式为:该特征被选中的次数/候选特征序列中所有特征被选中次数之和)并根据计算后的概率生成M个个体g1,g2…gM组成初始种群G;

根据领域缺陷数据集D和初始种群G,利用适应度函数计算每个个体的适应度,并根据适应度进行选择操作,其中适应度函数由选择朴素贝叶斯作为分类器后的预测准确率以及惩罚项2部分组成;

进而,结合遗传算子进行迭代操作,具体地,可以采用单点交叉算子进行交叉操作并采用基本位变异进行变异操作,生成新的种群G*;

判断是否满足终止条件,若不满足,则转到步骤2继续执行,否则输出最优特征子集。其中终止条件为达到最大代数或连续十次保持所选特征子集不变。

其中,构造适应度函数的过程可以为:选择经典的朴素贝叶斯作为分类器并将预测准确率作为适应度函数的一部分,在适应度函数中增加了惩罚项用于控制选入特征子集中的特征个数。

选择遗传算子的过程可以为:选择算子采用最佳保留选择法;交叉算子采用单点交叉;变异算子采用基本位变异;终止条件为达到最大代数或连续十次保持所选特征子集不变。

本发明实施例提供的软件缺陷预测特征的选择方法,基于Bootstrap抽样技术并结合多种特征排序技术以及遗传算法提出了由粗到精的特征选择方法,能够更有效地提高软件缺陷预测准确性。本发明实施例能够有效提升特征选择方法的噪声鲁棒性:采用Bootstrap抽样技术保证候选特征的多样性以及特征选择的抗噪声能力;在候选特征选择阶段,采用多种不同的特征选择策略,旨在具备更优的分类性能和噪声鲁棒性。

实施例二

参照图2,示出了本发明实施例提供的一种软件缺陷预测特征的选择装置的结构示意图,如图2所示,该软件缺陷预测特征的选择装置具体可以包括如下模块:

缺陷数据集获取模块210,用于根据历史软件缺陷数据库,获取领域缺陷数据集;

缺陷样本集生成模块220,用于基于Bootstrap抽样技术对所述领域缺陷数据集进行抽样处理,生成软件缺陷样本集;

多个特征组获取模块230,用于基于所述软件缺陷样本集和马尔科夫毯模型,对原始特征进行分组,得到多个特征组;

候选特征序列获取模块240,用于根据预先设计的启发式特征选择策略,从所述多个特征组中筛选出初始特征,得到筛选的候选特征序列;

目标特征子集搜索模块250,用于基于遗传算法从所述候选特征序列中搜索出目标特征子集。

可选地,所述多个特征组获取模块包括:

对称不确定性SU值计算单元,用于计算所述软件缺陷样本集中特征与特征之间的对称不确定性SU1值,及所述软件缺陷样本集中特征与目标类别之间的对称不确定性SU2值;所述目标类别包括:缺陷类别和非缺陷类别;

多个特征组获取单元,用于根据所述对称不确定性SU1值、所述对称不确定性SU2值和所述马尔科夫毯模型,对所述原始特征进行分组,得到所述多个特征组。

可选地,所述候选特征序列获取模块包括:

第一特征获取单元,用于获取所述多个特征组中类相关度最大的第一特征;

第二特征获取单元,用于获取所述多个特征组中Fisher得分最高的第二特征;

第三特征获取单元,用于获取所述多个特征组内特征相关度累加和最大的第三特征;

第四特征获取单元,用于获取所述多个特征组间特征相关度累加和最小的第四特征;

候选特征序列生成单元,用于基于所述第一特征、所述第二特征、所述第三特征和所述第四特征,生成所述候选特征序列。

可选地,所述第一特征获取单元包括:

第一对称不确定性SU值计算子单元,用于针对每个所述特征组,计算所述特征组内每个特征与目标类别之间的对称不确定性值;

第一特征选取子单元,用于选取所述对称不确定性值最大的特征作为所述第一特征。

可选地,所述第二特征获取单元包括:

Fisher评分值计算子单元,用于针对每个所述特征组,计算所述特征组内每个特征的Fisher评分值;

第二特征选取子单元,用于选取所述特征组内的所述Fisher评分值最高的特征作为所述第二特征。

可选地,所述第三特征获取单元包括:

第一和值计算子单元,用于针对每个所述特征组,计算所述特征组内的一个特征与其它所有特征之前的对称不确定性值的和值;

第三特征获取子单元,用于将所述和值最大的特征作为所述第三特征。

可选地,所述第四特征获取单元包括:

第二和值计算子单元,用于针对每个所述特征组,计算所述特征组内的每个特征与其它特征组内的所有特征的对称不确定性值的和值;

第四特征获取子单元,用于将所述特征组内的对称不确定性值的和值最大的特征作为所述第四特征。

可选地,所述目标特征子集搜索模块包括:

特征概率计算单元,用于计算所述候选特征序列中每个特征出现的特征概率;

初始种群生成单元,用于根据所述特征概率,生成由M个个体组成的初始种群;其中,M为正整数;

适应度计算单元,用于根据所述领域缺陷数据集、所述初始种群和适应度函数,计算所述M个个体对应的适应度;

目标特征子集筛选单元,用于根据所述适应度从所述候选特征序列中筛选出所述目标特征子集。

本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号