设计测试用例方法

设计测试用例一般有8个方法,分别是等价类划分、边界值、场景法、因果图、判定表、正交排列表、状态转换图、测试大纲法等

一、等价类划分及边界值

首先这两个设计测试用例的方法一般是一起的,等价类划分即将所有合理的、有意义的或不合理的、无意义的数据分为有效等价类和无效等价类,运用有限的测试用例去覆盖无穷的数据输入,而边界值则是对等价类划分的补充。

设计测试用例的步骤:

  • 划分等价类
  • 细化等价类划分
  • 建立等价类表
  • 根据等价类表划分编写测试用例

其中,当我们熟练了之后,2、3步骤可以忽略

我们以实际例子说明。

需求:

年龄输入框:1-99整数,可以为空

分析步骤:

1、划分等价类

1)有效等价类

①1-99整数;

②为空;

2)无效等价类

①<1的整数;

②>99的整数;

③小数;

④特殊字符;

2、细分等价类(加入边界值)(可省略)

1)有效等价类

①1-99整数,如1(边界),2(边界),55,98(边界)、99(边界)

②为空,空格

2)无效等价类

①<1的整数,如0(边界),-1,-100

②>99的整数,如100(边界),999,无穷大

③小数,如0.1,10.55,小数点后多位

④特殊字符,如!、@、*、%或组合)……&等

3、建立等价类表(可省略)

将输入的数据和预期结果以表格展示出来,下图示例

年龄
编号 输入数据 预期结果
1 1 通过
2 2 通过

4、根据等价类表划分编写测试用例

二、场景法

现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。

设计测试用例的步骤:

  • 根据说明(流程图),描述出程序的基本流及各项备选流
  • 根据基本流和各项备选流生成不同的场景
  • 对每一个场景生成相应的测试用例

举例,下面是一个简单登录的流程图

liuchengtu1、根据说明(流程图),描述出程序的基本流及各项备选流

基本流:

基本流1:输入正确的用户名

基本流2:输入正确的密码

基本流3:点击“登录”按钮,程序能正常登录

备选流:

备选流1:不输入用户名和密码

备选流2:输入正确的用户名,错误的密码

备选流3:密码为空

备选流4:用户名为空

备选流5:输入错误的用户名,正确的密码

备选流6:输入错误的用户名,错误的密码

2、根据基本流和各项备选流生成不同的场景(部分举例)

场景描述 基本流 备选流
场景1:输入正确的用户名及密码点击登录,成功登录 基本流  
场景2:用户名、密码为空点击登录程序给与提示 基本流 备选流1

 V表示Valid,有效的,I表示Invalid,无效的。

编号 场景 用户名 密码 预期结果
1 场景1:成功登录 V V 提示登录成功
2 场景2:用户名、密码为空,登录失败 I I 给与错误提示

3、对每一个场景生成相应的测试用例

  用例描述中详细写出测试数据。

三、因果图、判定表

因果图是一种利用图解法分析输入与输出的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。因果图和判定表一般是同时使用的。

设计测试用例的步骤:

  • 找出所有输入条件并编号,即“原因”
  • 找出所有输出条件并编号,即“结果”
  • 明确输入与输出之间的关系(制约关系和组合关系)
  • 根据因果图,写出判定表
  • 根据判定表写出测试用例

举例:

需求:›有一个饮料自动售货机(处理单价为5角钱硬币)的控制处理软件,它的软件规格说明如下:

  • 若投入5角钱的硬币,按下“橙汁”或“啤酒”的按钮,则相应的饮料就送出来。若投入1元钱的硬币,同样也是按“橙汁”或“啤酒”的按钮,则自动售货机在送出相应饮料的同时退回5角钱的硬币。
  • 不能同时投两个硬币,不能一次同时购买2瓶及以上饮品。

1、找出所有输入条件并编号

  • 投入1元硬币(1)
  • 投入5角硬币(2)
  • 按下“橙汁”按钮(3)
  • 按下“啤酒”按钮(4)

2、找出所有输出条件并编号 

  • 退还5角(a)
  • 送出“橙汁”饮料(b)
  • 送出“啤酒”饮料(c)
  • 错误提示(d)
  • 退还1元(e)

3、明确输入与输出之间的关系(图省略)

如1、2为互斥,3、4为互斥;ab、ac、ad、de可以组合,bcd可以单独出现;ae、bc、bd、cd、be、ce互斥

图示例:13组合输出ab

