软件测试判定表测试法和测试
判定表设计步骤:
确定规则的个数
列出所有的条件桩和动作桩
填入条件项 填入动作项,得到初始判定表 简化判定表、合并相似规则(相同动作)
3
判定表测试法
某程序规定:“对总成绩大于450分,且各科成绩均高于85分或者 是优秀毕业生, 应优先录取,其余情况作其他处理”。请用判定表设计测试 用例。 1. 建立判定表
b
1 4 2 5 ? ? 2 ? 3 2 4
c
2 2 4 5 ? ? 3 ? 2 2 5
预期输出
非三角形 非三角形 非三角形 等边三角形 不可能 不可能 等腰三角形 不可能 等腰三角形 等腰三角形 不等边三角形
18
a=b, a=c, b≠c
因果图测试法
因果图中包含四种关系:
恒等:若c1是1,则e1也是1;若c1是0,则e1为0。 非: 或: 若c1是1,则e1是0;若c1是0,则e1是1。 若c1或c2或c3是1,则e1是1;若c1、c2和c3都是0,
17
— — F
— — — T — — — T
C6:b = c? — — — T F a1: 非三角形 X X X a2: 不等边三角形 a3: 等腰三角形 a4: 等边三角形 X
用例ID
DT1 DT2 DT3 DT4 DT5 DT6 DT7 DT8 DT9 DT10 DT11
a
4 1 1 5 ? ? 2 ? 2 3 3
动作桩
A1:进行优先处理
A2:作其他处理
7
判定表测试法
功率大于50马力吗
• (2)确定规则个数
维修记录不全吗 运行超过10年吗
输入条件个数:3; 每个条件的取值:“是”或“否”; 规则个数:2*2*2 =8;
8
判定表测试法
(3)填入条件项;
1 Y Y Y 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
34
规则 选项
1 0 1 0 0 0
2 0 0 1 0 0
3 0 0 0 1 0
4 0 0 0 0 1
5 1 1 0 0 0 1 0 0 0
6 1 0 1 0 0 0 1 0 0
7 1 0 0 1 0 0 0 1 0
8 1 0 0 0 1 0 0 0 1
11 4 5 6 7 E1 E2 E3 E4
进行优先处理
10
•不完全正确
判定表测试法
(5)化简;
功率大于50马力吗? (1) Y Y — (2) Y N Y (3) Y N N (4) N — Y (5) N — N
条 维修记录不全吗? 件
运行超过10年吗? 进行优先处理
动 作 作其他处理
11
•不完全正确
判定表测试法
问题描述
•volunteer ??
输入三个正整数a、b、c,分别作为三角
形的三条边,通过程序判断三条边是否能
构成三角形?如果能构成三角形,判断三 角形的类型(等边三角形、等腰三角形、 一般三角形)。
请用基于判定表的方法设计测试用例。
12
判定表测试法
(1)条件桩
C1:a,b,c构成三角形? C2:a = b? C3:a = c? C4:b = c?
落点处为对方老将。
30
添加中间节点11,目的是作为导出结果的进一步原因, 简化因果图导出的判定表
1 ~ 2 3 4 5 E 6 7
31
~ ~ V
V
E1
E2 ~ V V V E3 E4
11
决策表分解
规则
选项
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1 2 3 4 11 E1
22
因果图测试法
2. 绘制因果图
1 E ∧ 21 2 ∨ 11 ∧ 21
1 ∨ 11 2
22
22
3 (a)因果图
23
3 (b)有约束的因果图
23
23
因果图测试法
3.根据因果图所建立的判定表 1 2 3 4 5 6 7 8
1
条 件 2 3 11 22 21 23
1
1 1 — / / /
1
1 0 — / / /
优先录取
作其他处理
5
判定表测试法
• 问题描述:
“……对于功率大于50马力的机器, 并且维修记录不全或已运行10年以 上的机器,应给予优先的维修处理 ……”
• 请建立决策表。
•volunteer ??
6
判定表测试法
(1)列出所有的条件桩和动作桩
条件桩
C1:功率大于50马力吗? C2:维修记录不全吗? C3:运行超过10年吗?
1 1 1 1 0 1
1 1 1 0 1 0
1 1 0 1 0 1
1 1 0 0 0 1
1 0 1 1 0 1
1 0 1 0 0 1
1 0 0 1 0 1
1 0 0 0 0 1
0 1 1 1 0 1
0 1 1 0 0 1
0 1 0 1 0 1
0 1 0 0 0 1
0 0 1 1 0 1
0 0 1 0 0 1
13 0 0 1 1
14 0 0 1 0
15 0 0 0 1
16 0 0 0 0
11 5 6 7 E2 E3 E4
1 1 1 1
33
决策表分解
规则
选项
1 2 3 4 5 6 7 8
1 2 3 11 E1
1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1
1 2 3 4 5 6 7 8
总成绩大于450分吗?
条 件 各科成绩均高于85分吗? 优秀毕业生吗? 动 作 优先录取; 作其他处理
Y
Y Y
Y
Y N
Y
N Y
Y
N N
N
Y Y
N
Y N
N
N Y
N
N N
4
判定表测试法
2. 简化判定表 1 总成绩大于450分吗? 条 件 各科成绩均高于85分吗? 优秀毕业生吗? 动 作 Y Y — 2 Y N Y 3 Y N N 4 N — —
则e1为0。“或”可有任意多个输入。
与:
若c1和c2都是1,则ei为1;否则ei为0。“与”也可有
任意多个输入。
19
因果图测试法
输 入 输 出 约 束 图 形 符 号
20
因果图测试法
输 入 输 出 约 束 图 形 符 号
21
因果图测试法
某软件规格说明书要求:第一列字符必须是A或B,第二列字符必 须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正 确,则给出信息L,如果第二列字符不是数字,则给出信息M。下面介 绍使用因果图法设计测试用例。
35
END
36
37
b, c构成三角形吗?可以扩展为 三个条件:
a < b + c?
b < a + c?
c < a + b?
则规则条数变为26=64
16
条件桩修改后的判定表
C1:a < b + c? C2:b < a + c? C3:c < a + b? C4:a = b? C5:a = c? 1 2 3 4 5 6 7 8 9 10 11 F T T T T T T T T T T — F T T T T T T T T T T F T T T T F F T T F T T T T F T F T T T T F F F F T F X X X X
•volunteer ??
25
因果图测试法
•原因:①投入1元5角硬币;②投入2元硬币;③ 按“可乐”按钮;④按“雪碧”按钮;⑤按“红 茶”按钮。 •中间状态:①已投币;②已按钮。
•结果:①退还5角硬币;②送出“可乐”饮料; ③送出“雪碧”饮料;④送出“红茶”饮料。
26
因果图测试法
27
因果图测试法
•volunteer ??
29
根据分析明确原因和结果
原因: 1. 落点在棋盘上; 2. 落点与起点构成日字; 3. 落点方向的邻近交叉点 无棋子; 4. 落点处为自己方棋子; 5. 落点处无棋子; 6. 落点处为对方棋子(非 老将);
7.
结果: E1、不移动棋子; E2、移动棋子; E3、移动棋子,并除去对方 棋子; E4、移动棋子,并提示战 胜对方,结束游戏。
28
分析中国象棋中走马的实际情况
1.
2.
3.
4.
5. 6.
7.
如果落点在棋盘外,则不移动棋子; 如果落点与起点不构成日字型,则不移动棋子; 如果在落点方向的邻近交叉点有棋子(绊马腿), 则不移动棋子; 落点处有己方棋子,则不移动棋子; 如果不属于1-4条, 落点处无棋子,则移动棋子; 如果不属于1-4条, 落点处为对方棋子(非老将), 则移动棋子并除去对方棋子; 如果不属于1-4条,且落点处为对方老将,则移动 棋子,并提示战胜对方,游戏结束。
0 0 0 1 0 1
0 0 0 0 0 1
32
规则
1
选项
2 1 1 1 0
3 1 1 0 1
4 1 1 0 0 1 0 0
5 1 0 1 1
6 1 0 1 0 0 1 0