06正交实验法及场景法
1正交表的由来
拉丁方阵(英语: Latin square) 是一种n*n的方阵,在这种n*n方阵里,恰有n种不同的元素,每一种不同的元素在同一行或同一列里只出现一次
n阶拉丁方
-
3阶拉丁方
A B C A B C B C A 和 C A B C A B B C A
用数字替代拉丁字母
1 2 3 1 2 3 (1,1)(2,2)(3,3)
2 3 1 和 3 1 2 (2,3)(3,1)(1,2)
3 1 2 2 3 1 (3,2)(1,3)(2,1)
2案例:字符属性设置程序
- 在一个窗体中有多个控件(字体、字符样式 、颜色、字号),每个控件有多个取值
- 字体:仿宋、楷体、华文彩云n
- 字符样式:粗体、斜体、下划线
- 颜色:红色、绿色、蓝色
- 字号 K:20号、30号、40号
- 在测试时,要考虑这些控件的组合情况,组 合量非常大(34=81种组合情况)
3正交设计的基本概念
在一项试验中,把影响试验结果的量称为试验 因素(因子),简称因素。因素可以理解为试 验过程中的自变量,试验结果可以看成因素的 函数。在试验过程中,每一个因素可以处于不 同的状态或状况,把因素所处的状态或状况, 称为因素的水平,简称水平。
4正交表的概念和性质***
正交表:一种特制的表,一般的正交表记为 L n (mk)
- m是水平数,k是因素数,n是需要进行实验的 行数***
- 行数:正交表中的行的个数,即试验的次数 ,也是通过正交实验法设计的测试用例的个数***
- 因素数:正交表中列的个数,即要测试的功能 点***
- 水平数:任何单个因素能够取得的值的最大个 数,即要测试功能点的输入值***
5正交测试法
正交排列法能够使最小的测试过程集合获得最 大的测试覆盖率。当可能的输入数据或者输入 数据的组合数量很大时,由于不可能为每个输 入组合都创建测试用例,可以采用这种方法
6正交法实例
个人信息查询系统中的一个窗口,我们可以看 到要测试的控件有3个:姓名、身份证号码、 手机号码,也就是要考虑的因素有三个;而每 个因素里的状态有两个:填与不填。
- 行数(Runs):正交表中的行的个数,即试验的 次数,也是我们通过正交实验法设计的测试用 例的个数。
- 因素数(因子Factors) :正交表中列的个数, 即我们要测试的功能点
- 水平数(状态Levels):任何单个因素能够取得 的值的最大个数。正交表中的包含的值为从0 到数“水平数-1”或从1到“水平数” 。即要 测试功能点的输入条件。
分析
选择正交表时分析一下:
- 表中的因素数>=3;
- 表中至少有3个因素数的水平数>=2;
- 行数取最少的一个。
从正交表公式中开始查找,结果为
L4(23)
变量映射
测试用例如下:
- 填写姓名、填写身份证号、填写手机号
- 填写姓名、不填身份证号、不填手机号
- 不填姓名、填写身份证号、不填手机号
- 不填姓名、不填身份证号、填写手机号
增补测试用例
- 不填姓名、不填身份证号、不填手机号
从测试用例可以看出:如果按每个因素两个水平数来考虑 的话,需要8个测试用例,而通过正交实验法进行的测试 用例只有5个,大大减少了测试用例数。用最小的测试用 例集合去获取最大的测试覆盖率。
7场景法***
场景法:通过运用场景来对系统的功能点或业 务流程的描述,从而提高测试效果的一种方法***
- 现在的软件几乎都是用事件触发来控制流程的 ,事件触发时的情景便形成了场景,而同一事 件不同的触发顺序和处理结果就形成事件流。 这种在软件设计方面的思想也可以引入到软件 测试中,可以比较生动地描绘出事件触发时的 情景,有利于测试设计者设计测试用例,同时 使测试用例更容易理解和执行。
- 场景法一般包括基本流和备选流。从一个流程 开始,图中经过用例的每条路径都可以用基本 流和备选流来表示。直黑线表示基本流,是经 过用例的最简单的路径
8基本流和备选流***
按照上图中每个经过用例的路径,可以确定以下 不同的用例场景:
- 场景1 基本流
- 场景2 基本流备选流1
- 场景3 基本流备选流1备选流2
- 场景4 基本流备选流3
- 场景5 基本流备选流3备选流1
- 场景6 基本流备选流3备选流1备选流2
- 场景7 基本流备选流4
- 场景8 基本流备选流3备选流4
注:为方便起见,场景5、6 和8只考虑了备选 流3循环执行一次的情况。
9场景法测试步骤***
- 根据说明,描述出程序的基本流及各项备选 流
- 根据基本流和各项备选流生成不同的场景
- 对每一个场景生成相应的测试用例
- 对生成的所有测试用例重新复审,去掉多余 的测试用例,测试用例确定后,对每一个测试 用例确定测试数据值
10场景法实例讲解
银行ATM机提款操作的例子。下在是银行 ATM机操作业务的流程示意图。
分析
根据上面的流程示意图,我们以银行的客户提 款为例结合用例设计的方法,设计出如下场景
- 注意;T 代表true(真),F代表False(假), N/A代表 Not Applicable(不适合)
ATM机器提款场景法用例数据
11综合策略
- 首先进行等价类划分,包括输入条件和输出条件的等 价划分,将无限测试变成有限测试,这是减少工作量和提 高测试效率最有效的方法。
- 在任何情况下都必须使用边界值分析方法,经验表明 ,用这种方法设计出的测试用例发现程序错误的能力最强
- 可以用错误推测法追加一些测试用例,这需要依靠测 试工程师的智慧和经验
- 如果程序的功能说明中含有输入条件的组合情况,则 一开始就可选用因果图法和判定表驱动法。
- 对于业务流清晰的系统,可以利用场景法贯穿整个测 试案例过程,在案例中综合使用各种测试方法