第08章 黑盒测试用例设计方法二

时间:2024-04-06 21:50:16

第08章 黑盒测试用例设计方法二

一、黑盒测试用例设计方法(二)
1、正交实验法
1)概念:正交实验法就是利用排列整齐的表——“正交表”来对试验进行整体设计、综合选择、统计分析,实现通过少数的实验次数找到较好的生产条件,以达到最好效果,这种试验设计法是从大量的试验点中挑选适量的具有代表性的点,利用已经造好的表格——“正交表”来安排试验并进行数据分析的方法。
2)n阶拉丁方
3阶拉丁方

A B C
B C A
C A B

A B C
C A B
B C A

用数字代替拉丁字母

1 2 3
2 3 1
3 1 2

1 2 3
3 1 2
2 3 1

(1,1) (2,2) (3,3)
(2,3) (3,1) (1,2)
(3,2) (1,3) (2,1)

3)基本思想
(1)在一项试验中,把影响实验结果的量称为试验因素(因子),简称因素。在试验中,每个因素可以处于不同的状态或状况,把因素所处的状态或状况,成为因素的水平,简称水平。
(2)每列中不同数字出现的次数相等。这一特点表明每个因素的每个水平与其他因素的每个水平参与试验的几率完全相同,能有效地比较试验结果并找出最优的试验条件。
(3)在任意2列其横向组成的数字对中,每种数字对出现的次数相等。该特点保证了试验点均匀地分散在因素与水平的完全结合之中。
4)基本步骤
(1)确定因素:因素是对软件的运行结果有影响的软件。
①确定因素的取值范围或集合(该步是为步骤(3)做准备);
②因素的取值范围是指软件输入的取值范围或集合以及可用的硬件资源;
(2)确定每个因素的水平
①根据因素的取值范围或集合,采用等价类划分、边界值分析及其他软件测试技术,在每个因素的取值范围或集合内挑选出有效的等价类、无效等价类、正好等于、刚刚大于或刚刚小于边界值等有代表性的测试值;
(3)选择正交表
①根据确定的因素和水平,选择合适的正交表;
②若无合适的正交表可用或需要测试用例个数太多,要对因素和水平进行调整。
5)正交表介绍
(1)正交表:一种特制的表,一般的正交表记为L_n (m^k)
(2)m是水平数,k是因素数,n是需要进行的实验次数(k个条件,每个条件都有m种可能取值)
①行数:正交表中行的个数,即试验的次数,通过正交实验法设计的测试用例的个数;
②因素数:正交表中列的个数,即要测试的功能点;
③水平数:任何单个因素能取得的值的最大个数,即要测试功能点的输入值。
(3)正交表的种类
①各列水平数均相同的正交表;
②混合水平正交表。
(4)正交表的特性
①整齐可比、均衡分散;
(5)正交表附录
第08章 黑盒测试用例设计方法二
①4次实验,3个因素,2个水平,即3个条件,每个条件都有两种可能取值。
②列号:3个因素;行号:4次实验;表中的值表示:
③第1次实验:选择第1个因素的第1个水平,第2个因素的第1个水平,第3个因素的第1个水平;
④第2次实验:选择第1个因素的第1个水平,第2个因素的第2个水平,第3个因素的第2个水平;
⑤第3次实验:选择第1个因素的第2个水平,第2个因素的第1个水平,第3个因素的第2个水平;
⑥第4次实验:选择第1个因素的第2个水平,第2个因素的第2个水平,第3个因素的第1个水平;
6)案例
(1)有一个工业产品,其生产工艺受到操作方式、温度、洗涤时间三个因素的影响,且每个生产因素都有三种可能取值,具体如下所示,请设计试验组合。
第08章 黑盒测试用例设计方法二
(2)3个因素,3个水平,把下面的正交表改一下
第08章 黑盒测试用例设计方法二
(3)软件:正交测试助手V3.1绿色版
第08章 黑盒测试用例设计方法二
①latin:拉丁方,每一个因素的水平数相等时用它;
②blend:每一个因素的水平数相等时用它;
③使用方法:先新建项目,再新建实验,新建实验完成3步后,点击【确认按钮】,自动生成正交表。
2、场景法
1)原理
(1)现在的软件几乎都是用事件触发来控制流程的。测试时,可以生动地描绘出事件触发时的情景,有利于设计测试用例,同时使测试用例更容易理解和执行。
(2)基本流:软件功能按照正确的事件流实现的一条正确流程。通常一个业务仅存在一个基本流,且基本流仅有一个起点和终点;
(3)备选流:除了基本流之外的各支流,包含多种不同的情况。
第08章 黑盒测试用例设计方法二
2)场景列表:
(1)场景1基本流
(2)场景2基本流 备选流1
(3)场景3基本流 备选流1 备选流2重点:
(4)场景4基本流 备选流3
(5)……
3)重点
(1)基本流:软件功能正确实现的流程
(2)备选流:基本功能流程之外的过程
4)注意
(1)场景中必须有基本流;
(2)场景中必须有内容,从用例的开始到用例的结束。
5)设计测试用例的步骤
(1)根据说明,描述出程序的基本流及各项备选流;
(2)根据基本流和各项备选流生成不同的场景;
(3)对每一个场景生成相应的测试用例;
(4)对生成的测试用例重新复审,去掉多余的测试用例;
(5)测试用例确定后,对每一个测试用例确定测试数据值。
(6)场景法适用于解决业务流程清晰的系统或功能。
6)案例:ATM机的取款流程
(1)基本流
①第一步:插卡
②第二步:输入密码
③第三步:选择取款服务
④第四步:选择取款金额
⑤第五步:等待出钞
⑥第六步:取出银行卡
第08章 黑盒测试用例设计方法二
(2)备选流:
①卡片不是银行卡
②卡片不是银联卡
③密码输错一次
④密码输错两次,第三次输入正确
⑤密码输错三次,冻结账号或吞卡
⑥选择存款服务
⑦选择查询服务
⑧选择转账服务
⑨选择修改密码服务
⑩选择取款金额……
选择其他金额
账户金额不足
ATM机没钱了
账户取款金额达到取款机的当日取款上限
账户取款金额达到账户当日取款交易上限
取款机掉线了
取款机停电了
……
第08章 黑盒测试用例设计方法二
(3)场景设计
①场景1:基本流
②场景2:基本流 备选流⑤
③场景3:基本流 备选流④
④场景4:基本流 备选流①
⑤场景5:基本流 备选流② 备选流④
……
(每一种组合,即每一个场景都是一个测试用例)
7)设计测试用例:以场景5为例
(1)设计步骤:假定ATM机只能识别银联卡。先插入一个万事达卡(国外的卡)
①插入万事达卡
②换银联卡插卡
③输入密码,第一次输入错误
④再次输入密码,第二次输入错误
⑤第三次输入密码,输入正确
⑥选择服务——取款
⑦选择取款金额
⑧等待出钞
⑨取卡
(2)为用例的步骤设计数据
3、状态迁徙图法
1)来源:在遇到有事务流或由于某种条件成立导致状态改变的软件时,如何进行测试用例的设计就比较麻烦。以操作系统进程调度算法为例:
第08章 黑盒测试用例设计方法二
2)目标
设计足够多的测试用例达到对系统状态的覆盖、状态-条件组合的覆盖以及状态迁移路径的覆盖。
3)步骤
(1)列出所有可能的输入事件(文本框的输入;按钮的操作等),以ip N的方式命名(N为1,2,3,4……);
(2)把软件打开的初始状态定义为“空闲状态”;
(3)在“空闲”状态上加所有可能的输入(只加一次!);
(4)为上一步产生的所有新状态分别加所用可能的输入(只加一次!);
(5)循环执行上一步,直到没有任何新状态产生;
(6)列出所有的状态,生成状态表;
(7)组合任意可能的状态组合,写出响应的测试用例;
4)案例:QQ登录页
(1)第一轮分析
①QQ启动为“空闲状态”,经过ip操作,软件进入新状态
第08章 黑盒测试用例设计方法二
(2)第二轮分析
第08章 黑盒测试用例设计方法二
(3)第三轮分析
第08章 黑盒测试用例设计方法二
(4)状态表
①状态间的切换是相应“操作”造成的;

