文档介绍:2022/7/9
1
第2章黑盒测试用例设计方法
2022/7/9
2
黑盒测试用例设计方法
-----------决策表方法
2022/7/9
3
概述
在一个程三角形,判断三角形的类型(等边三角形、等腰三角形、一般三角形)。
请用基于判定表的方法设计测试用例。
一、设计判定表
2022/7/9
23
(1)条件桩
C1:a,b,c构成三角形?
C2:a = b?
C3:a = c?
C4:b = c?
(2)规则数
共有四个条件,每个条件的取值为“是”或“否”,因此有24= 16条规则。
2022/7/9
24
(3)动作桩
A1:非三角形;
A2:不等边三角形;
A3:等腰三角形;
A4:等边三角形;
A5:不可能;
2022/7/9
25
该条件可以扩展成:a+b>cb+c>ac+a>b
2022/7/9
26
三角形问题的扩展决策表
条件:a,b,c是否可以
构成三角形
2022/7/9
27
根据决策表测试用例
2022/7/9
28
NextDate函数的决策表
问题描述
程序有三个输入变量month、day、year,并且满足:1≤month≤12、1≤day≤31、1900≤ year ≤2050。它们分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上下一天的日期。例如,输入为2005年11月29日,则该程序的输出为2005年11月30日。
2022/7/9
29
涉及的操作:
a1:不可能
a2:day加1
a3:day复位
a4:month加1
a5:month复位
a6:year加1
第一次尝试
M1={月份:每月有30天}
M2={月份:每月有31天}
M3={月份:此月是2月}
D1={日期:1≤日期≤28}
D2={日期:日期=29}
D3={日期:日期=30}
D4={日期:日期=31}
Y1={年:年是闰年}
Y2={年:年是平年}
有256条规则的第一次尝试
年变量对应的等价类收缩为表中的一个条件
第二次尝试(关注日期和月份)
M1={月份:每月有30天}
M2={月份:每月有31天,12月除外}
M3={月份:此月是12月}
M4={月份:此月是2月}
D1={日期:1≤日期≤ 27}
D2={日期:日期=28}
D3={日期:日期=29}
D4={日期:日期=30}
D5={日期:日期=31}
Y1={年:年是闰年}
Y2={年:年不是闰年}
2022/7/9
33
建立条件:
c1:month在Mi中(如M1,M2…)
c2:day在Di中
c3:year在Yi中
NextDate函数的判定表
每月30天
每月31天,12月除外
续……
此月是12月
此月是2月
此年是闰年
NextDate函数的精简判定表
续……
NextDate函数的测试用例
2022/7/9
39
决策表测试法适用于具有以下特征的应用程序:
(1)if-then-else逻辑突出
(2)输入变量之间存在逻辑关系
(3)涉及输入变量子集的计算
(4)输入和输出之间存在因果关系
2022/7/9
40
适用于使用决策表设计测试用例的情况:
(1)规格说明以决策表形式给出,或较容易转换为决策表.
(2)条件的排列顺序不会也不应该影响执行的操作
(3)规则的排列顺序不会也不应该影响执行的操作
2022/7/9
41
(4)当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则.
(5)如果某一规则的条件要执行多个操作任务,这些操作的执行顺序无关紧要.
假设一个中国的航空公司规定:
中国去欧美的航线所有座位都有食物供应。每个座位都可以播放电影。 
中国去非欧美的国外航线都有食物供应,只有商务舱可以播放电影。 
中国国内的航班的商务舱有食物供应,但是不可以播放电影。
中国国内的航班的经济舱除非飞行时间大于2小时就有食物供应,但是不可以播放电影。
2022/7/9
42
判定表
2022/7/9
43