【测试算法】测试基础之测试用例的选择

大家好,我们昨天介绍了因果图和判定表,对于这两种方法建议大家掌握判定表就可以了,判定表首先要列出所有的条件桩和动作桩,假设有n个条件桩,那么就有2的n次幂个条件项,在分析每个条件项产生的结果。最后筛选出不可能的项,如果剩的项过多就合并。

开始今天的内容,我们今天介绍的是正交试验法,正交试验法主要针对的是多个组合的情况。我们看一个案例说明一下。有一款打印软件,打印范围分为全部、当前幻灯片、给定范围,共三种情况;打印内容分为幻灯片、讲义、备注页、大纲视图,共四种方式;打印颜色/灰度分为颜色、灰度、黑白,共三种设置;打印效果分为幻灯片加框和幻灯片不加框两种方式。如果要将这些情况全部都覆盖测试,应该是3*4*3*2=72种情况。这些用例太多,全部测试任务量太多。

       这种情况我们就可以使用正交试验法来减少测试用例数。首先看一下关于正交试验的一些基本概念和术语。因素:凡欲考察的变量称为因素,这里就是4个,打印范围、打印内容、打印颜色/灰度、打印效果。水平就是变量的取值,这里打印范围的水平是3(有3种情况),打印内容是4种,打印颜色/灰度是3种,打印效果是2种。接下来我们就需要找适合的正交表。这里最大的水平是4,因素是4,所以4的4次幂的正交表就符合我们的要求。我们先看一个正交表:L8(27)

这里会给大家一个常用的正交表文件,这里有很多正交表,大家根据自己的需要找到合适的就可以了,当然也可以通过工具产生用例,我经常使用allpairs,这个我也会给大家的。

经过查表,我发现只有4的5次幂的正交表,所以我们就用这个了,把最后一列删掉就可以了,

打印范围

打印内容

打印颜色/灰度

打印效果

打印范围

打印内容

打印颜色/灰度

打印效果

1

0

0

0

0

1

全部

幻灯片

颜色

加框

2

0

1

1

1

2

全部

讲义

灰度

不加框

3

0

2

2

2

3

全部

备注页

黑白

加框

4

0

3

3

3

4

全部

大纲视图

颜色

不加框

5

1

0

1

2

5

当前幻灯片

幻灯片

灰度

加框

6

1

1

0

3

6

当前幻灯片

讲义

颜色

不加框

7

1

2

3

0

7

当前幻灯片

备注页

灰度

加框

8

1

3

2

1

8

当前幻灯片

大纲视图

黑白

不加框

9

2

0

2

3

9

给定范围

幻灯片

黑白

不加框

10

2

1

3

2

10

给定范围

讲义

黑白

加框

11

2

2

0

1

11

给定范围

备注页

颜色

不加框

12

2

3

1

0

12

给定范围

大纲视图

灰度

加框

13

3

0

3

1

13

全部

幻灯片

颜色

不加框

14

3

1

2

0

14

当前幻灯片

讲义

黑白

加框

15

3

2

1

3

15

给定范围

备注页

灰度

不加框

16

3

3

0

2

16

全部

大纲视图

颜色

加框

 

0代表全部

0幻灯片

0颜色

0加框

     
 

1代表当前幻灯片

1讲义

1灰度

1不加框

     
 

2给定范围

2备注页

2黑白

      
  

3大纲视图

      

将这些数字代表的取值填入表中就可以了,但是这里有一个问题,打印范围共有3种可能,3那栏要怎么填呢,这个就可以用循环填表,就是第一个3用0代替,第二个3用1……,打印效果里的2和3呢?就是2用0代替,1用3代替。

这样测试用例就出来了,当然了这个表还是要检查一下,因为这里有些组合还是不合理的,需要我们自己修改一下,而且有些常用的组合可能没出现在这个表里,还需要我们自己添加的。

 

正交表及工具:http://download.csdn.net/detail/xc5683/4703722

其他测试框架 发布了一个正交表计算的程序 (Python 调用的 pyd) c++ 写的:https://testerhome.com/topics/5080

类似代码:类似这个吗?https://github.com/bayandin/allpairs


转载自:http://blog.csdn.net/xc5683/article/details/8129955

发布了397 篇原创文章 · 获赞 541 · 访问量 255万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览