軟件測試用例設計(二)——因果圖和判定表的完美結合

因果圖法和判定表法的結合使用


這個系列沒有(一),等價類和邊界值比較常用,錯誤推斷法也是
關鍵是要明白爲什麼要等價和邊界值,有時候面試會問到。
等價類分爲:
(1)有效等價類
(2)無效等價類
引入集合的觀點,同一等價內的用例對測試結果的暴露程度是一樣的,就是說你測試了等價中的任一一條用例,相當於執行了整個等價類中的用例。

——別在傻傻的用場景法了

因果圖法:

關鍵點是找出事物之間的因果關係
我們將事物之間的這種關係劃分爲三種情形:
(1)輸入條件
(2)中間節點的狀態變化
(3)輸出條件
其中輸入條件是因,輸出條件是果

判定表法:

將表中的1表示滿足條件,0表示不滿足

例題

【基礎例題1】
有一個處理單價爲1元5角錢的盒裝飲料的自動售貨機軟件。若投入1元5角硬幣,按下“可樂”、“雪碧”或“紅茶”按鈕,相應的飲料就送出來。若投入的是兩元硬幣,在送出飲料的同時退還5角硬幣。爲自動售賣機涉及測試用例。

【一般思路】
我們測試經常使用的方法是場景法,但這個題目不適合用場景法,因爲你找不到一個作爲基準的基本流,因爲單單考慮投入硬幣1元5的基本流就不止一個,同時你要考慮還有不同的結果影響。運用場景法顯然已經不是一個正確的思路了。
引入因果圖的方法,就是分清楚測試對象有多少個輸入條件以及輸入條件的組合情況對輸出條件的影響。
因此,因果圖的實質是是一種有因果關係的枚舉法。需要枚舉輸入條件和輸出條件,然後再考慮它們的組合。

【思路點撥1】
輸入1:① 投入1元5角硬幣; ② 投入2元硬幣;
輸入2:①按“可樂”按鈕; ② 按“雪碧”按鈕;③ 按“紅茶”按鈕。

中間狀態1:① 已投幣;
中間狀態2: ② 已按鈕;
輸出1: ① 送出“可樂”飲料;② 送出“雪碧”飲料; ③ 送出“紅茶”飲料。
輸出2: ①不找零;② 退還5角硬幣;③退還1元5;④退還2元
在這裏插入圖片描述

【擴展例題1】
如圖所示是一個自動飲料售賣機,共有橙汁和蘋果汁兩種飲料,價格均爲大杯1元,小杯5角。L1,L2,L3爲指示燈,B1和B2分別是橙汁的大杯和小杯按鈕,B3和B4分別是蘋果汁的大杯和小杯按鈕。售貨機只能使用1元和5角的硬幣,投入硬幣並按下響應按鈕可送出飲料並找零。其它接收類型的硬幣則從出幣口退還。對售貨機一次只能投入一次硬幣,若多投,則後投的硬幣自動退出。如果售貨機無零錢可找,則L1燈亮,若此時進行需要找零的購買則不能送出飲料並退還硬幣。L2和L3分別只是橙汁和蘋果汁是否有貨,如無貨則燈亮。如兩種飲料都無貨則自動退還投入的硬幣。購買橙汁或蘋果汁若金額不足或無貨會退還硬幣。試對此售貨機設計測試用例。

在這裏插入圖片描述在這裏插入圖片描述
標註:黑色部分是無所謂的地方

用例設計步驟

1、找出所有的輸入條件
2、找出所有的輸出條件(結果)
3、明確輸入條件和輸出條件的因果關係
(中間狀態可不要,但要理清所有的輸入條件和輸出條件)
4、畫出判定表,用1表示滿足輸入輸出條件,用0表示不滿足,用-表示不相關,能梳理出來的用例起碼是整潔的
5、刪除冗餘的用例

擴展

你們發現我並沒有梳理完所有的場景,這是因爲題目中沒有提到,測試只是儘可能的發現錯誤,而不是所有錯誤。

總結

總結:
因果圖是一種思維方式,側重理清事情之間的因果關係
判定表是一種表達形式,側重表達,對於用例的梳理比場景法更直觀
面試出現類似題型的話,用判定表給人耳目一新的感覺

因果圖和判定表的結合使用就像是現實主義者和理想主義者結合在一起創造新世界的感覺。

如果你還在勞累的用場景來梳理,那麼是時候轉換一下思維方式了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章