yinguotu

›4、根据因果图,写出判定表

 1表示选择输入条件及造成的输出结果,以列来看

  1 2 3 4 5 6 7 8
输入 1 投币1元 1 1     1      
2 投币5角     1 1   1    
3 按下橙汁 1   1       1  
4 按下啤酒   1   1       1
 
输出 a 退回5角 1 1       1    
b 送出橙汁 1   1          
c 送出啤酒   1   1        
d 错误提示         1 1 1 1
e 退还1元         1      

5、根据判定表写出测试用例

退还1元硬币,提示错误

用例编号 用例操作 预期结果
1 投入1元硬币,按下“橙汁”按钮 送出橙汁,退还5角硬币
2 投入1元硬币,按下“啤酒”按钮 送出啤酒,退还5角硬币
3 投入5角硬币,按下“橙汁”按钮 送出橙汁
4 投入5角硬币,按下“啤酒”按钮 送出啤酒
5 投入1元硬币 退还1元硬币,提示错误
6 投入5角硬币 退还5角硬币,提示错误
7 按下“橙汁”按钮 提示未投币
8 按下“啤酒”按钮 提示未投币

四、正交排列表

常用正交表下载:http://pan.baidu.com/s/1bpMCjBT

通过已有的正交排列参考表将要测试的因素代入进去,可以已最少的用例覆盖最多的可能

举例:测试一个字符属性设置功能(选项),测试过程中需要考虑4个方面问题。

  • 字符类型:中文、英文、特殊符号
  • 字符属性:字型字号、普通效果、特殊效果
  • 字符位置:单元格、排版框、区域
  • 操作系统:Windows98、 Windows2000、Linux

因为是4个因素,每个因素里还有3个可能,所以我们可以参考L9(34)正交排列这个排列

序号  A  B  C  D
1 1 1 1 1
2 1 2 2 2
3 1 3 3 3
4 2 1 2 3
5 2 2 3 1
6 2 3 1 2
7 3 1 3 2
8 3 2 1 3
9 3 3 2 1

其中ABCD对应的是四个因素,而123分别对应每个因素中的三个选项,变更后为测试用例组合:

测试用例编号  字符类型  字符属性  字符位置  操作系统
1 中文 字型字号 单元格 Windows98
2 中文 普通效果 排版框 Windows2K
3 中文 特殊效果 区域 Linux
4 英语 字型字号 排版框 Linux
5 英语 普通效果 区域 Windows98
6 英语 特殊效果 单元格 Windows2K
7 特殊符号 字型字号 区域 Windows2K
8 特殊符号 普通效果 单元格 Linux
9 特殊符号 特殊效果 排版框 Windows98

五、状态转换图

设计测试用例的方法:

  • 找出程序的所有输入动作,并进行编号
  • 找出程序的所有状态
  • 找出什么动作会导致什么状态发生,画出状态转换图
  • 把相关联的动作和状态联系起来,设计测试用例

举例:某程序登录框,需输入账户和密码,提供关闭和登录按钮

1、找出程序的所有输入动作,并进行编号:

  • ip1→输入账号;
  • ip2→输入密码;
  • ip3→点击“登录”按钮;
  • ip4→点击“关闭”按钮。

2、找出程序的所有状态:

  • 启动状态
  • 账号已输入
  • 密码已输入
  • 账号已输入、密码已输入
  • 错误提示状态
  • 登录成功
  • 退出

3、找出什么动作会导致什么状态发生,画出状态转换图

如图所示:

zhuangtai4、把相关联的动作和状态联系起来,设计测试用例

把相关联的动作和状态联系起来,设计测试用例,为了减少测试用例数量,一条测试用例最好沿着状态转换图的一条路径编写完,如上图,大概有11条路径。

六、测试大纲法

测试大纲法适用于跳转页面较多的界面用例设计,如安装。

设计测试用例的方法:

  • 找出所有的窗口以及每个窗口的输入动作(注意先后顺序)
  • 找到各个窗口之间的联系,并据此编写测试用例

1、大纲是一种着眼于需求的方法,为了列出各种测试条件,就将需求转换为大纲的形式。

2、在根和每个叶节点之间存在唯一的路径,每条路径定义了一个特定的输入条件集合,用于定义测试用例。

如图示例,下图为各个界面所展示的可点击的操作(只是模拟,没有实际数据,哈哈),而一条路径就可以为我们定义一条测试用例。

cesdagang

 

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注