一.什么是判定表:
判定表,也叫決策表。是對多種輸入條件下軟件系統執行不同動作的分析工具,它可以把復雜的邏輯關系和多種組合的情況表達得具體明確。
二.判定表的組成元素:
1.判定表通常由條件樁、條件項、動作樁、動作項組成。
2.條件樁: 被測對象的所有輸入。
3.條件項:被測對象的輸入取值。
4.動作樁:被測對象可能采取的操作/表現。
5.動作項:在各個條件項的組合下,被測對象所采取的動作/表現。
例:三好學生中,思想品質、身體、學習對應的是條件樁。成為三好學生和沒成為三好學生 便是動作樁。
判定表參考模板:
三.判定表的優缺點及適用范圍:
1.優點:
能夠把復雜的問題簡單化,按照功能的各個條件進行組合,便於分析。
2.缺點:
無法對循環體結構類型進行分析;
隨着條件的變多,判定表會變得異常龐大(規則數為條件的可選數量乘積),實戰性不高。
3.適用范圍:
條件的排列順序不影響執行操作;
規則的排列順序不影響執行操作;
每當某一個規則的條件已經滿足,並確定要執行的操作后,不必檢驗別的規則;
如果某一個規則得到滿足要執行多個操作,這些操作的執行順序無關緊要。
四. 判定表設計用例步驟:
1.確定規則的個數,在判定表里的規則是指,條件樁進行排列組合后的集合,對應到判定表右側的所有列,每一列都可以對應一個測試用例。如果有3個條件,每個條件有2個取值,則有 2 x 2 x 2 = 8種規則,判定表中則有8列;
2.列出所有的條件樁和動作樁;
3.填入條件項;
4.填入動作樁和動作項;
5.化簡,合並相似規則;
6.將每條規則轉化為用例。
五.判定表步驟解析:
1.判定表的化簡與合並:
1.1. 化簡工作是以合並相似規則為目標。如果表中有兩條或多條規則具有相同的動作,並且其條件項之間存在極為相似的關系,即可將其合並。下圖中,E1的取值都是 X,且C1 和 C2的取值相同,C3 的取值不同,那么可以得出,只要C1 和C2 取值為 Y/N,無論C3 怎么取值,結果都是 X。
1.2. 下圖中E1 的取值為X,C1和C3 的取值相同,且第一列的C2 取值包含了第二列的 C2的取值范圍,所以第二列是重復的,可以去掉第二列:
六.判定表實例:
1.打印機:
1.1. 在日常工作中,我們經常會使用到打印機。那么如何才能正常使用打印機呢?按照正常流程,我們需要確保電腦有打印機的驅動,打印機正常工作、打印機的紙張充足、打印機墨粉充足才能滿足打印。
1.2. 得到條件樁和動作樁:
1.3. 生成判定表:
1.4. 化簡:
a. 列 5/ 9/ 10/ 11/ 12/ 13/ 15/ 16 中,結果都是E2 = 1,且不管C2/C3/C4 的值是什么,只要C1=0,所以可以合並這幾列;
b. 列 4/ 7/ 8/ 15中,結果都是 E3=1,不管C3和C4 取什么值,只要 C1=1和C2=0,所以合並這幾列;
c. 列 3/6 中,結果都是 E4=1, 不管 C4取什么值,只要 C1=1、C2=1和 C3=0,所以這兩列可以合並。
七.小結:
在實際的工作中,也許我們很難把這種方法運用起來(因為判定表實在難以運用),但是其中的思想值得我們去學習。