2006-5-18
iSoftStone Information Service Corporation
黑盒测试
等价类测试
©2005 iSoftStone Information Service Corporation. All rights reserved.
2
概述概述
• 等价划分设计方法是把所有可能的输入数据,即程序的输入域划分为
若干部分(子集),然后从每一个子集中选取少数有代表性的数据作
为测试用例。
• 等价类是指某个输入域的子集合,其中各个输入数据对于揭露程序中
的错误都是等效的
整个集合这个事实提供了一种
形式的完备性,而互不相交可
保证一种新式的无冗余性。
©2005 iSoftStone Information Service Corporation. All rights reserved.
3
等价类划分原则等价类划分原则
• 可以把全部输入数据合理化分为若干等价类,在每一个等价类中取一
个数据作为测试的输入条件,就可以用少量代表性的测试数据取得较
好的测试结果。
等价类划分分为两种不同的情况:有效等价类和无效等价类。
¾ 有效等价类
• 由那些对于程序的规格说明是合理的和有意义的输入数据构成的集
合,利用它可以检验程序是否实现了预期的功能和性能;
¾ 无效等价类
• 有那些对于程序的规格说明是不合理的和无意义的输入数据构成的集
合,利用它可以检验程序对于无效数据的处理
©2005 iSoftStone Information Service Corporation. All rights reserved.
4
等价类划分规则等价类划分规则
1)如果输入条件规定了取值范围或值得个数,确定一个有效等价类和两
个无效等价类。
• 输入条件:…项数可以从1到999…
• ---有效等价类为: “1<=项数<=999”
• ---无效等价类为: “项数<1”及“项数>999”
• 值的个数:“学生选课允许2门至4门”
• ---有效等价类:选课2门至4门
• ---无效等价类:只选1门或未选课,选课超过4门
©2005 iSoftStone Information Service Corporation. All rights reserved.
5
等价类划分规则等价类划分规则
2)输入条件规定了输入值的集合,或是规定了“必须如何”的条件,则可
确定一个有效等价类和一个无效等价类。
例:
• “必须如何” “标识符以字母开头”
• --有效等价类 以字母开头的字符串
• --无效等价类 以非字母开头的字符串
3)如果确知,已划分的等价类中各元素在程序中的处理方式是不同的,
则应将此等价类进一步划小。
©2005 iSoftStone Information Service Corporation. All rights reserved.
6
确定测试用例确定测试用例
等价划分法确定测试用例的步骤:
• 1)为每个等价类分配唯一的编号
• 2)设计一个测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价
类,重复这一步骤,直到所有的有效等价类都被覆盖为止
• 3)设计一个测试用例,使其尽可能少得覆盖一个尚未被覆盖的无效
等价类,重复这一步骤,直到所有的无效等价类都被覆盖为止
©2005 iSoftStone Information Service Corporation. All rights reserved.
7
等价类法举例等价类法举例
保险费率计算
人人保险公司承担人寿保险已有多年历史,该
公司保费计算方式为投保额*保险率,保险率
又依点数不同而有别, 10 点以上费率为 0.6 % ,
10 点以下费率为 0.1 % :
©2005 iSoftStone Information Service Corporation. All rights reserved.
8
等价类法举例等价类法举例
20~39岁 6点
40~59岁 4点 年龄
60岁以上20岁以下 2点
MALE 5点
性别
FEMALE 3点
已婚 3点
婚姻
未婚 5点
扶养人
数 一 人 扣 0.5 点 最 多 扣 3 点 ( 四 舍 五 入 取 整 数 )
输入数据说明。
©2005 iSoftStone Information Service Corporation. All rights reserved.
9
等价类法举例等价类法举例
一、
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
输入数据型式。
年 龄:一或两位数字。
性 别:以英文「 Male 」、 Female 」
、「 M 」、「 F 」表示。
婚 姻:「已婚」、「未婚」。
扶养人数:空白或一位数字。
保险费率: 10 点以上, 10 点以下。
©2005 iSoftStone Information Service Corporation. All rights reserved.
10
数字范
围 1~99
20~39岁
40~59岁
1.年龄
等价类
60岁以上20岁以下
类型 英文字之集合
类型:英文字
集合:「Male」、「M」
2.性别
等价类
集合:「Female」、「F」
等价类法举例等价类法举例
二、 划 分 输 入 数 据 。
©2005 iSoftStone Information Service Corporation. All rights reserved.
11
已婚
3.婚姻 等价类
未婚
选择项 扶养人数可以有,也可没有
范围 1~9
空白
1~6 人
4.扶养人数
等价类
6 人以上
10 点以上
10 点以下5.保险费率 等价类
©2005 iSoftStone Information Service Corporation. All rights reserved.
12
等价类法举例等价类法举例
有效等价类 无效等价类 无效等价类
1.年龄 20 ~ 39 任 选 一 个
2.年龄 40 ~ 59 任 选 一 个
3.年龄 60 岁 以 上 、 20 岁 以下 任 选 一 个 小 於 1 , 选 一 个
大 於 99 ,
选 一 个
4.性别 英 文 Male, M, F,Female 任 选 一 个 非 英 文 字 如 「 男 」
5.性别 英 文 Male, M 任 选 一个
非 Male, M, Female, F 之 任 意 字
元 , 如 「 Child 」
三、 设 计 输 入 数 据 。
©2005 iSoftStone Information Service Corporation. All rights reserved.
13
有效等价类 无效等价类 无效等价类
6.性别 英 文 Female, F 任 选一 个
非 Male, M, Female, F 之 任 意 字
符 , 如 「 Child 」
7.婚姻 「 已 婚 」 非 「 已 婚 」 或 「 未 婚 」 之 任 意字 符 , 如 「 离 婚 」
8.婚姻 「 未 婚 」 非 「 已 婚 」 或 「 未 婚 」 之 任 意字 符 , 如 「 离 婚 」
9.扶养人
数 空 白
10.扶养
人数 1 ~ 6 小 於 1 , 选 一 个
11.扶养
人数 7 ~ 9 大 於 9 , 选 一 个
12.保险
费率 10 点 以 上 (0.6 %)
13.保险
费率 10 点 以 下 (0.6 %)
©2005 iSoftStone Information Service Corporation. All rights reserved.
14
等价类法举例等价类法举例
四、 根据以上分析设计测试用例(部分):
用
例
编
号
年
龄 性别 婚姻
扶养
人数
保险
费率 备注
1. 27 Female 未婚 空白 0.6%
有 效
年 龄 : 20 ~ 39 岁
性 别 : 集 合 「 Female, F 」
婚 姻 : 集 合 「 未 婚 」
扶 养 人 数 : 空 白
保 险 费 率 : 0.6 %
2. 50 Male 已婚 2 0.6%
有 效
年 龄 : 40 ~ 59 岁
性 别 : 集 合 「 Male, M 」
婚 姻 : 集 合 「 已 婚 」
扶 养 人 数 : 1 ~ 6人
©2005 iSoftStone Information Service Corporation. All rights reserved.
15
用
例
编
号
年
龄 性别 婚姻
扶养
人数
保险
费率 备注
3. 70 F 未婚 7 0.1%
有 效
年 龄 : 60 岁 以 上 或 20 岁 以 下
性 别 : 集 合 「 Female, F 」
婚 姻 : 集 合 「 未 婚 」
扶 养 人 数 : 6 人 以 上
4. 0 M 已婚 4 无法推算
年 龄 类 无 效 , 因 此 无 法 推 算 保 险 费
率
5. 100 Female 未婚 5 无法推算
年 龄 类 无 效 , 因 此 无 法 推 算 保 险 费
率
6. 1 男 已婚 6 无法推算
性 别 类 无 效 , 因 此 无 法 推 算 保 险 费
率
7. 99 Child 未婚 1 无法推算
性 别 类 无 效 , 因 此 无 法 推 算 保 险 费
率
8. 30 Male 离婚 3 无法推算
婚 姻 类 无 效 , 因 此 无 法 推 算 保 险 费
率.
9. 75 Female 未婚 0 无法推算
扶 养 人 数 类 无 效 , 因 此 无 法 推 算 保
险 费 率
10. 17 Male 已婚 10 无法推算
扶 养 人 数 类 无 效 , 因 此 无 法 推 算 保
险 费 率
2006-5-18
iSoftStone Information Service Corporation
黑盒测试
边界值测试
©2005 iSoftStone Information Service Corporation. All rights reserved.
17
边值分析边值分析
¾ 在软件设计和程序编写中,常常对于规格说明中的输入域边界或输出
域边界不够注意,以致形成一些差错。
¾ 实践证明,在设计测试用例时,对边界附近的处理必须给予足够的重
视,为检验边界附件的处理专门设计测试用例,常常取得良好的测试
效果
边界值分析是一种补充等价划
分的测试用例设计技术。BVA不
仅注重于输入条件,而且也从
输出域导出测试用例。
©2005 iSoftStone Information Service Corporation. All rights reserved.
18
边界值分析遵循的原则边界值分析遵循的原则
① 如果输入条件规定了取值范围,或是规定了值的个数,应以该范围的
边界内及刚刚超出范围的边界外的值,或是分别对最大、最小个数以
及稍小于最小、稍大于最大个数作为测试用例。
例如:如果程序的规格说明中规定:“重量在10公斤至50公斤范围内
的邮件,其邮费
计算公式
六西格玛计算公式下载结构力学静力计算公式下载重复性计算公式下载六西格玛计算公式下载年假计算公式
为……”。作为测试用例,我们应取10及
50,还应取10.01,49.99,9.99及50.01等。如果另一规格说明规
定:“某输入文件可包含1至255个记录,……”,则测试用例可取1和
255,还应取0及256。
©2005 iSoftStone Information Service Corporation. All rights reserved.
19
边界值分析遵循的原则边界值分析遵循的原则
② 针对规格说明的每个输出条件使用前面的第①条原则。
例如:某程序的规格说明要求计算出“每月保险金扣除额为0至
1165.25元”,其测试用例可取0.00及1165.2,还可取-0.01及1165.26
等。
如果另一程序属于情报检索系统,要求每次“最多显示1条情报摘
要”,这是我们应考虑测试是用例包括1和4,还应包括0和5等。
©2005 iSoftStone Information Service Corporation. All rights reserved.
20
边界值分析遵循的原则边界值分析遵循的原则
③ 如果程序规格说明中提到的输入或输出域是个有序的集合(如顺序文
件、表格等),就应注意选取有序集的第一个和最后一个元素作为测
试用例。
④ 分析规格说明,找去其他的可能边界条件。
使用特殊值作为边界值
测试用例的补充,会更有效
©2005 iSoftStone Information Service Corporation. All rights reserved.
21
例子例子
某一为学生考试试卷评分和成绩统计的程序,其规格说明指出了对程
序的要求:
a) 标题
这一组只有一个记录,其内容为输出报告的名字。
b) 试卷各题
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
答案记录
每个记录均在第80个字符处标以数字“2”。该组的第一个记录的第1至
第3个字符为题目编号(取值为“1--999”)。第10至第59个字符给出
第1至第50题的答案(每个合法字符表示一个答案)。
该组的第2,第3个记录相应为第51至第100,第101至第150的答案。
©2005 iSoftStone Information Service Corporation. All rights reserved.
22
例子例子
c) 每个学生的答卷描述
该组中每个记录的第80个字符均为数字。每个学生的答卷在若干个记
录中给出。如:甲的首记录第1至第9字符给出学生姓名及学号,第
10至第59字符列出的是甲所做的第1至第50题的答案。若试题数超过
50,则第2,第3记录分别给出他的第51至第100,第101至第
150……题的答案。然后是学生乙的答案记录。
若学生最多为200人,输入数据的形式如图所示
©2005 iSoftStone Information Service Corporation. All rights reserved.
23
例子例子
• 学生考卷评分和成绩统计程序输入数据的形式:
标题
1 80
1~50标准答案
51~100标准答案
1~50题甲学生答案
51~100题甲学生答案
1~50题乙学生答案
题目编号
学生甲姓名及学号
学生乙姓名及学号
2
2
3
3
3
3 9 10 59 60
50 51 100 101
9 10 59 60
50 51 100 101
8079
8079
8079
8079
80799 10 59 60
©2005 iSoftStone Information Service Corporation. All rights reserved.
24
例子例子
¾ 该程序应给出4个输出报告,即:
① 按学生学号排序,每个学生的成绩(答对的百分比)和等级报告。
② 按学生得分排序,每个学生的成绩。
③ 平均分数,最高与最低分之差。
④ 按题号排序,每题学生答对的百分比。
©2005 iSoftStone Information Service Corporation. All rights reserved.
25
例子例子
• 按输入条件编写测试用例:
输入条件
输入文件
测试用例
空输入文件
标题
无标题记录
只有1个字符的标题
具有80个字符的标题
出题个数
出了1个题
出了50个题
出了51个题
出了100个题
出了99个题
没有题
题目是非数值量
学生人数
学生人数为0
学生人数为1
学生人数为200
学生人数为201
学生答卷(1) 某学生只有1个答案记录,但有两个标准答案记录该学生是文件中第1个学生
该学生是文件中最后一个学生
学生答卷(2) 某学生有2个答案记录,但只有1个标准记录该学生是文件中第1个学生
该学生是文件中最后一个学生
©2005 iSoftStone Information Service Corporation. All rights reserved.
26
例子例子
• 按输出条件编写测试用例:
输出条件 测试用例
学生得分
所有学生得分相同
所有学生得分均不相同
一些学生(非全部)得分相同(用以计算等级)
输出报告
(1)、(2)
1个学生编号最小(检查排序)
1个学生编号最大
学生数恰好使报告打印满1页(检查打印)
学生数使报告1页打印不够,恰好多1人
输出报告
(3)
平均值取最大值(所有学生得满分)
平均值为0(所有学生都得0)
标准偏差取最大值(1学生得0分,1学生得100分)
标准偏差相同(所有学生得分相同)
输出报告
(4)
所有学生都答对第1题
所有学生都答错第1题
所有学生都答对最后1题
所有学生都答错最后1题
题数恰好使报告打印在1页上
题数使报告打印1页不够,恰好多出1道题
1个学生得0分
1个学生得100分
©2005 iSoftStone Information Service Corporation. All rights reserved.
27
边界值分析的局限性边界值分析的局限性
• 如果被测程序是多个独立变量的函数,这些变量受物理量的限制,则
很适合边界值分析法。
• 但如果程序中的函数之间有较强的依赖关系,则边界值分析法设计测
试用例显然不够充分。
• 也就是说边界值分析测试用例是通过引用物理量的边界独立变量极值
导出,不考虑函数的性质,也不考虑变量的语义含义。
• 也可以把边界值分析测试用例看作是初步的,因为这些测试用例的获
得基本没有利用理解和想象。
©2005 iSoftStone Information Service Corporation. All rights reserved.
28
特殊值测试特殊值测试
• 特殊值也是运用得很广泛的一种功能测试。
• 当测试人员试用领域知识、使用类似程序的经验开发测试用例时就会
出现特殊值,我们也把这种测试叫做“特别测试”。不使用测试方针,
只使用“最佳
工程
路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理
判断”,特殊值测试特别依赖于测试人员的能力。
• 尽管特殊值测试是高度主观性的,但是所产生的测试用例集合,常常
比用我们已经研究过的其他方法生成的测试集合,更能有效地发现缺
陷,这也说明了软件测试的
工艺
钢结构制作工艺流程车尿素生产工艺流程自动玻璃钢生产工艺2工艺纪律检查制度q345焊接工艺规程
性质。
2006-5-18
iSoftStone Information Service Corporation
黑盒测试
因果图、判定表测试
©2005 iSoftStone Information Service Corporation. All rights reserved.
30
因果图因果图
¾ 因果图方法(Cause-Effect graphics):一种黑盒测试方法。
¾ 方法的依据:
需求规格说明中的因果关系。
能够帮助我们按照一定步骤,高效率地选择测试用例,同时还指出,
程序规格说明描述中存在着的问题
©2005 iSoftStone Information Service Corporation. All rights reserved.
31
因果图介绍因果图介绍
c1 e1
e1=1
e1=0
c1=1
c1=0恒等
c1 e1
e1=0
e1=1
c1=1
c1=0非
c1
e1 c3=1
e1=1c1=1 c2=1或 c2
c3
V
或 或
否则 e1=0
c1
e1
e1=1c1=1 c2=1与
c2
∧ 且
否则 e1=0
©2005 iSoftStone Information Service Corporation. All rights reserved.
32
条件的约束条件的约束
• 输入条件约束
a
b
E E约束(异):a,b中至多有一个可能为1,即a和b不能同时为1。
a
c
F F约束(或):a,b和c中至少有一个必须为1,
即a,b和c不能同时为0。b
a
b
G G约束(唯一):a,b中必须有一个且仅有一个为1。
©2005 iSoftStone Information Service Corporation. All rights reserved.
33
条件的约束条件的约束
• 输入条件的约束
a
b
R R约束(要求):a是1时,b必须是1,即不可能a是1时b是0。
输出条件的约束
a
b
M M约束(强制):若a是1时,则结果b强制为0。
©2005 iSoftStone Information Service Corporation. All rights reserved.
34
步骤步骤
① 分析程序规格说明的描述中,哪些是原因,哪些是结果。原因常常是
输入条件或是输入条件的等价类。而结果是输出条件。
② 分析程序规格说明的描述中语义的内容,并将其表示成连接各个原因
与各个结果的“因果图”
③ 由于语法或环境的限制,有些原因和结果的组合情况是不可能出现
的。为表明这些特定的情况,在因果图上使用若干个特殊的符号标明
约束条件。
④ 把因果图转换成判定表。
⑤ 把判定表中每一列表示的情况写成测试用例。
©2005 iSoftStone Information Service Corporation. All rights reserved.
35
例子例子
软件规格说明书:
“第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下
进行文件的修改。 但如果第一列字符不正确,则给出信息L,如果第
二列字符不是数字,则给出信息M.”
©2005 iSoftStone Information Service Corporation. All rights reserved.
36
例子例子
原因和结果:
原因:
1----第一列字符是A;
2----第一列字符是B;
3----第二列字符是一数字;
结果:
21----修改文件;
22----给出信息L;
23----给出信息M;
©2005 iSoftStone Information Service Corporation. All rights reserved.
37
例子例子
因果图和具有约束的因果图:
¾11为中间节点;
¾考虑到原因1和原因2不可能同时为1,因此在因果图上施加E约束
1
11
2
22
21
3 23
1
11
2
22
21
3 23
E∧ ∧
∨ ∨
因果图实例 具有E约束的因果图
©2005 iSoftStone Information Service Corporation. All rights reserved.
38
例子例子
• 根据因果图建立如下的判定表:
表中8种情况的左右两列情况中,原因①和原因②同时为1,这是不可
能出现的,故应排除这两种情况。表的最下一栏给出了6种情况的测
试用例,这是我们所需要的数据。
1 2 3 4 5 6 7 8
1 1 1 1 0 0 0 0
1 1 0 0 1 1 0 0
1 0 1 0 1 0 1 0
1 1 1 1 0 0
1
2
3
11
22
21
23
测试
用例
条件
动作
原因
结果0 0 0 0 1 1
1 0 1 0 0 0
0 1 0 1 0 1
A3
A8
AM
A?
B5
B4
BN
B!
C2
X6
DY
P:
//// ////
//// ////
// //
// //
//
////
//
////
©2005 iSoftStone Information Service Corporation. All rights reserved.
39
讨论讨论
¾ 在较为复杂的问题中,这个方法常常是十分有效的,它能有力地帮助
我们确定测试用例。
¾ 如果哪个开发项目在设计阶段就采用了判定表,也就不必再画因果
图,而是可以直接利用判定表设计测试用例了。
©2005 iSoftStone Information Service Corporation. All rights reserved.
40
判定表驱动测试判定表驱动测试
¾ 在一些数据处理问题中,某些操作是否实施依赖于多个逻辑条件的取
值;
¾ 在这些逻辑条件取值的组合所构成的多种情况下,分别执行不同的操
作;
¾ 处理这类问题的一个非常有力的分析和表达工具是判定表(Decision
Table)
©2005 iSoftStone Information Service Corporation. All rights reserved.
41
例子例子
• 一张关于科技书阅读指南的判定驱动表:
• 3个问题8种情况
问题
建议
你觉得疲倦吗?
你对内容感兴趣吗?
书中内容使你糊涂吗?
请回到本章开头重读
继续读下去
跳到下一章去读
停止阅读,请休息
1 2 3 4 5 6 7 8
Y Y Y Y
Y
Y
Y
Y
Y
Y
Y
Y
N N N N
N N N N
NNNN
X
X
X X
X
X
X X
©2005 iSoftStone Information Service Corporation. All rights reserved.
42
判定表的组成判定表的组成
条件桩
动作桩
条件项
动作项
规则
条件桩(Condition stub)
动作桩(Action stub)
条件项(Condition Entity)
动作项(Action Entity)
©2005 iSoftStone Information Service Corporation. All rights reserved.
43
规则及规则和并规则及规则和并
• 任何一个条件组合的特定取值及其相应要执行的操作成为规则,在判
定表中贯穿条件项和动作项的一列就是一条规则。显然,判定表中泪
出多少组条件取值,也就有多少条规则,即条件项和动作项有多少
列。
• 化简 就是规则和并
• 有两条活多条规则具有相同的动作,并且其条件项之间存在着极为相
似的关系。
Y Y
N N
Y N
X X
Y
N
--
X
Y Y
-- N
N N
X X
Y
--
N
X
两条规则和并成一条 两条规则进一步和并
©2005 iSoftStone Information Service Corporation. All rights reserved.
44
规则和并的例子规则和并的例子
• 规则和并后:
问题
建议
你觉得疲倦吗?
你对内容感兴趣吗?
书中内容使你糊涂吗?
请回到本章开头重读
继续读下去
跳到下一章去读
停止阅读,请休息
1 2 3 4
- - Y N
Y
Y
Y
-
N N
-N
X
X
X
X
化简后的“读书指南”判定表