状态的组合
状态列表
空闲 1 1 1 1
QQ号已输入 2
密码已输入
QQ号、密码已输入 3
登录中 4
关闭 2
QQ主界面 5

4、测试大纲法
1)一种着眼于需求的方法;
2)为列出各种测试条件,将需求转换为大纲的形式。
第08章 黑盒测试用例设计方法二
5、其他测试用例设计方法
1)探索性测试
(1)基于测试人员经验和直觉的测试方法;
(2)是对测试用例设计的有效补充;
(3)探索性测试也必须生成测试用例。
2)猴子测试(随意性测试)
(1)一种没有书面测试用例、记录期望结果、检查列表、脚本或指令的测试
(2)缺点:
①测试往往不太真实;
②不能达到一定的覆盖率;
③许多测试都是冗余的;
④需要使用同样的随机数才能重建测试;

二、用例设计方法选择的综合策略
1)首先进行等价类划分;
2)在任何情况下都必须使用边界值分析法;
3)如果程序的功能说明中含有输入条件的组合情况,则一开始就可选用因果图法和判定表驱动法;
4)对于参数配置类的软件,要用正交试验法选择较少的组合方式达到最佳效果;
5)状态图迁徙法也是很好的测试用例设计方法,我们可以通过不同时期条件的有效性设计不同的测试数据;
6)对于业务清晰的系统,可以利用场景法贯穿整个测试案例过程;
7)可以用错误推测法(探索性测试)追加一些测试用例;
8)对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度,若未达到要求的覆盖标准,应当再补充足够的测试用例。(一般用测试大纲法核对)