51Testing软件测试论坛
标题:
请教关于正交实验法设计测试用例中的一个问题
[打印本页]
作者:
wandingwei
时间:
2010-2-25 22:39
标题:
请教关于正交实验法设计测试用例中的一个问题
看了一下关于正交实验法设计测试用例的例子,有一个关于PowerPoint软件打印功能的例子,有一个例子的网址是这里
http://www.ltesting.net/html/20/n-167220-2.html
******************************************************************************************
上面就正交实验法进行了讲解,现在再拿PowerPoint软件打印功能作为例子,希望能为大家更好地理解给方法的具体应用
假设功能描述如下:
打印范围分:全部、当前幻灯片、给定范围 共三种情况;
打印内容分:幻灯片、讲义、备注页、大纲视图 共四种方式;
打印颜色/灰度分: 颜色、灰度、黑白 共三种设置;
打印效果分:幻灯片加框和幻灯片不加框两种方式。
因素状态表:
状态/因素 A打印范围 B打印内容 C打印颜色/灰度 D打印效果
0 全部 幻灯片 颜色 幻灯片加框
1 当前幻灯片 讲义 灰度 幻灯片不加框
2 给定范围 备注页 黑白
3 大纲视图
我们先将中文字转换成字母,便于设计。得到:
因素状态表:
状态/因素 A B C D
0 A1 B1 C1 D1
1 A2 B2 C2 D2
2 A3 B3 C3
3 B4
我们分析一下:
被测项目中一共有四个被测对象,每个被测对象的状态都不一样。
选择正交表:
1、表中的因素数>=4
2、表中至少有4个因素的水平数>=2
3、行数取最少的一个
最后选中正交表公式:
L16(45)
正交矩阵为:
1 2 3 4 5
1 0 0 0 0 0
2 0 1 1 1 1
3 0 2 2 2 2
4 0 3 3 3 3
5 1 0 1 2 3
6 1 1 0 3 2
7 1 2 3 0 1
8 1 3 2 1 0
9 2 0 2 3 1
10 2 1 3 2 0
11 2 2 0 1 3
12 2 3 1 0 2
13 3 0 3 1 2
14 3 1 2 0 3
15 3 2 1 3 0
16 3 3 0 2 1
用字母替代正交矩阵:
1 2 3 4 5
1 A1 B1 C1 D1 0
2 A1 B2 C2 D2 1
3 A1 B3 C3 2 2
4 A1 B4 3 3 3
5 A2 B1 C2 2 3
6 A2 B2 C1 3 2
7 A2 B3 3 D1 1
8 A2 B4 C3 D2 0
9 A3 B1 C3 3 1
10 A3 B2 3 2 0
11 A3 B3 C1 D2 3
12 A3 B4 C2 D1 2
13 3 B1 3 D2 2
14 3 B2 C3 D1 3
15 3 B3 C2 3 0
16 3 B4 C1 2 1
我们看到:
第一列水平值为3、第三列水平值为3、第四列水平值3、2都需要由各自的字母替代。
MILY: 宋体"> 1 2 3 4 5
1 A1 B1 C1 D1 0
2 A1 B2 C2 D2 1
3 A1 B3 C3 D1 2
4 A1 B4 C1 D2 3
5 A2 B1 C2 D1 3
6 A2 B2 C1 D2 2
7 A2 B3 C2 D1 1
8 A2 B4 C3 D2 0
9 A3 B1 C3 D2 1
10 A3 B2 C3 D1 0
11 A3 B3 C1 D2 3
12 A3 B4 C2 D1 2
13 A1 B1 C1 D2 2
14 A2 B2 C3 D1 3
15 A3 B3 C2 D2 0
16 A1 B4 C1 D1 1
第五列去掉没有意义。通过分析,由于四个因素里有三个的水平值小于3,所以从第13行到16行的测试用例可以忽略。
************************************************************************************************
我想问下:“第一列水平值为3、第三列水平值为3、第四列水平值3、2都需要由各自的字母替代。”是随便用字母代替都可以??
“通过分析,由于四个因素里有三个的水平值小于3,所以从第13行到16行的测试用例可以忽略。”为什么就可以忽略了呢??
还望大家不吝赐教。。。谢谢。。。
[
本帖最后由 wandingwei 于 2010-2-28 11:05 编辑
]
作者:
wandingwei
时间:
2010-2-26 08:53
没人给指点一下么。。。。
作者:
wandingwei
时间:
2010-2-28 10:42
急啊,求助啊。。。。
作者:
wandingwei
时间:
2010-2-28 16:10
郁闷。。。。。
有人给说一下么。。。。
作者:
liangshi
时间:
2010-3-1 10:08
原文是用正交表来设计测试用例,而正交表产生的矩阵和这个测试需要的矩阵不同。正交表的矩阵要大于我们需要的矩阵,所以要删去其中一列和若干行。所谓“忽略”,就是删去那些我们不需要的行。
在我看来,用正交表来设计测试用例是比较繁琐的。正交表的应用是科学实验,不太适用于软件测试。现在比较流行的是组合测试。它的思路也是保证参数组合的覆盖(正交表是保证“等概率”的组合覆盖,在软件测试中“等概率”这个优点似乎没有优势)。
建议你搜索一下PICT这个工具。这个工具是微软提供的免费组合测试工具,非常优秀。许多公司(例如百度)都利用这个工具来生成测试用例。
作者:
miaomiao2009
时间:
2010-3-1 15:33
标题:
回复 1# 的帖子
我想问下:“第一列水平值为3、第三列水平值为3、第四列水平值3、2都需要由各自的字母替代。”是随便用字母代替都可以??
出现3的位置是任意字母都可以代替的。
作者:
liangshi
时间:
2010-3-1 15:41
原文中正交矩阵中都是0,1,2,3这样的数字。所谓替换,就是按下表
因素状态表:
状态/因素 A B C D
0 A1 B1 C1 D1
1 A2 B2 C2 D2
2 A3 B3 C3
3 B4
将0,1,2,3替换为对应的A1,A2,A3,B1,B2...
例如,正交阵的第一列对应A,那么该列中的0应该被替换为A1。
作者:
wandingwei
时间:
2010-3-1 16:02
标题:
回复 6# 的帖子
谢谢
那么
“通过分析,由于四个因素里有三个的水平值小于3,所以从第13行到16行的测试用例可以忽略。”
是因为什么可以忽略了呢?
作者:
liangshi
时间:
2010-3-1 16:26
我觉得,去掉那4行后的矩阵,仍旧可以覆盖任意两个参数的取值对。而原作者的目标就是获得这样一个矩阵去保证所有的取值对(A1,B1),(A1,C1)……被覆盖。
用正交阵真的很不方便的,不要太沉迷哦~
作者:
MarsNoNo
时间:
2010-3-2 08:31
我想问,正交真的很好吗?
花很长时间来设计用例,到以后维护的时候怎么办呢?
作者:
liangshi
时间:
2010-3-2 08:54
组合测试适用于配置测试。例如网站测试,浏览器、屏幕大小、操作系统都是因素。再例如打印机测试,纸张大小、色深、是否双面、是否翻转等都是因素。如果全面测试,测试用例太多,不现实。于是,就用组合测试来确保两个因素的取值对都被覆盖。
组合测试不适用于因素间有复杂依赖的情况。例如API测试中,API的输入参数往往会相互依赖,组合测试就不太好用。我的个人观点是,组合测试是一种采样,但是这种采样没有业务知识,所以要慎用。《微软的软件测试之道》中建议要使用三因素覆盖(甚至更多因素覆盖)的组合测试。二阶正交表是两因素覆盖,错误暴露能力相对弱一些。
关于测试用例维护,建议使用PICT。PICT的输入是一个非常易读、易改的文本文件,维护代价较低。
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2