决策表
【简介】
- 概念
因果图、决策表是一种充分考虑系统之间的输入组合、约束以及输出因果关系的用例设计方法。
- 适用范围
适合:决策表特别适合于针对不同逻辑条件的组合,测试对象需要执行不同操作的场景。
不适合: 1. 输入和输出不明确,或输入与输出的因果关系不明确的情况
2. 被分析的特点和功能点过于复杂,输入项目很多的情况下。输入项过多,会造成决策表非常庞大,没有工具辅助的情况下,难以操作。
3. 系统输入之间相互约束少,不需要做大范围的组合测试时,不宜用本工程方法,不然会产生大量用例冗余。
4. 系统输入之间存在顺序先后的可变性。例如,两个输入之间可以交换顺序,且交换顺序后,他们的输出是不一样的。判定表的输入是无法排序的。
- 决策表的组成
条件桩: 列出系统的所有输入,通常认为列出的输入次序无关紧要
动作桩: 列出系统所有可能执行的操作,这些执行操作没有顺序约束
条件项: 列出输入项的各种取值
动作项: 列出输入项的各种取值情况下应该采取的动作
- 决策表的步骤
1. 列出所有的条件桩和动作桩
2. 确定规则的数目
3. 填入条件项和动作项得到初始的决策表
4. 简化相似的规则,得到优化的决策表
5. 每列规则,设计一个测试用例
【示例】
需求:
公司有如下规定:
-
- 中国去欧美的航线所有座位都有食物供应。每个座位都可以播放电影
-
中国去非欧美的国外航线都有食物供应,只有商务仓可以播放电影
-
中国国内的航班的商务仓有食物供应,但是不可以播放电影
-
中国国内的航班的经济仓除非飞行时间大于2小时就有食物供应,但是不可以播放电影
1. 列出所有的条件桩和动作桩
等价类:
A1={航线为国外欧美航线}
A2={航线为国外非欧美航线}
A3={航线为国内航线}
P1={舱位为经济舱}
P2={舱位为商务舱}
T1={飞行时间大于2小时}
T2={飞行时间不大于2小时}
条件桩
C1:航线为{A1,A2,A3}之一
C2:舱位为{P1,P2}之一
C3:飞行时间为{T1,T2}之一
动作桩
A1:食物供应
A2:电影播放
2. 确定规则的数目
3x2x2=12
3. 填入条件项和动作项得到初始的决策表
|
规则 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
条件桩 |
C1航线 |
A1 |
A1 |
A1 |
A1 |
A2 |
A2 |
A2 |
A2 |
A3 |
A3 |
A3 |
A3 |
C2类型 |
P1 |
P1 |
P2 |
P2 |
P1 |
P1 |
P2 |
P2 |
P1 |
P1 |
P2 |
P2 |
|
C3时间 |
T1 |
T2 |
T1 |
T2 |
T1 |
T2 |
T1 |
T2 |
T1 |
T2 |
T1 |
T2 |
|
动作桩 |
A1食物 |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
|
√ |
√ |
A2电影 | √ | √ | √ | √ | √ | √ |
4. 简化相似的规则,得到优化的决策表
|
1 |
2 |
3 |
4 |
5 |
|
条件桩 |
C1航线 |
A1 |
A2 |
A2 |
A3 |
A3 |
C2类型 |
- |
P1 |
P2 |
P1 |
P2 |
|
C3时间 |
- |
- |
- |
T1 |
- |
|
动作桩 |
A1食物 |
√ |
√ |
√ |
√ |
√ |
A2电影 | √ | √ |
5. 每列规则,设计一个测试用例
用例编号 |
输入 |
预期输出 |
1 |
中国-欧美航线/所有座位/全时 |
提供食物/播放电影 |
2 |
非中国-欧美国外航线/经济舱/全时 |
提供食物 |
3 |
非中国-欧美国外航线/商务舱/全时 |
提供食物/播放电影 |
4 |
国内航线/经济舱/大于2小时 |
提供食物 |
5 |
国内航线/商务舱/全时 |
【备注】:
示例来源于:https://my.oschina.net/zhangyujian/blog/754961