之前介紹的等價類劃分法和邊界值分析法着重考慮的是輸入條件,但是沒有考慮輸入條件之間的組合、輸入條件之間相互制約的關係,這樣就有可能忽略了輸入條件組合在出錯的情況。所以這時,就要用到本文將要介紹的因果圖分析法,它就是一種適合於描述多種條件的組合、 相應產生多個動作的形式來設計測試用例的方法。
思想:因果圖常與判定表結合起來使用,一些程序的功能可用判定表(又稱決策表)表示出來,並根據不同的組合執行相應的操作。
因果關係:
1.恆等關係
恆等:若原因出現,則結果出現;若原因不出現,則結果也不出現。即若c1=1,則e1=1;若c1=0,則e1=0。
2.非關係 ~
非:若原因出現,則結果不出現;若原因不出現,則結果出現。即若c1=1,則e1=0;若c1=0,則e1=1。
3.或關係
或:若幾個原因中任意出現一個,則結果出現;若所有原因都不出現,則結果不出現。即若c1==1 || c2==1 || c3==1,則e1=1;若c1==0 && c2==0 && c3==0,則e1=0。
4.與關係
與:若幾個原因都出現,則結果出現;若原因有任一不出現,則結果不出現。即若c1==1 && c2==1 && c3==1,則e1=1;若c1==0 || c2==0 || c3==0,則e1=0。
5.其他關係
異:a和b中至多有一個爲1,不能同時爲1,但可以同時爲0
或:a、b、c中至少有一個爲1,即不能同時爲0,但可以同時爲1
唯一:a、b之中有且僅有一個爲1
要求:a是1時,b也必須爲1
強制:a是1時,b必須爲0
因果圖法設計用例的步驟:
1)分析軟件規格說明描述中,哪些是原因(即輸入條件或輸入條件的等價類),哪些是結果(即輸出條件),並給每個原因和結果賦予一個標識符;
2)分析軟件規格說明描述中的語義,找出原因與結果之間、原因與原因之間對應的關係,根據這些關係畫出因果圖(對於複雜的,可以加入中間節點作爲橋樑);
3)由於語法或環境限制,有些原因與原因之間、原因與結果之間的組合情況不可能出現,爲表明這些特殊情況,在因果圖上用一些記號表明約束或限制條件;
4)把因果圖轉換爲判定表;
5)把判定表的每一列拿出來作爲依據,設計測試用例。
具體案例分析可見博客因果圖法分析象棋中馬的走法。