一种基于候选测试用例集迭代的自适应随机测试方法与流程

文档序号:20700091发布日期:2020-05-12 15:34阅读:457来源:国知局
一种基于候选测试用例集迭代的自适应随机测试方法与流程

本发明提出了一种改进的基于候选测试用例集迭代的自适应随机测试方法,用于降低传统fscs_art技术的时间开销,属于测试自动化的技术领域。



背景技术:

随着软件市场的不断扩大,导致软件规模日趋增大,软件功能日益复杂,如何确保软件产品的质量成为了一个重要的研究热点,而软件测试无疑成为了确保软件质量的重要环节。针对软件测试,科研人员提出了许多软件测试技术,而其中,随机测试由于其概念简单且可自动化,受到了越来越多的关注。

随机测试可以检测出人们无法预料到的错误(而这种错误的检测看起来只能由随机测试做到),但是,对于随机测试的争议自始至终存在,而这种争议主要是由于,随机测试只是盲目的随机产生测试用例,从不考虑已经执行过的测试用例的信息,所以,科研人员对于随机测试的效能产生了极大的争议性。

同时,chan等人发现,软件测试的表现受软件失效模式的影响,所谓失效模式就是指软件失效区域的分布模式。他们发现,软件失效区域往往呈现连续型分布。chan等人总结提出了三种失效模式:(i)块状模式,如图1的a图所示。(ii)条状模式,如图1的b图所示。(iii)点状模式,如图1的c图所示。同时,他们指出,块状和条状模式比点状模式更为普遍。

由于,失效区域是连续性的,不是失效区域的区域也应该是连续性的,所以,这给了科研人员很大的启发:当测试用例均匀分布,会增大测试用例找到失效区域的机会。基于这种启发,chan等人提出了art(自适应随机测试)方法。

传统的fscs_art(固定大小候选集的自适应随机测试)方法,通过不断计算距离,来达到测试用例的均匀分布,但是这种方法有很大的时间开销。时间开销主要来源于每个候选测试用例与每个已执行测试用例之间距离的计算,随着已执行的测试用例数量增长,计算开销快速增长。为此,本发明提出来一种基于测试用例迭代的自适应随机测试方法,在维持fscs_art算法性能的情况下,节省50%的时间开销。



技术实现要素:

为了能够有效地提高随机测试方法的性能,本发明提出了一种基于测试用例迭代的自适应随机测试方法。另外,本发明还与fscs_art方法进行了比较,验证了提出方法的有效性和先进性。本发明的技术方案包括如下步骤:

步骤1,根据被测程序,确定输入域的维度和范围;初始化executed(已执行测试用例集)数组及candidate(候选测试用例)数组

步骤2,在输入域范围内随机生成第一个测试用例,如果测试用例检测到程序错误,测试结束,并反馈相关信息,否则转到步骤3;

步骤3,随机生成10个候选测试用例,保存进候选测试用例集;

步骤4,计算每个候选测试用例与已执行测试用例的相似性。选择相似性最低的候选测试用例作为下一个测试用例,执行该测试用例,如果测试用例检测到程序错误,测试结束,并反馈相关信息,否则转到步骤5;

步骤5,更新其余9个候选测试用例与被选中的测试的相似性;保留k个相似性较低的测试用例,其余丢弃;

步骤6,随机生成10-k个候选测试用例加入候选测试用例集,转到步骤4。

所述步骤1的具体过程如下:

步骤1.1,根据前期的软件设计文档,确定软件的输入域范围(即具有合理输入的集合);

步骤1.2,根据步骤1.1确定的输入域,确定软件的维度,维度和输入域相关,当输入域的参数为n时,则输入域的维度为n;

步骤1.3,初始化executed数组,大小不限;初始化candidate数组,大小固定为10。

所述步骤2的具体过程如下:

步骤2.1,根据输入域的维度和每个维度的范围值,随机产生第一个测试用例。

步骤2.2,将该测试用例测试软件,如果实际输出结果与预期输出结果一致,认为没有发现软件错误,转到步骤4,如果不一致,认为软件存在错误,测试结束。

所述步骤4的具体过程如下:

步骤4.1,本发明选用相似性度量为欧式距离,即距离越近,相似性越高。可根据实际程序选用合适的度量。

步骤4.2,计算每个候选测试用例与每个已执行测试用例的距离,选择最小距离为该候选测试用例的相似性值,选择候选测试用例中相似性值最低(最小距离最大)的测试用例为待测用例。

所述步骤5的具体过程如下:

步骤5.1,计算候选测试用例集剩余9个测试用例与本次选中的测试用例之间的相似性,若候选测试用例与被测用例相似性高于候选测试用例本身相似性值,则更新候选测试用例的相似性值(取更高相似性值)。

步骤5.2,更新完毕后,从剩余9个候选测试用例中选择相似性较低(最小距离较大)保留,其余丢弃。

步骤5.3,经实证研究分析,考虑算法性能与时间开销,在k=5时,综合性能最佳。

本发明的有益效果:

