黑盒测试:决策表法实例分析.
黑盒测试-决策表

条件 C1:月份在{M1,M2,M3,m4}中之一 C2:日期在{D1,D2,D3,D4 ,D5}中之
一 C3:年在{Y1,Y2}中之一
问题:可得到 ?条规则
新的NextDate函数的扩展条目决策表:
条件 C1:月份在 C2:日在
C3:年在 A1:不可能 A2:日增1 A3:日复位 A4:月增1 A5:月复位 A6:年增1
选项
规则
1
2
3
4
条件:
C1:销售好?
T
T
F
F
C2:库存低?
T
F
T
F
动作:
a1:增加生产
√
a2:继续生产
√
√
a3:停止生产
√
实战演习 2
问题要求:”……对功率大于50马力的机器、维 修记录不全或已运行10年以上的机器,应给予优 先的维修处理……” 。这里假定,“维修记录不 全”和“优先维修处理”均已在别处有更严格的 定义。请建立决策表。
DT2
1 4 2 非三角形
DT3
1 2 4 非三角形
DT4
5 5 5 等边三角形
DT5
? ? ? 不可能
DT6
? ? ? 不可能
DT7
2 2 3 等腰三角形
DT8
? ? ? 不可能
DT9
2 3 2 等腰三角形
DT10 3 2 2 等腰三角形
DT11 3 4 5 不等边三角形
案例分析-NextDate函数(方法一)
一个决策表由“条件和活动”两部分组成,也就是列 出了一个测试活动执行所需的条件组合。所有可能的 条件组合定义了一系列的选择,而测试活动需要考虑
每一个选择。
黑盒测试-决策表

有多少条规则 ?
条件
1 2 3 4 5 6 7 8 9 10 11 12 13 ..
C1:月份在 M1 M1 M1 M1 M1 M1 M1 M1 M2 M2 M2 M2 M2 ..
C2:日在 C3:年在
D1 D1 D2 D2 D3 D3 D4 D4 D1 D1 D2 D2 D3 .. Y1 Y2 Y1 Y2 Y1 Y2 Y1 Y2 Y1 Y2 Y1 Y2 Y1 ..
实战演习2
列出所有的条件桩和动作桩; 填入条件项; 填入动作项,制定初始判定表; 简化、合并相似规则或者相同动作。
进一步优化
两项因素没有影响
优化
案例分析-三角形问题
1列出所有的条件桩和行动桩
条件桩
行动桩
C1:a<b+c? C2:b<a+c? C3:C<a+b? C4:a=b? C5:a=c? C6:b=c?
<=28} D2={日期:日期=29} D3={日期:日期=30} D4={日期:日期=31} Y1={年:年是闰年} Y2={年:年是平年}
C5:日期在D2中 C6:日期在D3中 C7:日期在D4中 C8:年是闰年 C9:年是平年
规则数?
2^9=512 太大!
新办法…
等价类
M1={月份:每月有30天} M2={月份:每月有31天} M3={月份:此月是2月} D1={日期:1<=日期
条件 C1:月份在{M1,M2,M3,m4}中之一 C2:日期在{D1,D2,D3,D4 ,D5}中之
一 C3:年在{Y1,Y2}中之一
问题:可得到 ?条规则
新的NextDate函数的扩展条目决策表:
条件 C1:月份在 C2:日在
黑盒测试:决策表法实例分析

黑盒测试:决策表法实例分析
采用决策表法对NextDate问题设计测试用例
NextDate (int month, int day, int year)函数规定:输入三个整数:month、day和year,函数的输出为输入日期后一天的日期。
例如,输入为2006年3月7日,则函数的输出为2006年3月8日,year满足1920≤year≤2050。
步骤如下:
1)构造决策表
●M1={月份:30天/月},
M2={月份: 31天/月,12月除外},
M3={月份: 12月},M4={月份: 2月}
●D1={日期:1<=日<=27},
D2={日期:日=28},
D3={日期:日=29} ,
D4={日期:日=30},
D5={日期:日=31}
●Y1={年:闰年},Y2={年:平年}
注:二月:平年28天,闰年29天
条件桩:
●C1:月份在{M1,M2,M3,M4}中之一
●C2:日期在{D1,D2,D3,D4 ,D5}中之一
●C3:年在{Y1,Y2}中之一
动作桩:
●A1:不可能
●A2:日期增1
●A3:日期复位(置1)
●A4:月份增1
●A5:月份复位(置1)
●A6:年增1。
软件测试(14)--黑盒测试案例设计技术--基于决策表的测试

