1.判定表的簡介
判定表是黑盒測試的方法之一,判定表是把作為條件的所有輸入的各種組合值以及對應輸出值都羅列出來而形成的表格。它能夠將復雜的問題按照各種可能的情況全部列舉出來,簡明並避免遺漏。
因此,利用判定表能夠設計出完整的測試用例集合
2.判定表組成:
判定表通常有以下四個部分組成:
條件樁 |
條件項 |
動作樁 |
動作項 |
- 條件樁(Condition Stub):列出了問題得所有條件。通常認為列出的條件的次序無關緊要。
- 動作樁(Action Stub):列出了問題規定可能采取的操作。這些操作的排列順序沒有約束。
- 條件項(Condition Entry):列出針對它左列條件的取值。針對條件樁給出的條件列出所有可能的取值
- 動作項(Action Entry):列出在條件項的各種取值情況下應該采取的動作。
將任何一個條件組合的特定取值及相應要執行的動作稱為一條規則。在決策表中貫穿條件項和動作項的一列就是一條規則。
3.判定表的優點和缺點
優點:它能把復雜的問題按各種可能的情況一一列舉出來,簡明而易於理解,也可避免遺漏。
缺點:不能表達重復執行的動作,例如循環結構。
4.判定表的適用條件
B. Beizer 指出了適合使用判定表設計測試用例的條件:
- 規格說明以判定表形式給出,或很容易轉換成判定表。
- 條件的排列順序不會也不影響執行哪些操作。
- 規則的排列順序不會也不影響執行哪些操作。
- 每當某一規則的條件已經滿足,並確定要執行的操作后,不必檢驗別的規則。
- 如果某一規則得到滿足要執行多個操作,這些操作的執行順序無關緊要。
B. Beizer提出這5個必要條件的目的是為了使操作的執行完全依賴於條件的組合。其實對於某些不滿足這幾條的判定表,同樣可以借以設計測試用例,只不過尚需增加其它的測試用例罷了。
5.判定表的建立步驟:
- 確定規則的個數.假如有n個條件。每個條件有兩個取值(0,1),故有
種規則。
- 列出所有的條件樁和動作樁。
- 填入條件項。
- 填入動作項。得到初始判定表。
- 簡化判定表(合並相似規則(相同動作)),如下表所示,左側的兩列均可以合並為右側一列
規則 選項 |
1 |
2 |
合並1、2 |
3 |
4 |
合並3、4 |
條件1 |
Y |
Y |
Y |
Y |
Y |
Y |
條件2 |
Y |
N |
- |
Y |
- |
- |
條件3 |
N |
N |
N |
N |
N |
N |
動作4 |
√ |
√ |
√ |
√ |
√ |
√ |
6.示例1
給出三個任意正數a、b、c判斷其能否構成三角形及三角形按邊分類的類型
1、 確定規則的個數,先定義條件個數,如下:
三角形按照邊分為:等腰三角形、等邊三角形、一般三角形
根據分析,確定條件如下:
a<b+c、b<a+c、c<a+b、a=b、b=c、c=a,故規則的個數有2的6次方64個
2、初始判定表
1~32 |
33~48 |
49~56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
|
a<b+c |
N |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
b<a+c |
- |
N |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
c<a+b |
- |
- |
N |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
a=b |
- |
- |
- |
N |
N |
N |
N |
Y |
Y |
Y |
Y |
b=c |
- |
- |
- |
N |
N |
Y |
Y |
N |
N |
Y |
Y |
a=c |
- |
- |
- |
N |
Y |
N |
Y |
N |
Y |
N |
Y |
一般三角形 |
√ |
||||||||||
等腰三角形 |
√ |
√ |
√ |
||||||||
等邊三角形 |
√ |
||||||||||
非三角形 |
√ |
√ |
√ |
||||||||
不成立 |
√ |
√ |
√ |
上述判定表已經是合並相同規則后的表格,經過簡化后(去除不可能條件)得到最終判定表如下:
1~32 |
33~48 |
49~56 |
57 |
58 |
59 |
61 |
64 |
|
a<b+c |
N |
Y |
Y |
Y |
Y |
Y |
Y |
Y |
b<a+c |
- |
N |
Y |
Y |
Y |
Y |
Y |
Y |
c<a+b |
- |
- |
N |
Y |
Y |
Y |
Y |
Y |
a=b |
- |
- |
- |
N |
N |
N |
Y |
Y |
b=c |
- |
- |
- |
N |
N |
Y |
N |
Y |
a=c |
- |
- |
- |
N |
Y |
N |
N |
Y |
一般三角形 |
√ |
|||||||
等腰三角形 |
√ |
√ |
√ |
|||||
等邊三角形 |
√ |
|||||||
非三角形 |
√ |
√ |
√ |
|||||
不成立 |
根據上述判定表,得到用例如下:
用例編號 |
a |
b |
c |
預期結果 |
T01 |
4 |
1 |
2 |
非三角形 |
T02 |
1 |
4 |
2 |
非三角形 |
T03 |
1 |
2 |
4 |
非三角形 |
T04 |
3 |
4 |
6 |
一般三角形 |
T05 |
3 |
4 |
3 |
等腰三角形 |
T06 |
4 |
3 |
3 |
等腰三角形 |
T07 |
3 |
3 |
4 |
等腰三角形 |
T08 |
3 |
3 |
3 |
等邊三角形 |
7.示例2
主持人對甲、乙、丙三人說:“這里有三頂紅帽子,兩頂白帽子。現在用布蒙上你們的眼睛,給你們每人戴上一頂帽子,然后請你們依次睜開眼睛,能正確說出自己所戴帽子的顏色者有獎。”
帶完帽子后,甲拿下布后看了其他兩人的帽子說:“我不知道。”
然后,乙解開布看了其他兩人的帽子后說:“我不知道。”
輪到丙時,他沒有拿下布就正確地說出了自己所戴帽子的顏色。
試問:丙戴的是什么帽子?他是怎樣得出結論的?
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
甲 |
|||||||
乙 |
|||||||
丙 |
|||||||
甲不知 |
× |
× |
× |
√ |
× |
× |
× |
乙不知 |
× |
√ |
× |
× |
√ |
× |
|
丙 |
√ |
√ |
√ |
√ |
由上述判定表可知,所有符合題干假設的,只有1、3、5、7滿足條件,而滿足條件的所有組合中,丙均為紅色帽子,故而得出結論