- 定義
- 因果圖法就是從程序規格說明書的描述中找出因(輸入條件)和果(輸出或程序狀態的改變),經過因果圖轉換爲斷定表,最後爲斷定表中的每一列設計一個測試用例。
首先咱們來了解一下因果圖的基本符號:測試
2. 應用的範圍設計
更復雜的條件組合,2^n,n比較多的時候3d
3. 步驟blog
1) 根據程序規格說明書描述的語義內容,分析並肯定「因」和「果」;遊戲
2) 將「因」和「果」表示成 「因果圖」;it
3) 在因果圖上使用若干個約束符號來標明約束條件;class
4) 將獲得的因果圖轉換成斷定表;程序
5) 爲斷定表中每一列所表示的狀況設計一個測試用例。im
4. 案例總結
以中國象棋中馬的走法爲例子,具體說明:
一、若是落點在棋盤外,則不移動棋子;
二、若是落點與起點不構成日字型,則不移動棋子;
三、若是落點處有本身方棋子,則不移動棋子;
四、若是在落點方向的鄰近交叉點有棋子(絆馬腿),則不移動棋子;
五、若是不屬於1-4條,且落點處無棋子,則移動棋子;
六、若是不屬於1-4條,且落點處爲對方棋子 (非老將) ,則移動棋子併除去對方棋子;
七、若是不屬於1-4條,且落點處爲對方老將,則移動棋子,並提示打敗對方,遊戲結束。
案例分析--因果圖
1) 根據程序規格說明書描述的語義內容,分析並肯定「因」和「果」;
緣由:
一、 落點在棋盤外;
二、 不構成日字;
三、 落點有自方棋子;
四、 絆馬腿;
五、 落點無棋子;
六、 落點爲對方棋子;
七、 落點爲對方老將。
結果:
2一、 不移動;
2二、移動;
2三、移動己方棋子消除對方棋子;
2四、 移動並打敗對方。
2) 將「因」和「果」表示成 「因果圖」,並標明約束條件;
3) 將獲得的因果圖轉換成斷定表;
11這個結點稱作中間結點,是爲了讓因果圖的結構更加明瞭,簡化因果圖導出的斷定表。分析得出如下兩個結論:
只有一、二、三、4都不成立時,產生11,跟五、六、7結合分別得出2二、2三、24三個結果;
無論五、六、7哪一個成立,只要一、二、三、4有一個成立,就產生結果21;再加上落點有自方棋子的情況。
能夠獲得斷定表以下:
進一步分析,將各類不可能產生的組合狀況,取消掉,圖中用灰色表示。這些都是以前沒有寫的一些約束條件致使的。好比落點在棋盤外,那麼落點就不可能在對方棋子上了。
4) 爲斷定表中每一列所表示的狀況設計一個測試用例。
5. 總結
因果圖常和斷定表結合起來使用,先用因果圖後用斷定表.