软件测试(14)--黑盒测试案例设计技术--基于决策表的测试决策表,也叫判定表。
在所有的功能性测试方法中,基于决策表的测试方法被认为是最严格的,因为决策表具有逻辑严格性。
人们使用两种密切关联的方法:因果图法和决策表格法。
与决策表相比,这两种方法使用起来更麻烦,并且全冗余。
决策表是分析和表达多逻辑条件下执行不同操作的情况的工具。
在程序设计发展的初期,决策表就已被用作编写程序的辅助工具了。
它可以把复杂的逻辑关系和多种条件组合的情况表达得比较明确。
1、决策表的组成决策表通常由4个部分组成,如下图:●条件桩(condition stub):列出了问题的所有条件。
通常认为列出的条件的次序无关紧要。
●动作桩(action stub):列出了问题规定可能采取的操作。
这些操作的排列顺序没有约束。
●条件项(condition entry):列出针对它所列条件的取值,在所有可能情况下的真假值。
●动作项(action entry):列出在条件项的各种取值情况下应该采取的动作。
●规则:任何一个条件组合的特定取值及其相应要执行的操作。
在决策表中贯穿条件项和动作项的一列就是一条规则。
显然,决策表中列出多少组条件取值,也就有多少规则,条件项和动作项就有多少列。
2、决策表建立决策表的建立应该根据软件规格说明,步骤如下:①确定规则的个数。
假如有n个条件,每个条件有两个取值(0,1),故有2n种规则。
②列出所有的条件桩和动作桩。
③输入条件项。
④填入动作项。
制定初始决策表。
⑤简化。
合并相似规则或者相同动作。
Beizer(《Software Testing Techniques》的作者)指出了适合使用决策表设计测试用例的条件:①规格说明以决策表的形式给出,或很容易转换成决策表。
②条件的排列顺序不影响执行哪些操作。
③规则的排列顺序不影响执行哪些操作。
④当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。
⑤如果某一规则要执行多个操作,这些操作的执行顺序无关紧要。
第2章黑盒测试决策表

如果一个条件项(表中某列中的条件值) 和另外一个条件项所产生的动作是相 同的,且两个条件项对应的每一行的值 只有一个是不同的,则可以将其合并.合 并的项除了不同值变成”不关心”条 目外,其余不变
2020/12/2
10
(1)两条规则合并成一条
条件项“— ”表示与取 值无关。
2020/12/2
A1:非三角形; A2:不等边三角形; A3:等腰三角形; A4:等边三角形; A5:不可能;
2020/12/2
24
5.决策表法
该条件可以扩展成: a+b>c
b+c>a
5.4三角形问题的决策表用例设计
c+a>b
2020/12/2
25
5.决策表法
三角形问题的扩展决策 表
条件:a,b,c是否可以 构成三角形
X
XX
a位
X
a6:年增1
X
NextDate函数的精简判定表
c1:月份在 c2:日期在 c3:年在 行为 a1:不可能 a2:日期增1 a3:日期复位 a4:月份增1 a5:月份复位 a6:年增1
1~3
45
6~9
10
M1
M1 M1
M2
M2
D1,D2,D3 D4 D5 D1,D2,D3,D4 D5
2020/12/2
15
例:维修机器问题
问题描述:
“……对于功率大于50马力的机器, 并且维修记录不全或已运行10年以 上的机器,应给予优先的维修处理 ……”
请建立决策表。
2020/12/2
16
例:维修机器问题(续)
(1)列出所有的条件桩和动作桩
条件桩
06黑盒测试——决策表

Y Y N N Y N
X X
Y N
Y Y N
Y -
X
N N
N
X X
X
两条规则合并成一条
两条规则的进一步合并
规则及规则合并
任何一个条件组合的特定取值及其相应要执行的操 作称为规则。在判定表中贯穿条件项和动作项的一
列就是一条规则。显然,判定表中列出多少组条件
适合于以下应用程序
If-then-else逻辑突出 输入变量之间存在逻辑关系
涉及输入变量子集的计算
输入与输出之间存在因果关系
适合使用决策表设计测试用例的情况有
①规格说明以判定表形式给出,或是很容易转换成判定表。 ②条件的排列顺序不会也不应影响执行哪些操作。 ③规则的排列顺序不会也不应影响执行哪些操作。 ④每当某一规则的条件已经满足,并确定要执行的操作后, 不必检验别的规则。
取值,也就有多少条规则,即条件项和动作项有多 少列。
化简 就是规则合并 有两条或多条规则具有相同的动作,并且其条件项 之间存在着极为相似的关系
疲倦吗? 问题 感兴趣吗? 糊涂吗? 重读 继续 建议 跳到下一章 休息
1 Y Y Y
2 Y Y N
3 Y N Y
4 Y N N
5 N Y Y
√
6 N Y N
4 Y N N
5 N Y Y
√
6 N Y N
√
7 N N Y
8 N N N
√ √ √ √ √
√
表中列举了读者读书时可能遇到的3个问题,若读者的回答时 肯定的(判断取真),标以字母Y,若回答否定的,标以字母N。
黑盒测试用例的设计方法

