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