用正交表设计测试用例

正交试验设计(Orthogonal experimental design)是研究多因素多水平的一种设计方法,它是根据正交性从全面试验中挑选出部分有代表性的点进行试验,这些有代表性的点具备了“均匀分散,齐整可比”的特点,正交试验设计是一种基于正交表的、高效率、快速、经济的试验。

  什么是因素(Factor):在一项试验中,凡欲考察的变量称为因素(变量)

  什么是水平(位级)(Level):在试验范围内,因素被考察的值称为水平(变量的取值)

  正交表的构成:

  行数(Runs):正交表中的行的个数,即试验的次数。

  因素数(Factors):正交表中列的个数。

  水平数(Levels):任何单个因素能够取得的值的最大个数。正交表中的包含的值为从0到数“水平数-1”或从1到“水平数”

  正交表的表示形式: L行数(水平数因素数)

  正交表:

  各列中出现的最大数字相同的正交表称为相同水平正交表。如L4(23)、L8(27)、L12(211)等各列中最大数字为2,称为两水平正交表;L9(34)、L27(313)等各列中最大数字为3,称为3水平正交表。凡是标准表,水平数都相等,且水平数只能取素数或素数幂。因此有7水平、9水平的标准表,没有6水平,8水平的标准表。

  例如L9(34),它表示需做9次实验,最多可观察4个因素,每个因素均为3水平。

  混合正交表:

  一个正交表中也可以各列的水平数不相等,我们称它为混合型正交表,如L8(4×24),即:L8(41×24)此表的5列中,有1列为4水平,4列为2水平。再如L16(44×23),L16(4×212)等都混合水平正交表。

  正交表的两个特点:

  正交表必须满足这两个特点,有一条不满足,就不是正交表。

  1)每列中不同数字出现的次数相等。例如,在两水平正交表中,任何一列都有数码“1”与“2”,且任何一列中它们出现的次数是相等的;在三水平正交表中,任何一列都有“1”、“2”、“3”,且在任一列的出现数均相等。这一特点表明每个因素的每个水平与其它因素的每个水平参与试验的几率是完全相同的,从而保证了在各个水平中最大限度地排除了其它因素水平的干扰,能有效地比较试验结果并找出最优的试验条件。

  2)在任意两列其横向组成的数字对中,每种数字对出现的次数相等。例如,在两水平正交表中,任何两列(同一横行内)有序对子共有4种:(1,1)、(1,2)、(2,1)、(2,2)。每种对数出现次数相等。在三水平情况下,任何两列(同一横行内)有序对共有9种,1.1、1.2、1.3、2.1、2.2、2.3、3.1、3.2、3.3,且每对出现数也均相等。这个特点保证了试验点均匀地分散在因素与水平的完全组合之中,因此具有很强的代表性。

  以上两点充分的体现了正交表的两大优越性,即“均匀分散性,整齐可比”。通俗的说,每个因素的每个水平与另一个因素各水平各碰一次,这就是正交性。

  混合正交表选择正交表的时候需满足:水平数>=max(水平1,水平2,...),因素数>=(因素1+因素2+因素3+…)

  混合正交表选择正交表的示例:

  我们分析一下:

  1、被测项目中一共有四个被测对象(4个因素),每个被测对象的状态(水平数)都不一样。其中,A、C水平数均为3,B的水平数为4,D的水平数为2。

  2、选择正交表:

  本题,水平数>=max(3,4,2)=4,因素数>=4,查询附录中的正交表,只有L16(45)的行数最少,行数取最少的一个,比较适合。

  3、最后选中正交表公式:L16(45)

  另外,当水平数和因素数的具体值确定时,正确的行数(试验次数)的计算方法是:

  试验次数(行数)=∑(每列水平数-1)+1

  如:L18(36 *61)=(3-1)*6+(6-1)*1+1=18;L8(27)=(2-1)*7+1=8

