第2章黑盒测试决策表
黑盒测试习题02
![黑盒测试习题02](https://img.taocdn.com/s3/m/f1a09a531711cc7931b716e5.png)
习题020501 用等价类划分法设计8位长数字类型用户名登录操作的测试用例,应该分成( )个等价区间。
A. 2B. 3C. 4D. 6输入数据预期结果合法位数不足位数过长abcdefgh 非法字符0502输入数据预期结果!@#$%^&() 合法(无字符)位数过短12736…2179(共256位) 位数过长/?|\ 非法字符0503输入数据预期结果20 合法13 年龄小于范围41 年龄大于范围abcd 非法字符0504 某工厂招工,规定报名者年龄应在20周岁——39周岁之间,即出生年月不得早于1960年7月,不晚于1979年6月。
报名程序具有自动检验输入数据的功能,如果出生年月不属于输入数据预期结果1966.06 合法1960.06 时间过早1980.01 时间过晚一九六五年七月非数字19777 少于6位多余6位大于12小于10505 新浪邮箱名,其输入要求如下:1. 4~16个字符2. 支持英文小写、数字、下划线3. 不支持全部为数字或下划线输入数据预期结果qq_fhg 合法全为数字______ 全为下划线@#¥%……&* 非法字符0个不可为空fwhflwenfklwjwjfilwjksfm 字符大于161df 字符小于4AAAAAAAA 全为大写0506用等价类划分法设计下面的测试用例:有一个报表系统,要求用户输入要处理的报表的日期,假设日期的范围为2000年1月到2020年12月。
如果用户输入的日期不在这个范围内,则显示错误码信息,并且此系统规定日期由年月六位数字组成,前4为代表年,后两位代表月。
输入数据预期结果合法时间过早时间过晚abng2432 非法字符月份小于1月份大于1220001 长度小于6长度大于62)根据1)中的等价类表,设计能覆盖所有等价类的测试用例。
要求包括输入数据和预期输出,并指出各个测试用例所能符合的等价类编号0507 NextDate 函数包含三个变量:month 、day 和year ,函数的输出为输入日期后一天的日期。
黑盒测试-决策表
![黑盒测试-决策表](https://img.taocdn.com/s3/m/bfaa0963763231126edb11ca.png)
有多少条规则 ?
条件
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:日在
第2章黑盒测试决策表
![第2章黑盒测试决策表](https://img.taocdn.com/s3/m/e4a940b8195f312b3069a521.png)
年 2001 2001 2001 2001 2001 2001 2001 2001 2004 2001 2004 2001 2001
预期输出 2001年4月16日 2001年5月1日
不可能 2001年1月16日 2001年2月1日 2001年12月16日 2002年1月1日 2001年2月16日 2004年2月29日 2001年3月1日 2004年3月1日
2019/11/29
28
5.决策表法
涉及的操作:
a1:不可能 a2:day加1 a3:day复位 a4:month加1 a5:month复位 a6:year加1
2019/11/29
29
第一次尝试
M1={月份:每月有30天} M2={月份:每月有31天} M3={月份:此月是2月} D1={日期:1≤日期≤28} D2={日期:日期=29} D3={日期:日期=30} D4={日期:日期=31} Y1={年:年是闰年} Y2={年:年是平年}
1 2 3 4 5 6 78
功率大于50马力吗? Y Y Y Y N N N N
条 维修记录不全吗? 件 运行超过10年吗?
Y Y N N Y Y NN Y N Y N Y N YN
动 进行优先处理 作 作其他处理
1,2合并,5,7合并,6,8合并
2019/11/29
20
例:维修机器问题(续)
(3)动作桩
A1:非三角形; A2:不等边三角形; A3:等腰三角形; A4:等边三角形; A5:不可能;
2019/11/29
24
5.决策表法
该条件可以扩展成: a+b>c
软件测试2_黑盒测试 (下)
![软件测试2_黑盒测试 (下)](https://img.taocdn.com/s3/m/4fe8680103d8ce2f00662361.png)
举例:维修机器问题(续)
(3)填入条件项;
1 2
Y Y N
3
Y N Y
4
Y N N
5
N Y Y
6
N Y N
7
N N Y
8
N N N
功率大于50马吗?
Y Y Y
条 维修记录不全吗? 件
运行超过10年吗?
动 进行优先处理 作 作其他处理
利用集合的笛卡尔积计算条件项的取值
举例:维修机器问题(续)
(4)填入动作项;
1 2 Y Y N 3 Y N Y 4 Y N N 5 N Y Y 6 N Y N 7 N N Y 8 N N N
功率大于50马力吗?
Y Y Y
条 维修记录不全吗? 件 动 进行优先处理 作 作其他处理
运行超过10年吗?
1,2合并,5,7合并,6,8合并
举例:维修机器问题(续)
(5)化简;
(1) 功率大于50马力吗? Y Y — (2) Y N Y (3) Y N N (4) N — Y (5) N — N
条 维修记录不全吗? 件
动 作 作其他处理
进行优先处理
运行超过10年吗?
基于判定表的测试
根据输入输出绘制 判定表;
设计测试用例覆盖 判定表中每条规则;
条件桩(Condition Stub )
列出问题的所有条件
动作桩(Action Stub )
列出可能采取的操作
条件项(Condition Entity)
列出条件桩的取值
功能性测试
![功能性测试](https://img.taocdn.com/s3/m/6fd265eeb8f67c1cfad6b845.png)
• • •
在n次循环的第0次、1次、n次是否有错误; 次循环的第0 次是否有错误; a[10 10]=90; 数组 int a[10]; a[10]=90; 计算机表示的数据的取值范围; 计算机表示的数据的取值范围;
2.2 边界值分析
边界值分析设计测试用例的基本思想: 边界值分析设计测试用例的基本思想: • 使用在略低于最小值、最小值、略高于最小值、正常值、 使用在略低于最小值、最小值、略高于最小值、正常值、 略低于最大值、最大值和略高于最大值处取输入变量值。 略低于最大值、最大值和略高于最大值处取输入变量值。 • 对于输出,同样可以应用上面的规则; 对于输出,同样可以应用上面的规则;
2.2 边界值分析
当多个变量取极值时会出现什么情况? 当多个变量取极值时会出现什么情况? 最坏情况测试: 最坏情况测试: • 是对每个变量,分别取最小值、略高于最小值、略低于最 是对每个变量,分别取最小值、略高于最小值、 小值、正常值、略低于最大值、 小值、正常值、略低于最大值、最大值和略高于最大值七元 素集合的测试,然后对这些集合进行笛卡儿积计算, 素集合的测试,然后对这些集合进行笛卡儿积计算,以生成 测试用例。 测试用例。
2.2 边界值分析
三角形问题有三个输入,即三条边a 三角形问题有三个输入,即三条边a、b、c,其取值范围为: 其取值范围为: 1 ≤ a ≤ 200 1 ≤ b ≤ 200 1 ≤ c ≤ 200 a b c = = = {0,1,2,100,199,200,201} 100,199,200,201} 100,199,200,201} {0,1,2,100,199,200,201} 100,199,200,201} {0,1,2,100,199,200,201}
第二章 功能性测试
第2章黑盒测试决策表
![第2章黑盒测试决策表](https://img.taocdn.com/s3/m/2afa646116fc700aba68fc21.png)
如果一个条件项(表中某列中的条件值) 和另外一个条件项所产生的动作是相 同的,且两个条件项对应的每一行的值 只有一个是不同的,则可以将其合并.合 并的项除了不同值变成”不关心”条 目外,其余不变
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黑盒测试——决策表
![06黑盒测试——决策表](https://img.taocdn.com/s3/m/bba6d02d0066f5335a812185.png)
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。
黑盒测试
![黑盒测试](https://img.taocdn.com/s3/m/156c1b0be87101f69e319533.png)
输入条件
有效等价类编 号
有效等价类
无效等价类编 号
无效等价类
是否三角形的 三条边
(1) (2) (3) (4) (5) (6)
(A>0), (B>0), (C>0), (A+B>C) (B+C>A) (A+C>B)
(7) (8) (9) (10) (11) (12)
(A≤0), (B≤0), (C≤0), (A+B≤C) (B+C≤A) (A+C≤B)
边界值设计原则 对边界值设计测试用例,应遵循以下几条原则: 1、如果输入或输出条件规定了值的范围,则应取刚达到这个 范围的边界的值,以及刚刚超越这个范围边界的值作为测试输 入数据。 2、如果输入或输出条件规定了值的个数,则用最大个数、最 小个数、比最小个数少一、比最大个数多一的数作为测试数据。 例如有规定“某文件可包括1至255个记录…”,则测试数据可 选1和255及0和256等值。
案例一
“一个程序读入3个整数,把这三个数值看作一个三角形 的3条边的长度值。这个程序要打印出信息,说明这个 三角形是不等边的、是等腰的、还是等边的。” 解:三角形判断的分析 我们可以设三角形的3条边分别为A,B,C。如果它们 能够构成三角形的3条边,必须满足: A>0,B>0,C>0,且A+B>C,B+C>A,A+C>B。 如果是等腰的,还要判断A=B,或B=C,或A=C。 如果是等边的,则需判断是否A=B,且B=C,且A=C。
1980121
7个数字字符 有1个非数字 字符 全是非数字字 符 6个数字字符 19811m AUGUST 198108
黑盒测试方法——判定表
![黑盒测试方法——判定表](https://img.taocdn.com/s3/m/50514311fd4ffe4733687e21af45b307e871f918.png)
⿊盒测试⽅法——判定表⼀.什么是判定表: 判定表,也叫决策表。
是对多种输⼊条件下软件系统执⾏不同动作的分析⼯具,它可以把复杂的逻辑关系和多种组合的情况表达得具体明确。
⼆.判定表的组成元素: 1.判定表通常由条件桩、条件项、动作桩、动作项组成。
2.条件桩: 被测对象的所有输⼊。
3.条件项:被测对象的输⼊取值。
4.动作桩:被测对象可能采取的操作/表现。
5.动作项:在各个条件项的组合下,被测对象所采取的动作/表现。
例:三好学⽣中,思想品质、⾝体、学习对应的是条件桩。
成为三好学⽣和没成为三好学⽣便是动作桩。
判定表参考模板:三.判定表的优缺点及适⽤范围: 1.优点: 能够把复杂的问题简单化,按照功能的各个条件进⾏组合,便于分析。
2.缺点: ⽆法对循环体结构类型进⾏分析; 随着条件的变多,判定表会变得异常庞⼤(规则数为条件的可选数量乘积),实战性不⾼。
3.适⽤范围: 条件的排列顺序不影响执⾏操作; 规则的排列顺序不影响执⾏操作; 每当某⼀个规则的条件已经满⾜,并确定要执⾏的操作后,不必检验别的规则; 如果某⼀个规则得到满⾜要执⾏多个操作,这些操作的执⾏顺序⽆关紧要。
四. 判定表设计⽤例步骤: 1.确定规则的个数,在判定表⾥的规则是指,条件桩进⾏排列组合后的集合,对应到判定表右侧的所有列,每⼀列都可以对应⼀个测试⽤例。
如果有3个条件,每个条件有2个取值,则有 2 x 2 x 2 = 8种规则,判定表中则有8列; 2.列出所有的条件桩和动作桩; 3.填⼊条件项; 4.填⼊动作桩和动作项; 5.化简,合并相似规则; 6.将每条规则转化为⽤例。
五.判定表步骤解析: 1.判定表的化简与合并: 1.1. 化简⼯作是以合并相似规则为⽬标。
如果表中有两条或多条规则具有相同的动作,并且其条件项之间存在极为相似的关系,即可将其合并。
下图中,E1的取值都是 X,且C1 和 C2的取值相同,C3 的取值不同,那么可以得出,只要C1 和C2 取值为 Y/N,⽆论C3 怎么取值,结果都是 X。
黑盒测试——决策表法
![黑盒测试——决策表法](https://img.taocdn.com/s3/m/1fe1aaf2710abb68a98271fe910ef12d2af9a9a3.png)
⿊盒测试——决策表法1.决策表决策表是把作为条件的所有输⼊的各种组合值以及对应输出值都罗列出来⽽形成的表格。
它能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。
因此,利⽤决策表能够设计出完整的测试⽤例集合。
决策表通常由条件桩(Conditions)、条件项(Condition Alternatives)、动作桩(Actions)和动作项(Action Entries)4部分组成。
条件桩条件项动作桩动作项条件桩:列出所有可能的条件条件项:针对条件桩给出的条件列出所有可能的取值范围动作桩:列出要采取的动作动作项:指出在条件项的各种取值情况下应采取的动作2.决策表的构造及化简<1>构造决策表可采⽤以下5个步骤:(1)列出所有的条件桩和动作桩。
(2)确定动作规则(条件项)的个数。
(3)填⼊条件项。
(4)填⼊动作项,得到初始决策表。
(5)简化决策表,合并相似规则。
<2>决策表的化简对于n个条件的决策表,相应有2n个规则(每个条件分别取真、假值),当n较⼤时,决策表很繁琐。
实际使⽤决策表时,常常先将它简化。
决策表的简化是以合并相似规则为⽬标。
即若表中有两条以上规则具有相同的动作,并且在条件项之间存在极为相似的关系,便可以合并。
3.⽤例分析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:年增112345678910111213141516171819202122C1:⽉M1M1M1M1M1M2M2M2M2M2M3M3M3M3M3M4M4M4M4M4M4M4C2:⽇D1D2D3D4D5D1D2D3D4D5D1D2D3D4D5D1D2D2D3D3D4D5C3:年Y1Y2Y1Y2A1:不可能√√√√A2:⽇期+1√√√√√√√√√√√√√A3:⽇期复位(置位)√√√√√A4:⽉份+1√√√√A5:⽉份复位(置位)√A6:年+1√————————2)由决策表设计测试⽤例,得测试⽤例表。
黑盒测试-决策表
![黑盒测试-决策表](https://img.taocdn.com/s3/m/e6ef6642767f5acfa0c7cd03.png)
F
F F T F T
√
F
F F T T F
√
F
F F
F
F T
F
F T F F T
√
…
… … … … …
T F T F T F
√ √
5 合并相似规则
C1:a<b+c? C2:b<a+c? C3:C<a+b? F F F F F F F F F F F F F F F F F F F F F F F F F F T F F T … … …
动作桩
√ √ √ √ √ √ √
规则
√
动作项
规则合并(化简)
将具有相同动作,并且其条件项之间存在着极为相似关系的 两条或多条规则合并为一条规则
1
问 题 问 题 建 议 建 议 你觉得疲倦吗? 你觉得疲倦吗? 你对内容感兴趣吗? 你对内容感兴趣吗? 书中内容使你胡涂吗? 书中内容使你胡涂吗? 请回到本章开头重读 请回到本章开头重读 继续读下去 跳到下一章去读 继续读下去 Y Y Y
决策表的建立步骤
1列出所有的条件桩和动作桩
2 确定规则的个数
3 填入条件项
4 填入动作项
5 合并相似规则
实战演习 1 以下列问题为例给出构造决策表的具体过程。
如果某产品销售好并且库存低,则增加该产 品的生产;如果该产品销售好,但库存量不低, 则继续生产;若该产品销售不好,但库存量低, 则继续生产;若该产品销售不好,且库存量不低, 则停止生产。
第3章 黑盒测试方法
1 2 3 4
黑盒测试法概述
等价类测试
主 要 内 容
边界值测试
基于决策表的测试
5
黑盒测试用例设计方法
![黑盒测试用例设计方法](https://img.taocdn.com/s3/m/007750f5c1c708a1284a4436.png)
4.
表示
《软件测试》
3-12
等价类划分法测试案例
在某网站申请免费信箱时,要求用户必须输入用户名、密 码及确认密码,对每一项输入条件的要求如下: 用户名要求为4位以上,16位以下,使用英文字母、数字、
“-”、“_”,并且首字符必须为字母或数字;密码要求为
6~16位之间,只能使用英文字母、数字以及“-”、“_”, 并且区分大小写。
无效等价类
•
对规格说明(Spec)而言,无意义、不合理的输入、输出数据组成的
所有集合
•
根据规格说明(Spec)检查是否所有无效等价类都被很好处理,没有 不合理的行为
《软件测试》
3-8
如何划分等价类
1)
根据规格说明(Spec)的定义,对输入和输出
条件进行分析,划分等价类
2)
根据计算机基础知识,对输入和输出条件进行分
编号
(7) (8) (9) (10) (11) (12) (16)
是否三角形的3条 边
c>0 a+b>c b+c>a a+c>b
等腰三角形?
a=b b=c
(13) a≠b && (14) b ≠c &&
c=a
(15) c ≠a
(17) a≠b b≠c (18) (19)
密码 abc_123 123-abc 12345678 12345678 12345678 12345678 12345 abcdefghijk123456 abc&123 abc_123
确认密码 abc_123 123-abc 12345678 12345678 12345678 12345678 12345 abcdefghijk123456 abc&123 Abc_123
黑盒测试-因果图、判定表
![黑盒测试-因果图、判定表](https://img.taocdn.com/s3/m/e85076184431b90d6c85c751.png)
因果图
因果图方法(Cause-Effect graphics):一种黑盒测试方法。考虑输入条件之间的联系, 各种组合,相应产生多个动作来设计测试用例。
方法的依据:
需求规格说明中的因果关系。
因果图介绍
恒等
c1
e1
非
c1 c1
e1
或
c2 c3 c1V来自e1与 c2∧
e1
条件的约束
输入条件约束
判定表驱动测试
是分析和表达多逻辑条件下执行不同操作的情况下的工具,通常作为程序开发的辅助工具. 规格说明以判定表形式给出,或很容易转换成判定表 .
判定表的组成
规则
条件桩(Condition stub) 动作桩(Action stub) 条件项(Condition Entity) 动作项(Action Entity)
1 问 题 你觉得疲倦吗? 你对内容感兴趣吗? 请回到本章开头重读
2
3 Y N Y
4 Y N N
5 N Y Y X
6 N Y N X
7
8
Y
Y X
Y
Y N X
N
N Y
N
N N
书中内容使你糊涂吗? Y
建 议 继续读下去 跳到下一章去读
X X X
X
停止阅读,请休息
规则化简
化简 就是规则和并
有两条和多条规则具有相同的动作,并且其条件项之间存在着极为相似的关系。
考虑到原因之间必须有一个且仅有一个为1因此在因果图上施加g约束2122因果图实例具有e约束的因果图212210111213141516优点1因果图法能够帮助我们按照一定步骤高效的选择测试用例设计多个输入条件组合用例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2020/9/24
3
5.决策表法
5.2决策表:
2020/9/24
5
5.决策表法
决策表通常由四部分组成:
条件桩
条件项
动作桩
动作项
规则
2020/9/24
6
条件桩: 列出问题的所有条件
条件项:针对条件桩给出的条件列出所 有可能的取值
动作桩:给出问题规定的可能采取的操 作
动作项:与条件项紧密相关,指出在条 件项的各组取值情况下应采取的动作
项中的每一列是一条 规则
2020/9/24
7
5.决策表法
规则指示在条件部分中指示的条件环 境下要采取什么行动.
在上图的决策表中,如果条件1条件2为 真,而条件3条件4为假,那么采取行动 3.
11
(2)包含
如果两个条件项的动作是相同的,对任意 条件1的值和条件2中对应的值,如果满足:
A.如果条件1的值是T(F),则条件2中的值也 是T(F).
B.如果条件1的值是-(不关心),则条件2中的 值是T,F,-,称条件1包含条件2,条件2可以撤 去.
重复A,B就可以得到精简的决策表.
2020/9/24
28
5.决策表法
涉及的操作:
a1:不可能 a2:day加1 a3:day复位 a4:month加1 a5:month复位 a6:year加1
2020/9/24
29
第一次尝试
M1={月份:每月有30天} M2={月份:每月有31天} M3={月份:此月是2月} D1={日期:1≤日期≤28} D2={日期:日期=29} D3={日期:日期=30} D4={日期:日期=31} Y1={年:年是闰年} Y2={年:年是平年}
请用基于判定表的方法设计测试用例。
2020/9/24
22
一、设计判定表
•(1)条件桩
•C1:a,b,c构成三角形? •C2:a = b? •C3:a = c? •C4:b = c?
•(2)规则数
•共有四个条件,每个条件的取值为“是”或“否”,因此有
24= 16条规则。
2020/9/24
23
(3)动作桩
(1)合并
如果一个条件项(表中某列中的条件值) 和另外一个条件项所产生的动作是相 同的,且两个条件项对应的每一行的值 只有一个是不同的,则可以将其合并.合 并的项除了不同值变成”不关心”条 目外,其余不变
2020/9/24
10
(1)两条规则合并成一条
条件项“— ”表示与取 值无关。
2020/9/24
2020/9/24
26
根据决策表测试用例
2020/9/24
27
NextDate函数的决策表
问题描述
程序有三个输入变量month、day、year,并且满 足:1≤month≤12、1≤day≤31、1900≤ year ≤2050。它们分别作为输入日期的月份、日、 年份,通过程序可以输出该输入日期在日历上下 一天的日期。例如,输入为2005年11月29日,则 该程序的输出为2005年11月30日。
动作桩
A1:进行优先处理 A2:作其他处理
2020/9/24
17
(2)确定规则个数
输入条件个数:3;
功率大于50马力吗 维修记录不全吗 运行超过10年吗
每个条件的取值:“是”或“否”;
规则个数:2*2*2 =8;
2020/9/24
18
例:维修机器问题(续)
(3)填入条件项;
利用集合的笛卡尔积计算条件项的取值
(2)两条规则的进一步合并
条件项“— ”在逻辑上 包含其它的 条件。
2020/9/24
13
5.3决策表的化简
2020/9/24
8 F T F
×
14
5.决策表法
构造决策表的步骤:
(1) 列出所有的条件桩和动作桩 (2)确定规则的个数 (3)填入条件项 (4)填入动作项,得到初始的决策表 (5)对初始的决策表化简
2020/9/24
15
例:维修机器问题
问题描述:
“……对于功率大于50马力的机器, 并且维修记录不全或已运行10年以 上的机器,应给予优先的维修处理 ……”
请建立决策表。
2020/9/24
16
例:维修机器问题(续)
(1)列出所有的条件桩和动作桩
条件桩
C1:功率大于50马力吗? C2:维修记录不全吗? C3:运行超过10年吗?
2020/9/24
19
例:维修机器问题(续)
(4)填入动作项;
1,2合并,5,7合并,6,8合并
2020/9/24
20
例:维修机器问题(续)
2020/9/24
21
三角形问题
问题描述
输入三个正整数a、b、c,分别作为三角形的三条 边,通过程序判断三条边是否能构成三角形?如 果能构成三角形,判断三角形的类型(等边三角 形、等腰三角形、一般三角形)。
规则1中的条件1.2.3称为“不关心” 条目.
不关心条目解释有两种:条件无关或条 件不适用.
2020/9/24
8
5.3决策表的化简
有n个条件的决策表,对应的规则将 有2n条,当n非常大的时候,这是 非常繁琐的。因此,应对决策表进 行化简.
决策表的化简包括两个方面:
2020/9/24
9
5.3决策表的化简
有256条规则的第一次尝试
年变量对应的等价类收缩为表中的一个条件
第二次尝试(关注日期和月份)
M1={月份:每月有30天} M2={月份:每月有31天,12月除外} M3={月份:此月是12月} M4={月份:此月是2月} D1={日期:1≤日期≤ 27} D2={日期:日期=28} D3={日期:日期=29} D4={日期:日期=30} D5={日期:日期=31} Y1={年:年是闰年} Y2={年:年不是闰年}
A1:非三角形; A2:不等边三角形; A3:等腰三角形; A4:等边三角形; A5:不可能件可以扩展成: a+b>c
b+c>a
5.4三角形问题的决策表用例设计
c+a>b
2020/9/24
25
5.决策表法
三角形问题的扩展决策 表
条件:a,b,c是否可以 构成三角形
第2章 黑盒测试用例设计方法
2020/9/24
1
黑盒测试用例设计方法 -----------决策表方法
2020/9/24
2
5.决策表法
5.1 概述
在一个程序中,如果输入输出比较多, 输入之间、输出之间相互制约的条件 比较多,在这种情况下使用决策表更 合适,它可以清楚地表达它们之间的 各种复杂关系。