测试用例的设计
从需求到测试用例设计
从需求到测试用例的设计需要经历如下过程:
测试用例设计方法
等价类
1.定义
等价类划分法是把程序的输入域划分成若*分,然后从每个部分中选取少数代表性数据当作测试用例。
等价类数据一般分为有效等级类和无效等级类。
2.等价类划分有两种不同的情况
有效等价类是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
无效等价类与有效等价类的定义恰巧相反。
3.建立等价类表
在确立了等价类之后,建立等价类表,列出所有划分出的等价类:
输入条件 | 有效等价类 | 无效等价类 |
---|---|---|
… | … | … |
… | … | … |
4.构造测试用例方法
1)明确需求
2)分析需求中包含功能数
3)确认每一个独立功能具有多少输入
4)确认每个输入的规则
5)针对每个输入设计等价类表:有效数据和无效数据。以三边是否能组成三角形为例
6)构造测试用例:输入和操作进行组合
边界值
1.定义
边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充。这种情况下,其测试用例来自等价类的边界。
2.与等价划分的区别:
1)边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的
每个边界都要作为测试条件。
2)边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。
3.构造测试用例方法
1)针对每一个输入规则设计等价类边界值表
2)增加边界值数据:上点、离点
注:
1.上点是边界上的点;
2.离点是指距离上点最近的点,开区间在域内,闭区间在域外。
判定表
1.定义
判定表是分析和表达多逻辑条件下执行不同操作的情况的工具。
2.判定表的组成
判定表通常由四个部分组成如下图所示:
1) 条件桩(Condition Stub):列出了问题得所有条件。通常认为列出的条件的次 序无关紧要。
2) 动作桩(Action Stub):列出了问题规定可能采取的操作。这些操作的排列顺 序没有约束。
3)条件项(Condition Entry):列出针对它左列条件的取值。在所有可能情况下的 真假值。
4)动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作。
5)规则及规则合并
A规则:任何一个条件组合的特定取值及其相应要执行的操作称为规则。在判定表中贯穿条件项和动作项的一列就是一条规则。显然,判定表中列出多少组条件取值,也就有多少条规则,既条件项和动作项有多少列。
B化简:就是规则合并。
a. 有完全相同的动作桩;
b. 条件桩中只有一个不同项
构造测试用例方法:
1)需求中找到条件桩:输入参数要满足的条件
2)需求中找到动作桩:满足条件后得到的结果
3)组合所有的条件桩形成2的n次方个组合,n代表条件桩的个数
4)分析需求中提到的每一组条项桩所对应的一个或多个动作桩
5)查看是否可以合并,但合并时要谨慎,因为合并后容易发生漏测
6)写测试用例,每一列对应一条测试用例(不存在的结果可以忽略,因没有数据可取)
举例:
以下是形成普通三角形的判定表:
场景法
1.定义:场景法又称为流程分析法。
2.介绍:现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。这种在软件设计方面的思想也可引入到软件测试中,可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,同时使测试用例更容易理解和执行。
提出这种测试思想的是Rational 公司,并在RUP2000 (Rational Unified Process)中文版当中有其详尽的解释和应用。
用例场景用来描述流经用例的路径,从用例开始到结束遍历这条路径上所有基本流和备选流。
3.基本流和备选流
如下图中经过用例的每条路径都用基本流和备选流来表示,直黑线表示基本流,是经过用例的最简单的路径。备选流用不同的彩色表示,一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中(如备选流 1 和 3);也可能起源于另一个备选流(如备选流 2),或者终止用例而不再重新加入到某个流(如备选流 2 和 4)。
按照上图中每个经过用例的路径,可以确定以下不同的用例场景:
场景 1 基本流
场景 2 基本流 备选流 1
场景 3 基本流 备选流 1 备选流 2
场景 4 基本流 备选流 3
场景 5 基本流 备选流 3 备选流 1
场景 6 基本流 备选流 3 备选流 1 备选流 2
场景 7 基本流 备选流 4
场景 8 基本流 备选流 3 备选流 4
注:为方便起见,场景 5、6 和 8 只考虑了备选流 3循环执行一次的情况。
4.快速画流程图方法
1)从需求中找到判定条件(如果,假如,当)
2)将这些判定框罗列到流程图中(可以暂时不用考虑顺序),注意挖掘SRS中没有提到的隐性判定条件
3)先画基本流(正常路径),再画备选流(分支)
5.构造测试用例方法
1)分析业务,画出流程图
2)根据基本路径写基于业务场景的测试用例(用例数=判定条件个数+1)
正交试验
1.简介
把影响实验指标的条件称为因子。影响实验因子的条件叫因子的状态(水平)。利用正交试验设计方法设计用例时,首先要从需求中找出影响其功能实现的操作对象和外部因素,把他们当作因子。而各个因子的取值当作状态。确定因子与状态是设计测试用例的关键。因此要求尽可能全面的正确的确定取值,以确保测试用例的设计作到完整与有效。
2.构造测试用例方法
1)从需求中找出因子(输入参数)
2)从需求中找出因子状态(输入参数对应的取值)并编号,画出因子状态表
3)合并或补充因子状态表,代入正交表
4)拆分正交表,替换成文字,一行是一条用例,以打印机功能为例,正交试验表如下:
因果图
1.定义
是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。
2.构造测试用例方法
1)需求分析找出原因,然后给原因编号
2)需求分析找出结果,然后给结果编号
3)根据需求分析文档,分析原因与结果之间的关系
4)根据需求分析文档,分析原因与原因之间的关系
5)根据需求分析文档,分析结果与结果之间的关系
6)根据需求分析文档,画因果图
7)依据因果图去除判定表中不存在的组合
8)判定表中每一列对应一条测试用例
输入域覆盖
1.简介
输入的数据包含一些易引出内存溢出和内存泄露(区别,定义)的类型边界,或者一些特殊值如电话号码等。
2.构造测试用例方法
1)SRS分析对应的输入参数是否存在特殊值和类型边界
2)若存在,则补充特殊值和类型边界的测试数据(检查是否会出现内存溢出)
输出域覆盖
1.简介
分析输出结果的形式(提示信息,输出的显示结果,数据库的记录等)
2.构造测试用例方法
1)通过与开发的沟通,明确对应功能所有可能的输出结果有哪些
2)逐一罗列(输出的形式主要针对提示信息和显示结果)
3)检查对照现有测试用例是否已经覆盖了所有的输出
4)若没有完全覆盖,则根据输出结果要求,倒推补充测试用例
异常分析
1.定义
基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性 的设计测试用例的方法
2.基本思想
列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。如网络异常、断电、服务器宕机等
3.构造测试用例方法
1)根据需求分析文档,构造环境异常(网络、电源、服务器、程序关闭)
2)补充异常测试用例
各测试用例设计方法的使用范围
总结:一般情况下,一份用例最少用到2种以上方法才能全面覆盖测试点。
上一篇: 测试用例的设计方法_正交排列
下一篇: 测试用例设计方法