当前位置: 首页 > 专利查询>江苏大学专利>正文

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

技术编号:24120840 阅读:39 留言:0更新日期:2020-05-13 03:02
本发明专利技术公开了一种基于候选测试用例集迭代的自适应随机测试方法,通过减少随机生成的候选测试用例数量,降低自适应随机测试中候选测试用例与已执行测试用例之间的计算开销,提高自适应随机测试的时间性能。本发明专利技术主要包括:1、确定输入域的范围;2、在输入域中随机生成第一个测试用例;3、随机生成N个候选测试用例构成候选测试用例集;4、采用FSCS_ART算法选出下一个测试用例;5、更新候选测试用例集,保留K个相似性较低的候选测试用例,其余丢弃。6、随机生成N‑K个测试用例补充进候选测试用例集。重复4‑6,直到找到程序错误。通过实验验证,本发明专利技术的方法与FSCS_ART相比,在维持相同算法性能情况下,仅需要约50%的时间开销。

【技术实现步骤摘要】
一种基于候选测试用例集迭代的自适应随机测试方法
本专利技术提出了一种改进的基于候选测试用例集迭代的自适应随机测试方法,用于降低传统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.一种基于候选测试用例集迭代的自适应随机测试方法,其特征在于,包括如下步骤:/n步骤1,根据被测程序,确定输入域的维度和范围;初始化Executed(已执行测试用例集)数组及Candidate(候选测试用例)数组/n步骤2,在输入域范围内随机生成第一个测试用例,如果测试用例检测到程序错误,测试结束,并反馈相关信息,否则转到步骤3;/n步骤3,随机生成M个候选测试用例,保存进候选测试用例集;/n步骤4,计算每个候选测试用例与已执行测试用例的相似性,选择相似性最低的候选测试用例作为下一个测试用例,执行该测试用例,如果测试用例检测到程序错误,测试结束,并反馈相关信息,否则转到步骤5;/n步骤5,更新其余M-1个候选测试用例与被选中的测试的相似性;保留K个相似性较低的测试用例,其余丢弃;/n步骤6,随机生成M-K个候选测试用例加入候选测试用例集,转到步骤4。/n

【技术特征摘要】
1.一种基于候选测试用例集迭代的自适应随机测试方法,其特征在于,包括如下步骤:
步骤1,根据被测程序,确定输入域的维度和范围;初始化Executed(已执行测试用例集)数组及Candidate(候选测试用例)数组
步骤2,在输入域范围内随机生成第一个测试用例,如果测试用例检测到程序错误,测试结束,并反馈相关信息,否则转到步骤3;
步骤3,随机生成M个候选测试用例,保存进候选测试用例集;
步骤4,计算每个候选测试用例与已执行测试用例的相似性,选择相似性最低的候选测试用例作为下一个测试用例,执行该测试用例,如果测试用例检测到程序错误,测试结束,并反馈相关信息,否则转到步骤5;
步骤5,更新其余M-1个候选测试用例与被选中的测试的相似性;保留K个相似性较低的测试用例,其余丢弃;
步骤6,随机生成M-K个候选测试用例加入候选测试用例集,转到步骤4。


2.根据权利要求1所述的一种基于候选测试用例集迭代的自适应随机测试方法,其特征在于,所述步骤1的具体过程如下:
步骤1.1,根据前期的软件设计文档,确定软件的输入域范围,即具有合理输入的集合;
步骤1.2,根据步骤1.1确定的输入域,确定软件的维度,维度和输入域相关,当输入域的参数为N,则输入域的维度为N;
步骤1.3,根据步骤1.1产生的输入域,求得输入域的面积(设为D),在输入域中随机产生一个正方形的、面积为a*D的失效域;
步骤1.4,初始化Executed数组,大小不限;初始化Candidate数组,大小固定为M。


3.根据权利要求1所述的一种基于候选测试用例集迭代的自适应随机测试方法,其特征在于,所述M设置为10。


4.根据权利要求...

【专利技术属性】
技术研发人员:黄如兵陈海波孙伟峰陈锦富
申请(专利权)人:江苏大学
类型:发明
国别省市:江苏;32

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

1