[发明专利]一种基于自适应随机策略的蜕变测试用例生成方法在审
申请号: | 201410851718.1 | 申请日: | 2014-12-31 |
公开(公告)号: | CN104572462A | 公开(公告)日: | 2015-04-29 |
发明(设计)人: | 惠战伟;黄松;李辉;饶莉萍;王梅娟;吕学伟 | 申请(专利权)人: | 中国人民解放军理工大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 南京钟山专利代理有限公司 32252 | 代理人: | 戴朝荣 |
地址: | 210007 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 自适应 随机 策略 蜕变 测试 生成 方法 | ||
技术领域
本发明涉及一种蜕变测试用例生成方法,尤其涉及一种基于自适应随机策略的蜕变测试用例生成方法,属于软件蜕变测试技术领域。
背景技术
蜕变测试技术(Metamorphic Testing)是当前解决软件测试判定难题的一种有效并且实用的手段。这种测试技术提出的初衷就是通过蜕变关系根据已有测试用例生成额外的测试用例,然后通过相应的蜕变关系检查这两种测试用例是否满足蜕变关系。前一种测试用例称之为蜕变测试的原始测试用例,简称原始测试用例(Original Test Cases:OTC)。后一种测试用例就是蜕变测试的附加测试用例,简称为附加测试用例(Follow-up Test Cases: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中原始测试用例个数的整数倍。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军理工大学,未经中国人民解放军理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410851718.1/2.html,转载请声明来源钻瓜专利网。