用正交表设计测试用例

  设计测试用例的步骤:

  1、有哪些因素(变量)

  2、每个因素有哪几个水平(变量的取值)

  3、选择一个合适的正交表

  4、把变量的值映射到表中

  5、把每一行的各因素水平的组合作为一个测试用例

  6、加上你认为可疑且没有在表中出现的用例组合

  如何选择正交表

  1、考虑因素(变量)的个数

  2、考虑因素水平(变量的取值)的个数

  3、考虑正交表的行数

  4、取行数最少的一个

  设计测试用例时的三种情况:

  1、因素数(变量)、水平数(变量值)相符

  水平数(变量的取值)相同、因素数(变量)刚好符合某一正交表,则直接套用正交表,得到用例。

  例子:

  对某人进行查询,假设查询某个人时有三个查询条件:

  根据“姓名”进行查询

  根据“身份证号码”查询

  根据“手机号码”查询

  考虑查询条件要么不填写,要么填写,此时可用正交表进行设计

  ① 因素数和水平数

  有三个因素:姓名、身份证号、手机号码。每个因素有两个水平:

  姓名:填、不填

  身份证号:填、不填

  手机号码:填、不填

  ② 选择正交表

  表中的因素数>=3

  表中至少有三个因素的水平数>=2

  行数取最少的一个

  结果:L4(2^3)

  ③ 变量映射

  姓名:1→填写,2→不填写;

  身份证号:1→填写,2→不填写;

  手机号码:1→填写,2→不填写;

  ④ 用L4(2^3)设计的测试用例

  测试用例如下:

  1:填写姓名、填写身份证号、填写手机号

  2:填写姓名、不填身份证号、不填手机号

  3:不填姓名、填写身份证号、不填手机号

  4:不填姓名、不填身份证号、填写手机号

  ⑤增补测试用例

  5:不填姓名、不填身份证号、不填手机号

  测试用例减少数:8→5

  2、因素数不相同

  水平数(变量的取值)与某正交表相同,但因素数(变量)却不相同,则取因素数最接近但略大于实际值的正交表表,套用之后,最后一列因素去掉即可。

  例子:

  兼容性测试:

  操作系统:2000、XP、2003

  浏览器:IE6.0、IE7.0、TT

  杀毒软件:卡巴、金山、诺顿

  如果全部进行测试的话,3^3=27个组合,需要进行27次测试。

  ① 因素数和水平数

  有三个因素:

  操作系统、浏览器、杀毒软件

  每个因素有三个水平。

  ② 选择正交表

  表中的因素数>=3

  表中至少有三个因素的水平数>=3

  行数取最少的一个

  结果:L9(3^4),如下图:


③ 变量映射

  操作系统:1→2000,2→XP,3→2003

  浏览器:1→IE6.0,2→IE7.0,3→TT

  杀毒软件:1→卡巴,2→金山,3→诺顿

  ④用L9(3^4)设计的测试用例

  测试用例如下:

  2000、IE6.0、卡巴

  2000、IE7.0、诺顿

  2000、TT、金山

  XP、IE6.0、诺顿

  XP、IE7.0、金山

  XP、TT、卡巴

  2003、IE6.0、金山

  2003、IE7.0、卡巴

  2003、TT、诺顿

  ⑤增补测试用例

  由于目前IE6.0、XP、卡巴的使用量很高,故增添以下测试用例:

  XP、IE6.0、金山

  XP、IE6.0、卡巴

  2003、IE6.0、卡巴

  测试用例减少数:27→12

  3、水平数不相同

  因素(变量)与某正交表相同,但水平数(变量的取值)不相同。

  例子:

  假设有一个系统有5个独立的变量(A,B,C,D,E)。变量A和B都有两个取值(A1 、A2和B1、B2)。变量C和D都有三个可能的取值(C1、C2、C3和D1、D2、D3)。变量E有六个可能的取值(E1、E2、E3、E4、E5、E6)。

  ① 因素数和水平数

  有五个因素(变量):

  A、B、C、D和E

  两个因素有两个水平(变量的取值)、两个因素有三个水平,一个因素有六个水平:

  A:A1、A2

  B:B1、B2

  C:C1、C2、C3

  D:D1、D2、D3

  E:E1、E2、E3、E4、E5、E6

  ② 选择正交表

  表中的因素数(变量)>=5

  表中至少有二个因素的水平数(变量的取值)>=2

  至少有另外二个因素的水平数>=3

  还至少有另外一个因素的水平数>=6

  行数取最少的一个:L49(7^8)或者L18(3^6 6^1))

  结果:L18(3^6 6^1)(如下图)

  ③ 变量映射

  A:1→A1、2→A2

  B:1→B1、2→B2

  C:1→C1、2→C2、3→C3

  D:1→D1、2→D2、3→D3

  E1、2→E2、3→E3、4→E4、5→E5、6→E6

  ④ 用L18(3^6 6^1)设计的测试用例

  略

  测试用例减少数:216→18

  加上一些可疑的情况(设为n个)为18+n,它比原来也少多了。

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-08-01 08:49:38

用正交表设计测试用例的相关文章

软件测试中用正交实验法设计测试用例

软件测试中用正交实验法设计测试用例 正交实验法的由来 一.正交表的由来 拉丁方名称的由来 古希腊是一个多民族的国家,国王在检阅臣民时要求每个方队中每行有一个民族代表,每列也要有一个民族的代表. 数学家在设计方阵时,以每一个拉丁字母表示一个民族,所以设计的方阵称为拉丁方. 什么是n阶拉丁方? 用n个不同的拉丁字母排成一个n阶方阵(n<26 ),如果每行的n个字母均不相同,每列的n个字母均不相同,则称这种方阵为n*n拉丁方或n阶拉丁方.每个字母在任一行.任一列中只出现一次. 什么是正交拉丁方? 设有

用正交实验法设计测试用例

