【簡介】
- 概念
因果圖、決策表是一種充分考慮系統之間的輸入組合、約束以及輸出因果關系的用例設計方法。
- 適用范圍
適合:決策表特別適合於針對不同邏輯條件的組合,測試對象需要執行不同操作的場景。
不適合: 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