一、使用因果圖法設計測試用例
1.1 因果圖法概述:
在一個功能模塊或一個界面中,往往會有多個控件,這些控件一般會有一定的制約關系或者是組合關系,並且輸出依賴於輸入的條件。如 果只是單獨去測每個控件,往往使測試有很多冗余數據,同時又會造成測試的不全面,遺漏 一些數據,這樣,在設計測試用例時,可以使用因果圖法,考慮這些輸入的組合以及輸出對 輸入的依賴關系。
1.2 因果圖的核心:
因果圖的“因”---可以理解為輸入條件嘛
因果圖的“果”---對應當然為輸出結果了^_^
因果圖法要考慮:
所有輸入條件的相互制約關系以及組合關系輸出結果對輸入條件的依賴關系,也就是什么樣的輸入組合會產生怎樣的輸出結果,即“因果關系”。
1.3 因果圖中的基本符號:
1.4因果圖中的約束條件:
1.5 使用因果圖法設計測試用例大家可以參考以下幾個基本步驟:
(1)找出所有的輸入條件
(2)明確所有的輸出結果
(3)明確所有條件之間的制約關系以及組合關系
哪些條件不能組合在一起
哪些條件可以組合在一起
(4)明確所有輸出之間的制約關系以及組合關系
哪些輸出結果不能組合在一起(不能同時輸出)
哪些輸出結果可以組合在一起(可以同時輸出)
(5)找出什么樣的輸入條件組合會產生哪種輸出結果
(6)根據因果圖,寫出判定表
(7)根據判定表設計測試用例
給大家介紹一個案例:
交通一卡通自動充值軟件系統需求
♦ 系統只接收50元或100元紙幣,一次充值只能使用一張紙幣,一次充值金額只能為50元或100元。
♦ 若輸入50元紙幣,並選擇充值50元,完成充值后退卡,提示充值成功;
♦ 若輸入50元紙幣,並選擇充值100元,提示輸入金額不足,並退回50元;
♦ 若輸入100元紙幣,並選擇充值50元,完成充值后退卡,提示充值成功,找零50元;
♦ 若輸入100元紙幣,並選擇充值100元,完成充值后退卡,提示充值成功;
♦ 若輸入紙幣后在規定時間內不選擇充值按鈕,退回輸入的紙幣,並提示錯誤;
♦ 若選擇充值按鈕后不輸入紙幣,提示錯誤
步驟1: 當然先找出所有的輸入條件啦(有入口,也就知道出口了),並對所有條件進行統一編號
輸入:
(1)投幣50元
(2)投幣100元
(3)選擇充值50元
(4)選擇充值100元
步驟2: 明確所有的輸出結果,並進行編號
輸出:
(a)完成充值、退卡
(b)提示充值成功
(c)找零
(d)提示錯誤
步驟3:明確所有條件之間的制約關系以及組合關系(男女同樣也是這樣的准則,俗話說男女搭配,干活不累嘛^_^……But你喜歡他,她又不喜歡你,這能合得來嘛)
哪些條件不能組合在一起(有制約關系)
哪些條件可以組合在一起
步驟4:明確所有輸出之間的制約關系以及組合關系(明確某人與某人之間的關系,你總不能想干嘛就干嘛吧(·ν·)But你想干嘛呢,~\(≧▽≦)/~啦啦啦)
哪些輸出結果不能組合在一起(不能同時輸出)
哪些輸出結果可以組合在一起(可以同時輸出)
步驟5:找出什么樣的輸入條件組合會產生哪種輸出結果(要了解結合了才會有結晶)
步驟6: 根據因果圖,寫出判定表
以此類推,得判定表為:
步驟7:根據判定表設計測試用例
對於因果圖法,給大家又總結了幾點人生大道理:
(1)因果圖法主要考慮控件之間條件的組合關系;
(2)每個控件的條件不宜過多,最好為2個,比如按鈕點擊或者不點擊,單選按鈕選擇還是不選擇,復選按鈕選擇還是不選擇;
(3)如果控件較多,或者每個控件的條件較多,組合量將會很大,不宜使用因果圖法。
二、使用判定表法設計測試用例
畫因果圖只是一種輔助工具,通過分析最終得到判定表,再通過判定表編寫測試用例。但有時畫因果圖非常麻煩,影響測試效率,所以在應用熟練了以后,可以直接寫判定表,進而編寫測試用例,在上一例題中,也大概給大家介紹了一下,在這也不多介紹了,凡是要細細體會,“陽光總在風雨后”……
您的關注與支持是我前進的動力!--Gavin: