1、定義:因果圖是利用一種圖解法分析輸入的各種組合情況,從而設計測試用例的方法,它適用於檢查程序條件的各種組合情況
適用於輸入條件之間有相互制約、相互依賴的情況
因:輸入條件 果:輸出條件、結果
2、特點:--考慮輸入條件相互制約及組合關系。--考慮輸出條件對輸入條件的依賴關系
3、核心:
(1)適用於輸入條件比較多的情況,測試的所有輸入條件的排列組合。所謂的的原因就是輸入,所謂的結果就是輸出。
(2)因果圖法要注意考慮:
--所有的輸入輸出條件的相互制約關系以及組合關系
--輸出結果對輸入條件的依賴關系。也就是什么樣的輸入組合會產生怎樣的輸出結果,即“因果關系”
4、因果圖中基本符號
(1)恆等
若原因出現,則結果出現;
若原因不出現,則結果也不出現;
--若c1=1,則e1=1;
--若c1=0,則e1=0;
取錢、打印等
(2)非 ~
若原因出現,則結果不出現;
若原因不出現,則結果出現;
--若c1=1,則e1=0;
--若c1=0,則e1=1;
若果存在,則不提示錯誤,若果不存在,則提示錯誤。
(3)或 ∨
若幾個原因中出現一個,則結果出現;
若幾個原因都不出現,則結果不出現;
需求:若買的商品總金額大於等於60元,則有一次抽獎的機會,
小明買的商品總金額為60元,2個原因中出現一個,滿足抽獎的機會,可以抽獎;
小明買的商品總金額為40元,2個原因中都未滿足,不具備抽獎的機會,不可以抽獎;
(4)與 ∧
若幾個原因都出現,則結果出現;
若其中的一個原因不出現,則結果不出現;
若a=true且b=true,則c=true;
若a=true或b=false,則c=false;
男的、帥的、大高個==帥哥
女的、大高個!=帥哥
5、因果圖中的約束條件
(1)互斥:最多有一個可能成立(下拉菜單)
(2)包含:至少有一個成立(下拉菜單)
(3)屏蔽:a成立時,b不成立;a不成立時,b的值不一定
元旦不上班;不是元旦,一定上班;
(4)唯一:三個或多個原因中有且只有一個成立(下拉菜單)
(5)要求:一個出現,另一個一定出現
今天是星期五,明天肯定是星期六
6、因果圖法基本步驟
利用因果圖法導出測試用例的幾個步驟:
(1)找出所有原因,原因即輸入條件或輸入條件的等價類;
(2)找出所有的結果,結果即輸出條件
(3)明確所有輸入條件之間的制約關系以及組合關系
那些條件可以組合在一起,哪些條件不可以組合在一起
(4)明確所有輸出條件之間的制約關系以及組合關系
那些輸出結果可以同時輸出,那些輸出結果不能同時輸出
(5)找出什么樣的輸入條件組合會出現那種輸出結果
(6)把因果圖轉換成判定表/決策表
(7)為判定表或決策表中的每一列表示的情況設計測試用例。
·