黑盒测试用例的设计方法
黑盒测试用例的设计方法有以下几种常见的方法:
1. 等价类划分法:将输入数据划分成不同等价类,然后选择代表性的测试用例进行测试。
例如,如果输入要求为0-100之间的数字,可以选择一个小于0的数、一个在0-100范围内的数和一个大于100的数来进行测试。
2. 边界值分析法:选择测试用例使得能够覆盖输入的边界值情况。
例如,如果输入要求为1-100之间的数字,可以选择1、100以及2个边界值之间的数作为测试用例。
3. 错误推测法:基于经验或猜测,推测可能存在的错误,并选择测试用例进行验证。
例如,对于一个登录功能,可能存在的错误包括密码错误、用户名不存在等,可以选择相应的测试用例进行验证。
4. 因果图法:根据功能的输入和输出之间的因果关系,绘制因果图,然后选择测试用例进行测试。
因果图可以帮助发现功能之间的因果关系和潜在的缺陷。
5. 决策表法:对于有多种条件和多个可能的结果的功能,使用决策表来帮助设计测试用例。
将各种条件和结果列成表格,然后选择组合测试用例进行测试。
以上是常用的黑盒测试用例设计方法,根据具体的需求和情况选择适合的方法进
行测试用例设计。
软件测试-7黑盒测试决策表法

√
√ √√
√√ √ √
√
√
√
√
√
选项 12 13 14 15 16 17 18 19 20 21 22
规则
条件:
c1:month
M3 M3 M3 M3 M4 M4 M4 M4 M4 M4 M4
c2:day c3:year
D2 D3 D4 D5 D1 D2 D2 D3 D3 D4 D5 - - - - - Y1 Y2 Y1 Y2 - -
动作:
a1:不可能
√√√
a2:day加1
√√√
√√
a3:day复位
√
√√
a4:month加1
√√
a5:month复位
√
a6:year加1
√
简化NextDate函数决策表
规则1、2、3都涉及有30天的月份day类 D1、D2和D3,并且它们的动作项都是 day加1,因此可以将规则1、2、3合并。
类似地,有31天的月份day类D1、D2、 D3和D4也可合并,2月的D4和D5也可合 并。
不可能 17/8/2004 1/9/2001 17/12/2004 1/1/2002 17/2/2004 29/2/2004 1/3/2001 1/3/2001
不可能 不可能
决策表测试的适用范围
if-else逻辑突出;
• 恒等: IF A THEN B • 非: IF (NOT A) THEN B • 或: IF (A OR B) THEN C • 与:IF (A AND B) THEN C
后,不必检验别的规则. 如果某一规则的条件要执行多个操作任务,这些操
作的执行顺序无关紧要.
2024/6/22
24
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
黑盒测试:决策表法实例分析
采用决策表法对NextDate问题设计测试用例
NextDate (int month, int day, int year)函数规定:输入三个整数:month、day和year,函数的输出为输入日期后一天的日期。
例如,输入为2006年3月7日,则函数的输出为2006年3月8日,year满足1920≤year≤2050。
步骤如下:
1)构造决策表
●M1={月份:30天/月},
M2={月份: 31天/月,12月除外},
M3={月份: 12月},M4={月份: 2月}
●D1={日期:1<=日<=27},
D2={日期:日=28},
D3={日期:日=29} ,
D4={日期:日=30},
D5={日期:日=31}
●Y1={年:闰年},Y2={年:平年}
注:二月:平年28天,闰年29天
条件桩:
●C1:月份在{M1,M2,M3,M4}中之一
●C2:日期在{D1,D2,D3,D4 ,D5}中之一
●C3:年在{Y1,Y2}中之一
动作桩:
●A1:不可能
●A2:日期增1
●A3:日期复位(置1)
●A4:月份增1
●A5:月份复位(置1)
●A6:年增1。