一种基于自适应随机策略的蜕变测试用例生成方法技术

技术编号:11404689 阅读:127 留言:0更新日期:2015-05-03 20:46
本发明专利技术公开了一种基于自适应随机策略的蜕变测试用例生成方法,即基于自适应策略随机自动生成测试用例。首先,随机生成第一组原始测试用例,并根据蜕变关系生成附加测试用例,两者构成已选择测试用例;其次,对输入域进行划分,得到末被已选择测试用例覆盖的子域;再次,在该子域中随机生成多个测试用例,从中选择一组测试用例作为候选原始测试用例,并根据蜕变关系生成附加测试用例;最后,根据候选测试用例与已选择测试用例之间的距离,以及候选原始测试用例与其附加测试用例之间的距离,选择距离最大的测试用例作为下一组测试用例。本发明专利技术的测试用例生成方法简单、明了,极大地改进了测试用例在输入域中的分散性、有效性和覆盖率。

【技术实现步骤摘要】
一种基于自适应随机策略的蜕变测试用例生成方法
本专利技术涉及一种蜕变测试用例生成方法,尤其涉及一种基于自适应随机策略的蜕变测试用例生成方法,属于软件蜕变测试

技术介绍
蜕变测试技术(MetamorphicTesting)是当前解决软件测试判定难题的一种有效并且实用的手段。这种测试技术提出的初衷就是通过蜕变关系根据已有测试用例生成额外的测试用例,然后通过相应的蜕变关系检查这两种测试用例是否满足蜕变关系。前一种测试用例称之为蜕变测试的原始测试用例,简称原始测试用例(OriginalTestCases:OTC)。后一种测试用例就是蜕变测试的附加测试用例,简称为附加测试用例(Follow-upTestCases:FTC)。传统上认为,原始测试用例的生成并不属于蜕变测试研究的范畴,因为蜕变测试的主要目的是,通过设计和构造有效的蜕变关系,来构造附加测试用例,从而解决其它测试技术生成的原始测试用例在测试时面临的测试判定难题。因此,在蜕变测试领域,往往都关注对于目标程序如何构造有效的蜕变关系。通常认为蜕变关系的构造与选择会对蜕变测试结果产生影响,对于测试用例生成技术在蜕变测试中的作用并没有引起足够的重视。而软件测试的一个基本假设是,只有一次测试覆盖到一个存在故障的语句或者程序构件,这时才有可能发现这个故障导致的失效。对于蜕变测试,如果原始测试用例和附加测试用例都没有覆盖到故障所在语句,则通常不会发现失效目标。这样原始测试用例的选择就会对蜕变测试结果产生影响,但是至今这个结论也没有被验证。在蜕变测试中,当蜕变关系确定后,通常采用随机值策略生成原始测试用例。由于随机值测试技术具有简单适用性,因此在蜕变测试中获得了广泛的应用。这种通用随机值测试技术虽然简单,但是在测试用例生成过程中对于测试覆盖并没有提供有用的信息,具有一定的盲目性,所以其有效性与其它测试技术相比通常被认为不够高。
技术实现思路
为了提高传统随机测试的有效性,基于对失效测试用例在连通域中聚集分布的现象,本专利技术的目的是提供一种基于自适应随机策略的蜕变测试用例生成方法,在蜕变测试中采用随机值策略生成的原始测试用例的基础上,引入以测试用例之间的距离为度量指标,自适应生成和选择下一个测试用例,从而能够提高测试用例的有效性和测试覆盖率。这种技术通过在生成原始测试用例的过程中采用自适应随机策略,从而保证测试用例在输入域中尽可能广泛的分布,这样可以在蜕变关系确定的条件下,提高蜕变测试的性能。本专利技术的技术方案是提供一种基于自适应随机策略的蜕变测试用例生成方法,其设计要点在于,包括以下步骤:步骤1对于被测软件采用随机值策略随机生成一组原始测试用例OTC,由原始测试用例根据蜕变关系的输入关系生成相应的附加测试用例FTC;此步骤生成的一组已选择测试用例OTC和FTC的个数为|OTC|+|FTC|,其中|OTC|表示原始测试用例的个数,|FTC|表示附加测试用例的个数;步骤2根据步骤1生成的一组已选择测试用例OTC和FTC,采用自适应随机策略生成下一组测试用例,包括以下子步骤;子步骤1将被测软件的输入域划分为|OTC|+|FTC|+1个子域;子步骤2在不存在已选择测试用例的子域中采用随机值策略生成k个测试用例;子步骤3从所述k个测试用例中未被选择作为候选原始测试用例的测试用例中随机选择一组测试用例作为候选原始测试用例;根据候选原始测试用例和蜕变关系的输入关系生成附加测试用例,候选原始测试用例和附加测试用例组成候选测试用例;在输入域空间中计算候选测试用例与步骤1中的已选择测试用例之间的距离Di;在输入域空间中计算候选原始测试用例与其附加测试用例之间的距离Disj所述k个测试用例中若存在未被选择作为候选原始测试用例的测试用例时,则重新执行此子步骤3;子步骤4选择Di最大的候选测试用例,作为备选测试用例;子步骤5若多个备选测试用例的Di相同时,则选择Disj最大的备选测试用例,并将其对应的原始测试用例和附加测试用例分别加入已选择测试用例OTC和FTC;步骤3若还需要生成测试用例,则转到步骤2执行;步骤4结束测试用例生成。本专利技术在应用中,还有如下进一步优化的技术方案。进一步地,所述子步骤2中k的取值为步骤1中原始测试用例个数的整数倍。进一步地,所述子步骤3中候选原始测试用例的个数和步骤1中的原始测试用例的个数相同。进一步地,所述子步骤3中生成附加测试用例的个数和步骤1中的蜕变关系的附加测试用例的个数相一致。进一步地,所述测试用例之间的距离采用欧几里得距离,计算公式为式中(x,y)为测试用例在输入域空间中的坐标。在传统的蜕变测试中,为了提高蜕变测试有效性,通常都针对蜕变关系进行研究。通过对目标软件构造更多有效的蜕变关系,来尽可能多的检测软件中存在的失效和故障。而目前,蜕变关系的构造还是依赖于测试人员对被测件的熟悉程度,不能实现完全的自动生成。本专利技术提供的基于自适应随机值策略的蜕变测试用例生成方法,为蜕变测试自动生成更加有效的测试用例提供了一种技术方案。首先,随机生成第一组原始测试用例,并根据蜕变关系生成相应的附加测试用例,这两类测试用例构成了已选择测试用例;其次,通过对被测软件的输入域进行划分,得到未被已选择测试用例覆盖的子域;再次,在该子域中随机生成多个测试用例,并从中选择一组测试用例作为候选原始测试用例,再根据蜕变关系生成附加测试用例,候选原始测试用例和附加测试用例构成候选测试用例;最后,根据候选测试用例与已选择测试用例之间的距离,以及候选原始测试用例与其附加测试用例之间的距离,选择距离最大的测试用例作为下一组测试用例。本专利技术提供的测试用例生成方法简单、明了,通过自适应策略,极大地改进了原有随机生成测试用例的有效性和覆盖率,为蜕变测试中测试用例的生成提供了一种规范、精确、有效的方法,有助于蜕变测试用例自动生成的实施。有益效果蜕变测试用例自动生成,本专利技术是基于自适应随机策略自动生成测试用例,首先,随机生成第一组原始测试用例,并根据蜕变关系生成相应的附加测试用例,这两类测试用例构成了已选择测试用例;其次,通过对被测软件的输入域进行划分,得到未被已选择测试用例覆盖的子域;再次,在该子域中随机生成多个测试用例,并从中选择一组测试用例作为候选原始测试用例,再根据蜕变关系生成附加测试用例,候选原始测试用例和附加测试用例构成候选测试用例;最后,根据候选测试用例与已选择测试用例之间的距离,以及候选原始测试用例与其附加测试用例之间的距离,选择距离最大的测试用例作为下一组测试用例。测试用例生成方法简单、明了,通过自适应策略,极大改进了原有随机生成测试用例在被测软件的输入域中分散性、有效性和覆盖率。附图说明图1本专利技术的蜕变测试用例生成方法流程图。图2实例中生成的测试用例在被测软件的输入域中的分布。图3在图2中的输入域中进行的子域划分。图4在图3中未被已选择测试用例覆盖的子域中随机生成候选原始测试用例。图5由图4中的候选原始测试用例生成的附加测试用例。图6测试用例间的距离示意图。具体实施方式为了阐明本专利技术的技术方案及技术目的,下面结合附图、具体实施方式和具体实施例对本专利技术做进一步的介绍。实施方式本专利技术的一种基于自适应随机策略的蜕变测试用例生成方法,如图1所示,包括以下步骤:步骤1对于被测软件采用本文档来自技高网
...
一种基于自适应随机策略的蜕变测试用例生成方法

【技术保护点】
一种基于自适应随机策略的蜕变测试用例生成方法,其特征在于,包括以下步骤:步骤1对于被测软件采用随机值策略随机生成一组原始测试用例OTC,由原始测试用例根据蜕变关系的输入关系生成相应的附加测试用例FTC;此步骤生成的一组已选择测试用例OTC和FTC的个数为|OTC|+|FTC|,其中|OTC|表示原始测试用例的个数,|FTC|表示附加测试用例的个数;步骤2根据步骤1生成的一组已选择测试用例OTC和FTC,采用自适应随机策略生成下一组测试用例,包括以下子步骤;子步骤1将被测软件的输入域划分为|OTC|+|FTC|+1个子域;子步骤2在不存在已选择测试用例的子域中采用随机值策略生成k个测试用例;子步骤3从所述k个测试用例中未被选择的测试用例中随机选择一组测试用例作为候选原始测试用例;根据候选原始测试用例和蜕变关系的输入关系生成附加测试用例,候选原始测试用例和附加测试用例组成候选测试用例;在输入域空间中计算候选测试用例与步骤1中的已选扦测试用例之间的距离Di;在输入域空间中计算候选原始测试用例与其附加测试用例之间的距离Disj所述k个测试用例中若存在未被选择作为候选原始测试用例的测试用例时,则重新执行此子步骤3;子步骤4选择Di最大的候选测试用例,作为备选测试用例;子步骤5若多个备选测试用例的Di相同时,则选扦Disj最大的备选测试用例,并将其对应的原始测试用例和附加测试用例分别加入已选择测试用例OTC和FTC;步骤3若还需要生成测试用例,则转到步骤2执行;步骤4结束测试用例生成。...

【技术特征摘要】
1.一种基于自适应随机策略的蜕变测试用例生成方法,其特征在于,包括以下步骤:步骤1对于被测软件采用随机值策略随机生成一组原始测试用例OTC,由原始测试用例根据蜕变关系的输入关系生成相应的附加测试用例FTC;此步骤生成的一组已选择测试用例OTC和FTC的个数为|OTC|+|FTC|,其中|OTC|表示原始测试用例的个数,|FTC|表示附加测试用例的个数;步骤2根据步骤1生成的一组已选择测试用例OTC和FTC,采用自适应随机策略生成下一组测试用例,包括以下子步骤;子步骤1将被测软件的输入域划分为|OTC|+|FTC|+1个子域;子步骤2在不存在已选择测试用例的子域中采用随机值策略生成k个测试用例;子步骤3从所述k个测试用例中未被选择的测试用例中随机选择一组测试用例作为候选原始测试用例;根据候选原始测试用例和蜕变关系的输入关系生成附加测试用例,候选原始测试用例和附加测试用例组成候选测试用例;在输入域空间中计算候选测试用例与步骤1中的已选择测试用例之间的距离Di:在输入域空间中计算候选原始测试用例与其附加测试用例之间的距离Disj所述k个测试用例中若存在未被选择作为...

【专利技术属性】
技术研发人员:惠战伟黄松李辉饶莉萍王梅娟吕学伟
申请(专利权)人:中国人民解放军理工大学
类型:发明
国别省市:江苏;32

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

1