1、定义
随机测试是根据测试说明书执行样例测试的重要补充手段,是保证测试覆盖完整性的有效方式和过程。 随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试样例没有覆盖到的部分。
2、使用范围
当程序的输入参数过多时,往组合关系非常庞大,以至于据此因果图判定表而得到的测试用例数目多的惊人,给软件测试带来沉重的负担,为了有效地,合理地减少测试的工时与费用,可利用随机抽样方法进行测试用例的设计。
当应用程序输入参数超过5个,且这5个参数可以自由组合时,就会产生31种组合。仅仅输出参数的组合就会产生31个测试用例,加上等价类边界值等法,测试用例将会很庞大。此时可以采用随机测试的方法,进行对被测软件的功能测试覆盖。
3、使用前提
随机测试法需要定义每个输入参数的出现概率和参数个数组合的权重,这就需要测试人员充分发挥对业务的理解,以及用户实际操作时的场景。
4、举个栗子
应用程序存在10个输入参数,p1~p10;输出成功/失败,10个参数可以任意组合。
此时10个参数光组合就有1514种,采用随机测试方法基于对业务的理解,可以定义出每个参数用户在使用时出现的次数,例如:
p1~p10参数的出现的权重分别为:1,2,3,4,5,6,7,8,10;这样p10参数出现的概率就会远远大于p1参数出现的概率;
基于对场景和业务的理解,可以估算出每次程序运行时存在多少个参数的输入,最多输入10个,最少输入1个;例如:
出现10个参数均输入的情况,权重为1;
出现9个参数均输入的情况,权重为1;
出现8个参数均输入的情况,权重为2
出现7个参数均输入的情况,权重为2;
出现6个参数均输入的情况,权重为2
出现5个参数均输入的情况,权重为3;
出现4个参数均输入的情况,权重为4
出现3个参数均输入的情况,权重为3;
出现2个参数均输入的情况,权重为2;
出现1个参数均输入的情况,权重为1;
此时生成一个列表如下:[10,9,8,8,7,7,6,6,5,5,5,4,4,4,4,3,3,3,2,2,1]
在设计用例时,随机在上述列表中出抽出一个数字,该数字代表这个用例是有几个参数作为输入,比如说抽出的数字为5,则在10个参数中根据权重挑选出来5个参数进行测试;根据权重选出5个参数进行组成用例,方法如前述。
这样循环执行这个用例就会覆盖更多的测试组合,测试的收益就会随着执行次数的增多而越多。如果上了自动化用例执行,那么收益也会很明显的。




