测试用例设计方法-等价类划分法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
整数
整数 整数
a+c=b
b+c<a b+c=a
不是三角形
不是三角形 不是三角形
18
实战演习-实例2
3、补充其他输入项,填写测试数据:
略。
19
20
1、完备测试、避免冗余; 2、划分等价类重要的是:集合的划分,划分为互不相交的一组子集, 而子集的并是整个集合; 3、同一类中标识(选择)一个测试用例,同一等价类中,往往处理 相同,相同处理映射到"相同的执行路径"。
4
划分等价类的方法
1、在输入条件规定了取值范围或值的个数的情况下,则可以确立一个 有效等价类和两个无效等价类。如:输入值是学生成绩,范围是0~ 100; 2、在输入条件规定了输入值的集合或者规定了“必须如何”的条件 的情况下,可确立一个有效等价类和一个无效等价类;
整数
小数 0 整数 整数 0
b
小数
小数 整数 0 整数 0
c
小数
小数 整数 整数 0 整数
P4
-
测试目的
b、c都为小数时
a、b、c都为小数时 a为0时 b为0时 c为0时 a、b都为0时
用例 预期 说明 结果
……
11
12 13 14 15 16
-
17
18 19 20
0
整数 0 空
整数
0 0 整数
0
0 0 整数
6位数字
6位数字 6位数字
年份
1990~2049 之间
小于1990 大于2049
月份
01~12之间
01~12之间 01~12之间
测试目的
合法日期
年份不合法 年份不合法
用例 预期 说明 结果
……
1
2 3
4
5 6 7 8
6位数字
6位数字 有非数字字符 少于6位数字 字符 多于6位数字 字符
1990~2049 之间
13
实战演习-实例2
1、提取测试要素,归纳等价类 :
测试要素
L1 L2 L3 L4 L5 L6 L7 L8 L9 L10
a
整数 小数 0 空 负数
b
整数 小数 0 空 负数
c
整数 小数 0 空 负数
三边关系(整数)
a+b>c且a+c>b且b+c>a a=b且a+b>c a=c且a+c>b b=c且b+c>a a=b=c a+b<c a+b=c b+c<a b+c=a a+c<b
1
2 3
4
5 6 7
9
实战演习-实例1
实例一
描述:
设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定 在1990年1月~2049年12月,并规定日期由6位数字字符组成,前4位表 示年,后2位表示月。现用等价类划分法设计测试用例,来测试程序的"日
说明:案例摘自网络。
期检查功能"。
10
实战演习-实例1
测试用例设计方法
--等价类划分法
2008年7月23日
1
定义
是把所有可能的输入数据,即程序的输入域划分成若干部分 (子集),然后从每一个子集中选取少数具有代表性的数据作为 测试用例。该方法是一种重要的,常用的黑盒测试用例设计方法。 等价类是指某个输入域的子集合。在该子集合中,各个输入 数据对于揭露程序中的错误都是等效的,并合理地假定:测试 某等价类的代表值就等于对这一类其它值的测试,因此,可以把 全部输入数据合理划分为若干等价类,在每一个等价类中取一个
b
负数
整数 负数 整数 整数 整数
c
负数
负数 负数 整数 整数 整数
P4
-
测试目的
b、c都为负数时
a、c都为负数时 a、b、c都为负数时 不是三角形 不是三角形 不是三角形
用例 预期 说明 结果
……
31
32 33 34 35 36
a+b<c a+b=c a+c<b
37
38 39
整数
整数 整数
整数
整数 整数
说明:案例摘自网络。
分析:
题目中给出和隐含的对输入条件的要求:
(1)整数 第三边 (2)三个数 (6)等腰 (3)非零数 (7)等边 (4)正数 (5)两边之和大于
如果 a 、 b 、 c 满足条件( 1 ) ~ ( 4 ),则输出下列四种情况之一: 1)如果不满足条件(5),则程序输出为 " 非三角形 " 。 2)如果三条边相等即满足条件(7),则程序输出为 " 等边三角形 " 。 3)如果只有两条边相等、即满足条件(6),则程序输出为 " 等腰三角形 " 。 4)如果三条边都不相等,则程序输出为 " 一般三角形 " 。
-
a、c都为0时
b、c都为0时 a、b、c都为0时 a为空时
16
实战演习-实例2
2、形成测试要素矩阵,设计测试用例 (续): 用例 编号 a
整数
整数 空 整数 空 空
b
空
整数 空 空 整数 空
c
整数
空 整数 Βιβλιοθήκη Baidu 空 空
P4
-
测试目的
b为空时
c为空时 a、b都为空时 b、c都为空时 a、c都为空时 a、b、c都为空时
L11
a+c=b
14
实战演习-实例2
2、形成测试要素矩阵,设计测试用例 : 用例 编号 a
整数
整数 整数 整数 整数 小数
b
整数
整数 整数 整数 整数 整数
c
整数
整数 整数 整数 整数 整数
P4
a+b>c且a+c>b且b+c>a
a=b且a+b>c a=c且a+c>b b=c且b+c>a a=b=c
3、在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个 无效等价类。 4、在规定了输入数据的一组值(假定n个),并且程序要对每一个输 入值分别处理的情况下,可确立n个有效等价类和一个无效等价类; 5、在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价 类(符合规则)和若干个无效等价类(从不同角度违反规则); 6、在确知已划分的等价类中各元素在程序处理中的方式不同的情况 下,则应再将该等价类进一步的划分为更小的等价类 。
测试要素 L1
P1
P2
P3
P4
P5
L2
L3
7
设计测试用例步骤
2、形成测试要素矩阵,设计测试用例 : 用例 编号 P1 P2 P3 P4 P5 测试 用例 目的 说明 检验 预期 项目 结果 实际 测试 备注 是否 结果 环境 通过
1
2 3
4
5 6 7
8
设计测试用例步骤
3、补充其他输入项,填写测试数据: 用例 编号 P1 P2 P3 P4 P5 测试 用例 目的 说明 检验 预期 项目 结果 实际 测试 备注 是否 结果 环境 通过
与有效等价类的定义恰巧相反。无效等价类指对程序的规格说明是不合理 的或无意义的输入数据所构成的集合。对于具体的问题,无效等价类至少应有 一个,也可能有多个。 设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的 数据,也要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。
3
划分等价类的标准
数据作为测试的输入条件就可以用少量代表性的测试数据取得
较好的测试结果。等价类划分可有两种不同的情况:有效等价 类和无效等价类。
2
划分等价类
1、有效等价类 是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。 利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
2、无效等价类
用例 预期 说明 结果
……
21
22 23 24 25 26
-
27
28 29 30
负数
整数 整数 负数
整数
负数 整数 负数
整数
整数 负数 整数
-
a为负数时
b为负数时 c为负数时 a、b都为负数时
17
实战演习-实例2
2、形成测试要素矩阵,设计测试用例 (续): 用例 编号 a
整数
负数 负数 整数 整数 整数
5
测试用例设计原则
1、设计一个新的测试用例,使其尽可能多地覆盖尚
未被覆盖地有效等价类,重复这一步,直到所有的有 效等价类都被覆盖为止 ; 2、设计一个新的测试用例,使其仅覆盖一个尚未被 覆盖的无效等价类,重复这一步,直到所有的无效等
价类都被覆盖为止。
6
设计测试用例步骤
1、通过对具体功能点的输入项分析,提取测试要素,归纳等价类 :
-
测试目的
一般三角形
等腰三角形 等腰三角形 等腰三角形 等边三角形 a为小数时
用例 预期 说明 结果
……
1
2 3 4 5 6
7
8 9 10
整数
整数 小数 小数
小数
整数 小数 整数
整数
小数 整数 小数
-
b为小数时
c为小数时 a、b都为小数时 a、c都为小数时
15
实战演习-实例2
2、形成测试要素矩阵,设计测试用例 (续): 用例 编号 a
1、提取测试要素,归纳等价类 :
测试要素
L1 L2 L3 L4 L5
日期类型及长度
6位数字 有非数字字符 少于6位数字字符 多于6位数字字符
年份
1990~2049之间 小于1990 大于2049
月份
01~12之间 00 大于12
11
实战演习-实例1
2、形成测试要素矩阵,设计测试用例 : 用例 编号 日期类型 及长度
1990~2049 之间 -
00
大于12 -
月份不合法
月份不合法 日期类型错误 日期长度错误 日期长度错误 12
实战演习-实例2
实例二
描述:
某程序规定:“输入三个整数 a 、 b 、 c 分别作为三边的边长构成三角 形。通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等 腰三角形及等边三角形时,分别作计算 … ”。用等价类划分方法为该程序 进行测试用例设计。