第二章 黑盒测试 (2)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
0
C2 1 1 0 0 1 1
0
C3 1 0 1 0 1 0
1
10 动作:
1111
0
e1
e2
√
e3
√
不可能 √ √
√ √
√
8
0 0 0 0
√
√
12
(4)根据决策表设计测试用例
测试用例编号
1
2
决策表
3
中的
4
3~8
5
6
输入数据 #3 #A *6 *B A1 GT
预期输出 修改文件 给出信息M 修改文件 给出信息M 给出信息N
现则;结若果原不c1因出不现出。现,则出结现果;也若不c原1 因不出现,则结果出现。
出现。 c2
e1
e1
c3 (c)或
c2 (d)与
图2.3 因果图的基本符号
6
实际问①题E 中异,或输(互入斥状):态表之示间②a还、I可或b 能(包存含在):某表些示依a赖、关b系、,c 称两之个为原约因束不。会同时成立这,三两个原因中至少有一个必 个中最多有一个可能成须立成。立。
3. 确定因果图中的各个约束。由于语法或环境的限制,有些原 因与原因之间、原因与结果之间的组合情况不可能出现。为 表明这些特殊情况,在因果图上用一些记号表明约束或限制 条件。
4. 把因果图转换为决策表。 5. 根据决策表设计测试用例。
9
例题
例1. 某软件规格说明书规定:输入的第一个字符必须是#或*, 第二个字符必须是一个数字,此情况下进行文件的修改; 如果第一个字符不是#或*,则给出信息N,如果第二个字 符不是数字,则给出信息M。
预期输出 不可能
不可能 不可能
33
决策表适用范围
➢ if-then-else逻辑突出。 ➢ 输入变量之间存在逻辑关系。 ➢ 涉及输入变量子集的计算。 ➢ 输入与输出之间存在因果关系。 ➢ 圈复杂度较高。 ➢ 规格说明以决策表形式给出,或较容易转换为决策表。 ➢ 条件的排列顺序不会也不应影响执行的操作。 ➢ 规则的排列顺序不会也不应影响执行的操作。 ➢ 当某一规则的条件已经满足,并确定要执行的操作后,不
2元,“可乐”按钮
退还5角,送出“可乐”
饮料
T6
投入硬币,按按钮
2元,“雪碧”按钮
退还5角,送出“雪碧”
饮料
T7
投入硬币,按按钮
2元,“红茶”按钮
退还5角,送出“红茶”
饮料
T8
投入硬币
2元
给出提示信息
T9
按按钮
“可乐”按钮
给出提示信息
T10
按按钮
“雪碧”按钮
给出提示信息
T11
按按钮
“红茶”按钮
给出提示信息
1. 将规格说明分解为可执行的片段。 2. 确定过个说明中的因果关系。
所谓“因”是指一个明确的输入条件或者输入条件的等价 类。
所谓“果”是指一个输出条件或者系统转换(系统状态的 延续影响)
3. 分析规格说明的语义内容,并将其转换为连接因 果关系的因果图。
4. 跟踪状态变化,转换成判定表。 5. 判定表转换成测试用例
D1~ D4 D5 D1~D4 D5 D1~ D5 D1 D2 D2 D3 D3 D4,D
D3
D4
5
- --
-
-
-
-
-
Y1 Y2 Y1 Y2
-
√
√√
√
√
√
√√
√
√
√
√√
√
√
√√
√
√
32
设计测试用例
测试用例 month day
Test1-3 6
16
Test4
6
30
Test5
6
31
Test6-9 1
16
给出信息N和M
13
例2. 有一个处理单价为1元5角钱的盒装饮料的 自动售货机软件。若投入1元5角硬币,按下 “可乐”、“雪碧”或“红茶”按钮,相应的饮 料就送出来。若投入的是两元硬币,在送出饮料 的同时退还5角硬币。
(1)找出原因和结果: 原因:C1 投入1元5角硬币;C2 投入2元硬币;C3 按“可
动 作
A1:不可能 A2:day加1
√√ √
√ √ √ √√
√
A3:day复位
√
√
√
√
A4:month加1
A5:month复位
A6:year加1
30
选项 条件
动 作
规则
C1:month在
C2:day在 C3:year在 A1:不可能 A2:day加1 A3:day复位 A4:month加1 A5:month复位 A6:year加1
条 C1:month在 件
C2:day在
C3:year在
A1:不可能
Baidu Nhomakorabea
动 作
A2:day加1 A3:day复位
month加1 month复位
A6:year加1
1~3 4 5 6~9 10 11~ 15 16 17 18 19 20 21~
14
22
M1 M1 M1
M2
M2 M3 M3 M4 M4 M4 M4 M4 M4
因果图法设计测试用例的步骤(操作流程2):
1. 确定软件规格中的原因和结果。分析规格说明中哪些是原因 (即输入条件或输入条件的等价类),哪些是结果(即输出 条件),并给每个原因和结果赋予一个标识符。
2. 确定原因和结果之间的逻辑关系。分析软件规格说明中的语 义,找出原因与结果之间、原因与原因之间对应的关系,根 据这些关系画出因果图。
第2章 黑盒测试
1
目·录
因果图
因果图的概念 因果图操作流程 实例 总结
决策表
决策表的概念 决策表操作流程 实例 总结
问题的提出: 等价类划分法和边界值分析方法都是着重考虑输 入条件,如果程序输入之间没有什么联系,采用 等价类划分和边界值分析是一种比较有效的方法。 但如果输入之间有关系,例如,约束关系、组合 关系,这种关系用等价类划分和边界值分析是很 难描述的,测试效果难以保障,因此必须考虑使 用一种适合于描述对于多种条件的组合,产生多 个相应动作的测试方法。
3
• 问题的解决: 输入条件的笛卡尔积?? 组合数目将是天文数字。 因此必须考虑采用一种适合于描述多
种条件的组合、相应产生多个动作的形 式来进行测试用例的设计——因果图。
什么是因果图?
因果图法是基于这样的一种思想: 一些程序的功能可以用判定表(或称决策表)的形 式来表示,并根据输入条件的组合情况规定相应的 操作。 因果图法的定义: 是一种利用图解法分析输入的各种组合情况,从而 设计测试用例的方法,它适合于检查程序输入条件 的各种组合情况。
(1)找出原因和结果 原因:c1:第一个字符是#;c2:第一个字符是*;
c3:第二个字符是一个数字 结果:e1:给出信息N;e2:修改文件
e3:给出信息M
10
(2)画出因果图
c1
~
e1
∨
10
E
c2
∧
e2
~
c3
e3
11
(3)将因果图转换成决策表
C1和C2不能同时为1
1 23 4 5
6
7
条件:
C1 1 1 1 1 0 0
17
因果图法的优点:
(1)考虑到了输入情况的各种组合以及各个输入情况之间 的相互制约关系。
(2)能够帮助测试人员按照一定的步骤,高效率的开发测 试用例。
(3)因果图法是将自然语言规格说明转化成形式语言规格 说明的一种严格的方法,可以指出规格说明存在的不完整 性和二义性。
18
目·录
决策表
决策表的概念 决策表操作流程 实例 总结
概念:决策表是分析和表达多逻辑条件下执行 不同操作的情况的工具。
优点:它能够将复杂的问题按照各种可能的情 况全部列举出来,简明并避免遗漏。因此,利用 决策表能够设计出完整的测试用例集合。
21
决策表法相关概念
决策表通常由条件桩、条件项、动作桩和动作 项4部分组成。
条件桩
条件项
动作桩
动作项
规则
➢➢➢➢动 采条件动条取作列作件件的项出桩项桩动—所———作指有列针列出可出对出在能问条问条的题件题件取规桩的项值定给所的的出有各可的条组能条件采取取值的情操况作下应
E
输入约束
a
b 异或
a R
a
a
I
b
O
b
③O或唯一:c 表示a、唯b一当中必
须有一个,且仅a 有一个成立。
输出约束
M
要求 b
强制 b
④R 要求:表示当a出现时, b也必须出现。a出现时b图不2.4 约束符号
可能不出现。
⑤M 强制(屏蔽):表示当a是
1时,b必须是0。而当a为07
因果图法设计测试用例的步骤(操作流程1):
动作桩
④ month变量值复位为1;
⑤ year变量值加1。
28
如果将注意力集中到NextDate函数的日和月问题上,并 仔细研究动作桩。可以在以下的等价类集合上建立决策 表。 M1: {month: month有30天}; M2: {month:month有31天,12月除外}; M3: {month:month是12月}; M4: {month:month是2月}; D1:{day:1≤day≤27};D2: {day:day=28}; D3: {day:day=29};D4: {day:day=30}; D5: {day:day=31}; Y1:{year:year是闰年};Y2: {year:year不是闰年}
12 13 14 15 16 17 18 19 20 21 22
M3 M3 M3 M3 M4 M4 M4 M M M4 M4
44
D2 D3 D4 D5 D1 D2 D2 D3 D3 D4 D5 - - - - - Y1 Y2 Y1 Y2 - -
√√ √
√√ √
√√
√
√√
√√
√
√
31
可进一步简化这22个测试用例。简化后的决策表如下 所示。
乐”按钮 ;C4 按“雪碧”按钮;C5 按“红茶”按钮。 中间状态:11 已投币;12 已按钮。 结果:e1 退还5角硬币;e2 送出“可乐”饮料;e3 送出
“雪碧”饮料;e4 送出“红茶”饮料。
14
(2)画出因果图
e1
C1
∧
E
∨
11
C2
∧
e2
C3
E
C4
∧ e3
∨
12
C5
∧ e4
15
(3)将因果图转换成决策表
29
NextDate函数的决策表
选项
规则
1 2 3 4 5 6 7 8 9 10 11
条 件
C1:month在 C2:day在
M1 M1 M1 M1 M1 D1 D2 D3 D4 D5
M2 D1
M2 D2
M2 M2 M2 D3 D4 D5
M3 D1
C3:year在 - - - - - - - - - - -
Test10
1
31
Test11-14 12
16
Test15
12
31
Test16
2
16
Test17
2
28
Test18
2
28
Test19
2
29
Test20
2
29
Test21-22 2
30
year
2001 2001 2001 2001 2001 2001 2001 2001 2004 2001 2004 2001 2001
25
2: NextDate问题的决策表
NextDate函数输入为month(月份)、day(日期)和 year(年),输出为输入后一天的日期。例如,如 果输入为:1964年8月16日,则输出为1964年8 月17日。要求输入变量month、day和year都是 整数值,并且满足以下条件:
Con1. 1≤month≤12
23
2.决策表的构造及化简的操作流程
1. 列出所有的条件桩和动作桩。 2. 确定规则的个数。 3. 填入条件项。 4. 填入动作项,得到初始决策表。 5. 简化决策表,合并相似规则。
24
决策表的化简
若表中有两条以上规则具有相同的动作,并且在 条件项之间存在极为相似的关系,便可以合并。 合并后的条件项用符号“-”表示,说明执行的动 作与该条件的取值无关,称为无关条件。
5
因果图法的原理
1.因果图
• Ci表示原因,Ei表示结果。 • 各结点表示状态,可取“0”或
“1”。
“0”表示某状态不会出现,
c1
e1 ④“与1”(∧表c)1:示某若状~几态个出原现e因。1 都出现,结
③或(∨):若(a)几恒等个原因中果有才1出个现出;现(若b,)非其中有1个原因不出
①则恒结等果:出若现原;因若出几现个,原②则现因非结,都(~果则不)出结:出果若现不原,出因现出。现,则结果不
Con2. 1≤day≤31
条件桩
Con3. 1900≤year≤2050
27
采用决策表法则可以通过使用“不可能动作” 的概念表示条件的不可能组合,来强调这种依赖 关系。
为了获得下一个日期,NextDate函数需要执 行的操作只有如下5种:
① day变量值加1;
② day变量值复位为1;
③ month变量值加1;
在所有的黑盒测试方法中,基于决策表的测试是 最严格,最具有逻辑性的测试方法。
在一个程序中,如果输入输出比较多,输入之间 和输出之间相互制约的条件比较多,在这种情况 下适宜用决策表,可以很清楚的表达它们之间的 各种复杂关系。
20
1.决策表 决策表是把作为条件的所有输入的各种组合值以 及对应输出值都罗列出来而形成的表格。
0
16
(4)根据决策表设计测试用例
测试用例编号
测试用例说明
输入数据
预期结果
T1
投入硬币,按按钮
1元5角, “可乐”按钮 送出“可乐”饮料
T2
投入硬币,按按钮
1元5角, “雪碧”按钮 送出“雪碧”饮料
T3
投入硬币,按按钮
1元5角, “红茶”按钮 送出“红茶”饮料
T4
投入硬币
1元5角
给出提示信息
T5
投入硬币,按按钮