正交试验法介绍
正交试验法是研究多因素、多水平的一种试验法,它是利用正交表来对试验进行设计,通过少数的试验替代全面试验,根据正交表的正交性从全面试验中挑选适量的、有代表性的点进行试验,这些有代表性的点具备了“均匀分散,整齐可比”的特点。
正交表是一种特制的表格,一般用Ln(mk)表示,L代表是正交表,n代表试验次数或正交表的行数,k代表最多可安排影响指标因素的个数或正交表的列数,m表示每个因素水平数,且有n=k*(m-1)+1。
使用正交试验法的原因
对于单因素或两因素试验,因其因素少,试验的设计、实施与分析都比较简单。
但在实际工作中,常常需要同时考察3个或3个以上的试验因素,若进行全面试验,试验的规模很大,由于时间和成本的限制我们不可能进行全面试验,但是具体挑其中的哪些测试用例进行测试我们心里拿不准,总担心不做不挑选的那些测试用例会遗漏一些严重缺陷。
为了有效的、合理地减少测试的工时与费用,我们利用正交试验法来设计测试用例。正交试验法就是安排多因素试验、寻求最优水平组合的一种高效率的试验设计方法。
我们用测试实例来进行说明使用正交试验法设计测试用例的好处。
测试需求:
某所大学通信系共2个班级,刚考完某一门课程,想通过“性别”、“班级”和“成绩”这三个查询条件对通信系这门课程的成绩分布,男女比例或班级比例进行人员查询:
根据“性别”=“男,女”进行查询
根据“班级”=“1班,2班”查询
根据“成绩”=“及格,不及格”查询
按照传统设计——全部测试
分析上述测试需求,有3个被测元素,被测元素我们称为因素,每个因素有两个取值,我们称之为水平值,所以全部测试用例个数是2*2*2=8,参见下表
序 |
性别 |
班级 |
成绩 |
1 |
女 |
1班 |
及格 |
2 |
女 |
1班 |
不及格 |
3 |
女 |
2班 |
及格 |
4 |
女 |
2班 |
不及格 |
5 |
男 |
1班 |
及格 |
6 |
男 |
1班 |
不及格 |
7 |
男 |
2班 |
及格 |
8 |
男 |
2班 |
不及格 |
利用正交表设计测试用例,我们得到的测试用例个数是n=3*(2-1)+1=4,对于三因素两水平的刚好有L4(23)的正交表可以套用,于是用正交表试验法得出4个测试用例如下:
序 |
性别 |
班级 |
成绩 |
1 |
女 |
1班 |
及格 |
2 |
女 |
2班 |
不及格 |
3 |
男 |
1班 |
不及格 |
4 |
男 |
2班 |
及格 |
根据实际需要可以在用正交试验法设计用例的基础上补充一些测试用例。
4个测试用例与8个测试用例相比测试用例个数是减少了。
因素数和水平数越大越能体现用正交表的好处。例如:对于一个四因素且每个因素均为三水平的试验,如果按照全面试验需要进行3*3*3*3=81次。
但是如果用正交试验法选择L9(34)正交表,n=4*(3-1)+1=9次试验就可以覆盖。从这点可以说明用正交试验法能有效地、合理地减少测试用例和工时,节约测试成本。
优点:根据正交性从全面试验中挑选出部分有代表性的点进行试验,这些有代表性的特点具备了“均匀分散,整齐可比”的特点。通过使用正交试验法减少了测试用例,合理地减少测试的工时与费用,提高测试用例的有效性。是一种高效率、快速、经济的实验设计方法。
缺点:对每个状态点同等对待,重点不突出,容易造成在用户不常用的功能或场景中,花费不少时间进行测试设计与执行,而在重要路径的使用上反而没有重点测试。
场景法定义
场景法是通过运用场景来对系统的功能点或业务流程的描述,从而提高测试效果的一种方法。
场景法一般包含基本流和备用流,从一个流程开始,通过描述经过的路径来确定的过程,经过遍历所有的基本流和备用流来完成整个场景。
场景主要包括4种主要的类型:
基本流备用流
上图为:用例基本流和备选流(注意:备选流的起止点)
基本流:采用直黑线表示,是经过用例的最简单的路径(无任何差错,程序从开始直接执行到结束)
备选流:采用不同颜色表示,一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中(如1和3),也可以起源于另一个备选流(如2),或终止用例,不在加入到基本流中(如4);(各种错误情况)
上图生成的场景如下:
为什么场景法能如此清晰的描述整个事件?
因为,现在的系统基本上都是由事件来触发控制流程的。
场景法设计步骤
对于每一个场景都需要确定测试用例。可以采用矩阵或决策表来确定和管理测试用例。
下面范例中显示了一种通用格式,其中各行代表各个测试用例,而各列则代表测试用例的信息。
本例中,对于每个测试用例,存在一个测试用例ID、条件(或说明)、测试用例中涉及的所有数据元素(作为输入或已经存在于[url=]数据库[/url]中)以及预期结果。
通过从确定执行用例场景所需的数据元素入手构建矩阵。然后,对于每个场景,至少要确定包含执行场景所需的适当条件的测试用例。例如,在下面的矩阵中,V(有效)用于表明这个条件必须是 VALID(有效的)才可执行基本流,而 I(无效)用于表明这种条件下将激活所需备选流。下表中使用的“n/a”(不适用)表明这个条件不适用于测试用例。
场景法设计实例
有一个在线购物的实例,用户进入一个在线购物 站进行购物,选购物品后,进行在线购买,这时需要使用帐 登录,登录成功后,进行付钱交易,交易成功后,生成订购单,完成整个购物过程。
1、根据说明,描述出程序的基本流及各项备选流
2、根据基本流和各项备选流生成不同的场景
3、根据场景生成相应的测试用例
测试用例ID场景/条件账 密码余额预期结果
4、根据上表,设计数据,填入数据
测试用例ID场景/条件账 密码余额预期结果
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!