一.用正交表设计测试用例的步骤 (1) 有哪些因素(变量) (2) 每个因素有哪几个水平(变量的取值) (3) 选择一个合适的正交表 (4) 把变量的值映射到表中 (5) 把每一行的各因素水平的组合做为一个测试用例 (6) 加上你认为可疑且没有在表中出现的组合 二.如何选择正交表 ● 考虑因素(变量)的个数 ● 考虑因素水平(变量的取值)的个数 ● 考虑正交表的行数 ● 取行数最少的一个 三.设计测试用例时的三种情况 (1)因素数(变量).水平数(变量值)相符 (2)因素数不相同 (3)水平数不

用正交法设计测试用例

一.正交表的由来 1.拉丁方名称的由来 古希腊是一个多民族的国家,国王在检阅臣民时要求每个方队中每行有一个民族代表,每列也要有一个民族的代表. 数学家在设计方阵时,以每一个拉丁字母表示一个民族,所以设计的方阵称为拉丁方. 2.什么是n阶拉丁方? 用n个不同的拉丁字母排成一个n阶方阵(n<26 ),如果每行的n个字母均不相同,每列的n个字母均不相同,则称这种方阵为n*n拉丁方或n阶拉丁方.每个字母在任一行.任一列中只出现一次. 3.什么是正交拉丁方? 设有两个n阶的拉丁方,如果将它们叠合在一起,恰

《软件测试技术实战:设计、工具及管理》—第2章 2.1节运用等价类/边界值设计测试用例

第2章 传统的软件测试的设计方法软件测试技术实战:设计.工具及管理从本章开始介绍软件测试的各种设计方法,这是学习软件测试的重要内容. 一般来说,软件测试设计方法分为5类:传统的黑盒测试方法.基于质量的测试方法.基于风险的测试方法.基于经验的测试方法以及白盒测试方法.本章主要介绍传统的黑盒测试方法和白盒测试方法,共分7节. 5种黑盒测试方法如下. 等价类/边界值. 决策表. 状态转换图. 决策树. 正交法. 7种白盒测试的方法如下:. 语句覆盖. 分支覆盖. 条件覆盖. 判定/条件覆盖. MC/D

如何去设计测试用例

个人理解大概从3个方面去考虑: 1. 表单,也就是最基础的功能: 2. 逻辑方面: 3. 业务流程. 今天去面试,面试官问我一个很让我说不清的问题,她问我如何写好Expected Result,说实话当时听到这个问题我有点茫然,我拼命的考虑如何去诠释这个问题,事实上,这么多年工作,这么多年的测试用例中,我并未关注这个问题,一个好的Expected Result,个人认为就是和将要实现的功能或者是需求要完全匹配.今天由于个人原因精力也不是很集中,似乎头脑处于空白时段,听到耳朵的问题,似乎大脑不懂得

测试用例设计

等价类划分方法 一.方法简介 1.定义 把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.该方法是一种重要的,常用的黑盒测试用例设计方法.   2.划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试,因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表性的测试数据取得

测试用例与输入数据的设计方法

测试用例的设计是测试设计的重要内容,关于测试用例的设计方法,当前不少出版的测试书和发表的测试文章,不少存在着表述错误,主要是把测试用例中的输入数据的设计方法与测试用例的设计方法混为一谈,对测试初学者和测试用例设计人员产生误导. 这种错误的主要表现举例如下: 测试用例的设计方法包括: ◆ 等价类划分法 ◆ 边界值法 ◆ 功能图与判定表法 ◆ 错误推测法 ◆ 用户场景法 ◆ ...... 其实,测试用例中输入数据的设计方法只是测试用例设计方法的一个子集,上面列出的集中方法都是确定黑盒测试用例的输入测

浅谈手机软件测试用例设计方法

手机产品和用户交互非常紧密,手机的软件质量就显得尤其重要.要使最终用户对手机软件感到满意,必须要在手机软件发布之前进行充分的测试.而不完全.不彻底是软件测试的致命缺陷,但是我们又不可能进行穷举测试,任何程序只能进行少量而有限的测试.为了节省时间和资源,提高测试效率,我们必须要从数量极大的可用测试数据中精心挑选出具有代表性或者特殊性的测试数据进行测试.测试用例在此情况下产生.测试用例是为特定的目的而设计的一组测试输入.执行条件和预期的结果.简单地说,测试用例就是设计一个场景,使软件程序在这种场景下

手机软件测试用例设计实践

一.测试用例设计概述 测试伴随在整个手机软件开发的各个阶段中,测试质量的高低直接关系到手机软件的可用性,友好性,可靠性.可以说,测试环节是手机软件开发的重要环节,是整个开发过程的"中枢神经".同时,测试用例的设计在测试过程中是非常重要的一个环节,是重中之重. 一般来说,设计测试用例应该考虑如下几方面: 1)有效性:测试用例是测试人员测试过程中的重要参考依据.不同的测试人员依据相同的测试用例所得到的输出应该是一致的. 2)可复用性:良好的测试用例具有重复使用的功能,使得测试过程事半功倍,