决策表法
重复A,B就可以得到精简的决策表. 重复A,B就可以得到精简的决策表. A,B就可以得到精简的决策表
决策表的简化
简化是以合并相似规则为目标; 简化是以合并相似规则为目标; 若表中有两条以上规则具有相同的动作, 若表中有两条以上规则具有相同的动作, 并且在条件项之间存在极为相似的关系, 并且在条件项之间存在极为相似的关系, 便可以合并。 便可以合并。
1 2 3 4 5
三角形问题的扩展决策表
a,b,c是否可以构成 a,b,c是否可以构成 三角形
7 8 9 10 11
6
N √
Y N N √
Y Y N √
Y Y Y Y Y Y
Y Y Y Y Y N
Y Y Y Y N Y
Y Y Y Y N N
Y Y Y N Y Y
Y Y Y N Y N
Y Y Y N N Y
Y Y Y N N N √
√ √ √ √ √
√
√
根据决策表测试用例
编号
DT1 DT2 DT3 DT4 DT5 DT6 DT7 DT8 DT9 DT10 DT11
[a,b,c]
412 142 124 555 ??? ??? 223 ??? 232 322 345
期望输出
非三角形 非三角形 非三角形 等边三角形 不可能 不可能 等腰三角形 不可能 等腰三角形 等腰三角形 一般三角形
作业
某厂对一部分职工重新分配工作,分配原则是: 年龄不满20岁,文化程度是小学者脱产学习, 文化程度是中学者当电工; 年龄满20岁但不足50岁,文化程度是小学或 中学者,男性当钳工,女性当车工;文化程 度是大学者技术员; 年龄满50及50以上,文化程度是小学或中学 者当材料员,文化程度是大学者当技术员。
条件桩 年龄<20
动作桩 脱产学习
年龄在20 性别 车工 技术员 材料员
作业
在供应商业务处理中,有一个“检查订货单” 在供应商业务处理中,有一个“检查订货单” 功能:当客户订货款项大于5000元时,如果客 元时, 功能:当客户订货款项大于 元时 户拖欠款超过60天 户拖欠款超过 天,向客户发一份拒绝供货备 忘录,在客户没有还清货款前不发供货单; 忘录,在客户没有还清货款前不发供货单; 如果客户拖欠款没有超过60天 如果客户拖欠款没有超过 天,可以发供货单 如果客户订货款项没有超过5000元,而客户拖 如果客户订货款项没有超过 元 欠款超过60天 欠款超过 天,仍可以发供货单但还要发一份 催款通知单; 催款通知单; 如果客户拖欠款没有超过60天 如果客户拖欠款没有超过 天,可以发供货单
16
17
18
19
20
2121-22
M4 D1 -
M4 D2 Y1
M4 D2 Y2
M4 D3 Y1
M4 D3 Y2 √
M4 D4-D5 √
√
√ √ √ √√
根据决策表设计测试用例: 根据决策表设计测试用例: 编号
Test1~Test3 Test4 Test5 Test6~Test9 Test10 Test11~14 Test15 Test16 Test17 Test18 Test19 Test20 Test21~22
Y Y N N Y N √ √ Y N - √ √ √ √ Y Y - N N N Y - N
将“阅读指南”决策表简化
规则 选项
1~4 Y - -
5 N Y Y √
6 N Y N √
7~8 N N -
问 题 建 议
觉得疲倦 吗 感兴趣吗 糊涂吗 重读 继续 跳下一章 休息
√ √
决策表的化简
8 F T F
决策表测试法的适用范围
决策表测试法适用于具有以下特征的应用程序: 决策表测试法适用于具有以下特征的应用程序:
(1)if-then-else逻辑突出 (1)if-then-else逻辑突出 (2)输入变量之间存在逻辑关系 (2)输入变量之间存在逻辑关系 (3)涉及输入变量子集的计算 (3)涉及输入变量子集的计算 (4)输入和输出之间存在因果关系 (4)输入和输出之间存在因果关系
M1 D1~D3 -
M1 D4 -
M1 D5 √
M2 D1~D4 -
M2 D5 -
M3 D1~D4 -
M3 D5 -
√ √ √
√ √ √
√ √ √ √
表4 续
c1: month在 c2: day在 c3: year在 a1: 不可能 a2: day加1 a3: day复位 a4: month加1 a5: month复位 a6:year加1
适用于使用决策表设计测试用例的情况: 适用于使用决策表设计测试用例的情况
(1)规格说明以决策表形式给出, 或较容易转换为决策表. (2)条件的排列顺序不会也不应该 影响执行的操作 (3)规则的排列顺序不会也不应该 影响执行的操作
(4)当某一规则的条件已经满足,并确 定要执行的操作后,不必检验别的规 则. (5)如果某一规则的条件要执行多个 操作任务,这些操作的执行顺序无关 紧要.
决策表的化简
(2)包含
如果两个条件项的动作是相同的, 如果两个条件项的动作是相同的,对任 意条件1的值和条件2中对应的值, 意条件1的值和条件2中对应的值,如果 满足: 满足:
A.如果条件 的值是T(F),则条件2 A.如果条件1的值是T(F),则条件2中的值也 如果条件1 T(F),则条件 是T(F). B.如果条件 的值是- 不关心),则条件2 如果条件1 ),则条件 B.如果条件1的值是-(不关心),则条件2中 的值是T,F, 称条件1包含条件2 条件2 T,F,的值是T,F,-,称条件1包含条件2,条件2可 以撤去. 以撤去.
×
3.决策表法
构造决策表的步骤: 构造决策表的步骤
(1)确定规则的个数 2n) 确定规则的个数(2 确定规则的个数 (2)列出所有的条件桩和动作桩 列出所有的条件桩 列出所有的条件桩和 (3)填入输入项 填入输入项 (4)填入动作项 得到初始的决策表 填入动作项,得到初始的决策表 填入动作项 (5)对初始的决策表化简 对初始的决策表化简
NextDate函数的决策表 涉及的操作(动作桩):
a1:不可能 a2:day加1 a3:day复位 a4:month加1 a5:month复位 a6:year加1
根据如下等价类:
M1:{月:月有30天} M2:{月:月有31天,12月除外} M3:{月:月有12月} M4:{月:月是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不是闰年}
决策表的化简
(1)合并 合并
如果一个条件项( 如果一个条件项(表中某列中的条件 值)和另外一个条件项所产生的动作 是相同的, 是相同的,且两个条件项对应的每一 行的值只有一个是不同的, 一个是不同的 行的值只有一个是不同的,则可以将 其合并.合并的项除了不同值变成” 其合并.合并的项除了不同值变成” 不关心”条目外, 不关心”条目外,其余不变
[month,day,year] 期望输出
8 16 2001 8 30 2004 9 31 2001 1 16 2004 1 31 2001 12 16 2004 12 31 2001 2 16 2004 2 28 2004 2 28 2001 2 29 2004 2 29 2001 2 30 2004 17/8/2001 31/8/2004 不可能 17/1/2004 1/2/2001 17/12/2004 1/1/2002 17/2/2001 29/2/2004 1/3/2001 1/3/2004 不可能 不可能
7 N N Y
8 N N N
问 题 建 议
觉得疲倦 吗 感兴趣吗 糊涂吗 重读 继续 跳下一章 休息
√ √ √ √ √
√
不关心条目解释有两种: 条件无关 条件不适用.
决策表的化简
有n个条件的决策表,对应的规则 个条件的决策表, 将有2 非常大的时候, 将有2n条,当n非常大的时候, 这是非常繁琐的。因此, 这是非常繁琐的。因此,应对决 策表进行化简. 策表进行化简. 决策表的化简包括两个方面: 决策表的化简包括两个方面:
M4 M4 M4 M4 D3 D3 D4 D5 Y1 Y2 - √ √ √ √ √
化简决策表: 表4
c1: month在 c2: day在 c3: year在 a1: 不可能 a2: day加1 a3: day复位 a4: month加1 a5: month复位 a6:year加1
1-3 4 5 6-9 10 1111-14 15
在一个程序中,如果输入输出比较多, 在一个程序中,如果输入输出比较多, 输入之间、 输入之间、输出之间相互制约的条件比 较多,在这种情况下使用决策表更合适, 较多,在这种情况下使用决策表更合适, 它可以清楚地表达它们之间的各种复杂 关系。 关系。 决策表法是黑盒测试方法中最为严格、 决策表法是黑盒测试方法中最为严格、 最具有逻辑性的测试方法
3.决策表法
表3 续
12 13 14 15 16 R1 18 19 20 21 22
c1: month在 M3 M3 M3 M3 M4 M4 M4 c2: day在 D2 D3 D4 D4 D1 D2 D2 c3: year在 - - - - - Y1 Y2 a1: 不可能 √ √ √ √ √ a2: day加1 √ √ a3: day复位 √ a4: month加1 √ a5: month复位 √ a6:year加1
N √ √ √ √ √ √ √ √ √ Y Y Y Y Y Y Y N Y Y N Y Y Y N N Y N Y Y Y N Y N Y N N Y Y N N N