1、本发明构建了一种基于候选测试用例迭代的自适应随机测试方法,用于减少fscs_art算法计算候选测试用例与已执行测试用例相似性的计算开销,同时维持了fscs_art算法的高性能,综上所述,该方法的时间开销相比于fscs_art有很大的降低。

2、同比fscs_art方法,本发明的方法,在维持了相同水平的算法效率同时,降低了约50%的时间开销。

附图说明

图1是三种失效模式示意图;

图2是fscs_art方法的流程图。

图3是本发明方法的流程图。

具体实施方式

下面结合附图和实施案例对本发明作进一步说明,应指出的是,所描述的实施案例仅旨在便于对本发明的理解,而对其不起任何限定作用。

本发明以降低fscs_art方法时间开销为目的,提供一种基于测试用例迭代的自适应随机测试方法,同时维持原算法高性能,有效地检测软件bug。为此验证本发明的方法,采用二维仿真实验对其进行说明。

如图3所示,本发明提出的算法包含如下步骤:

步骤1,生成二维正方形作为输入域,其中每个维度的范围为(0-1),同时生成失效率为a(通过实验预先设置)的正方形失效区域;

步骤2,在输入域范围内随机生成第一个测试用例,如果测试用例检测到程序错误,测试结束,并反馈相关信息,否则转到步骤3;

步骤3,随机生成10个候选测试用例,保存进候选测试用例集;

步骤4,计算每个候选测试用例与已执行测试用例的相似性。选择相似性最低的候选测试用例作为下一个测试用例,执行该测试用例,如果测试用例检测到程序错误,测试结束,并反馈相关信息,否则转到步骤5;

步骤5,更新其余9个候选测试用例与被选中的测试的相似性;保留k个相似性较低的测试用例,其余丢弃;

步骤6,随机生成10-k个候选测试用例加入候选测试用例集,转到步骤4。

上述步骤1的具体步骤如下:

步骤1.1,根据前期的软件设计文档,确定软件的输入域范围(即具有合理输入的集合),在该实例中,产生一个二维正方形的输入域,输入域在每个维度上的范围都为0—1;

步骤1.2,根据步骤1.1确定的输入域,确定软件的维度,维度和输入域相关,由于该输入域涉及两个参数(x轴坐标输入及y轴坐标输入),所以维度为2;

步骤1.3,根据步骤1.1产生的输入域,求得输入域的面积(设为d),在输入域中随机产生一个正方形的、面积为a*d的失效域。

步骤1.4,初始化executed数组,大小不限;初始化candidate数组,大小固定为10。

上述步骤2的具体步骤如下:

步骤2.1,根据输入域的维度和每个维度的范围值,随机产生第一个测试用例。

步骤2.2,判断该测试用例是否在失效区域中,如果不在失效区域中,认为没有发现错误,转到步骤4,如果位于失效区域中,认为存在错误,测试结束。

上述步骤4的具体步骤如下:

步骤4.1,本发明选用相似性度量为欧式距离,即距离越近,相似性越高。实际应用需要根据实际程序选用合适的度量。例如,待测程序需要数值型输入,则可选用欧式距离、曼哈顿距离等能衡量数值类型输入的相似性度量(具体选择根据需求);如果待测程序需要字符串输入,则可选用字符串编辑距离作为相似性度量。

步骤4.2,计算每个候选测试用例与每个已执行测试用例的距离,选择最小距离为该候选测试用例的最高相似性值并保存,选择候选测试用例中最高相似性值最低小(与其他已执行测试用例最小距离最大)的测试用例为待测用例。

上述步骤5的具体步骤如下:

步骤5.1,计算候选测试用例集剩余9个测试用例与本次选中的测试用例之间的相似性,若候选测试用例与本次被测用例之间相似性高于候选测试用例之前保存的最高相似性值,则更新候选测试用例的最高相似性值并保存(取更高相似性值)。

步骤5.2,更新完毕后,从剩余9个候选测试用例中选择相似性较低(最小距离较大)的k个保留,其余丢弃。

步骤5.3,经实证研究分析,考虑算法性能与时间开销,在k=5时,综合性能最佳。评估标准

本发明旨在保证并提高测试效率的基础上,减少测试用例生成的时间,在实际的软件测试过程中,测试人员往往在发现第一个bug时,就开始了程序修复,所以,将发现第一个错误所需的测试用例数量作为检查标准就具有重要的实际意义。将测试过程中发现第一个错误所需要的测试用例的平均值作为衡量标准,称之为f_measure,同样,将测试过程中发现第一个错误所需要的测试用例的平均时间作为衡量标准,称之为f_time。对于本发明的方法,采用5%的准确率和95%的置信水平,根据中心极限定理,所需实验次数至少为3000次。

结果分析

本发明设置了二维正方形输入域,同时分别设定失效率大小为0.005,0.001,0.0005,0.0001这四组实验,获取了分别采用fscs_art方法和本发明的方法检测错误所需的测试用例的数量以及时间,其中,fscs_art方法的流程图按照图2所示执行,具体的对比结果如下。

表1f_measure实验结果对比

表2f_time实验结果对比

最终的实验结果显示,同比fscs_art方法,本发明的方法,维持了相同水平的算法效率,降低了约50%的时间开销。

上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1