1. 程式人生 > >因果圖法設計測試用例

因果圖法設計測試用例

內容 splay 陰影 輸入 .cn 什麽 通過 -- tom

一、使用因果圖的好處

1 考慮了多個輸入之間的相互組合、相互制約關系

2 能夠幫助我們按一定步驟,高效率地選擇測試用例,同時還能為我們指出,程序規格說明描述中存在著什麽問題

二、利用因果圖導出測試用例需要經過的一般步驟

1.分析程序規格說明的描述中,哪些是原因,哪些是結果。

2.分析程序規格說明的描述中語義的內容,並將其表示成連接各個原因與各個結果的因果圖

3.在因果圖上使用若幹個特殊的符號標明特定的約束條件

4.把因果圖轉換成判定表

5.把判定表中每一列表示的情況寫成測試用例
三、因果圖基本符號

技術分享

技術分享

補充概念解釋:

1) 關系

① 恒等:若ci是1,則ei也是1;否則ei為0。

② 非:若ci是1,則ei是0;否則ei是1。

③ 或:若c1或c2或c3是1,則ei是1;否則ei為0。“或”可有任意個輸入。

④ 與:若c1和c2都是1,則ei為1;否則ei為0。“與”也可有任意個輸入。

2) 約束

輸入狀態相互之間還可能存在某些依賴關系,稱為約束。例如, 某些輸入條件本身不可能同時出現。輸出狀態之間也往往存在約束。在因果圖中,用特定的符號標明這些約束。

四、因果圖實例講解(一)

某軟件規格說明中包含這樣的要求:
第一列字符必須是A或B,第二列字符必須是一個數字,在此情況下進行文件的修改。但如果第一列字符不正確,則給出信息L;如果第二列字符不是數字,則給出信息M。

分開原因和結果

原因:1----第一列字符是A;
2----第一列字符是B;
3----第二列字符是一數字。
結果:21----修改文件;
22----給出信息L;
23----給出信息M。

技術分享

3) 根據因果圖建立判定表。

技術分享

表中8種情況的左面兩列情況中,原因①和原因②同時為1,這是不可能出現的,故應排除這兩種情況。表的最下一欄給出了6種情況的測試用例,這是我們所需要的數據。

2. 有一個處理單價為5角錢的飲料的自動售貨機軟件測試用例的設計。其規格說明如下:若投入5角錢或1元錢的硬幣,押下〖橙汁〗或〖啤酒〗的按鈕,則相應的飲料就送出來。若售貨機沒有零錢找,則一個顯示〖零錢找完〗的紅燈亮,這時在投入1元硬幣並押下按鈕後,飲料不送出來而且1元硬幣也退出來;若有零錢找,則顯示〖零錢找完〗的紅燈滅,在送出飲料的同時退還5角硬幣。

1) 分析這一段說明,列出原因和結果

原因:

1.售貨機有零錢找

2.投入1元硬幣

3.投入5角硬幣

4.押下橙汁按鈕

5.押下啤酒按鈕

結果:

21.售貨機〖零錢找完〗燈亮

22.退還1元硬幣

23.退還5角硬幣

24.送出橙汁飲料

25.送出啤酒飲料

2) 畫出因果圖,如圖所示。所有原因結點列在左邊,所有結果結點列在右邊。建立中間結點,表示處理的中間狀態。中間結點:

11. 投入1元硬幣且押下飲料按鈕

12. 押下〖橙汁〗或〖啤酒〗的按鈕

13. 應當找5角零錢並且售貨機有零錢找

14. 錢已付清

技術分享

3) 轉換成判定表:

技術分享

4) 在判定表中,陰影部分表示因違反約束條件的不可能出現的情況,刪去。第16列與第32列因什麽動作也沒做,也刪去。最後可根據剩下的16列作為確定測試用例的依據。

以中國象棋中走馬的測試用例設計為例學習因果圖的使用方法。

一、 分析中國象棋中走馬的實際情況(下面未註明的均指的是對馬的說明)
1、如果落點在棋盤外,則不移動棋子;2、如果落點與起點不構成日字型,則不移動棋子;3、如果落點處有自己方棋子,則不移動棋子;4、如果在落點方向的鄰近交叉點有棋子(絆馬腿),則不移動棋子;5、如果不屬於1-4條,且落點處無棋子,則移動棋子;6、如果不屬於1-4條,且落點處為對方棋子(非老將),則移動棋子並除去對方棋子;7如果不屬於1-4條,且落點處為對方老將,則移動棋子,並提示戰勝對方,遊戲結束。

二、 根據分析明確原因和結果

原因:
1、 落點在棋盤上;
2、 落點與起點構成日字;
3、 落點處為自己方棋子;
4、 落點方向的鄰近交叉點無棋子;
5、 落點處無棋子;
6、 落點處為對方棋子(非老將);
7、 落點處為對方老將。
結果:
21、不移動棋子;
22、移動棋子;
23、移動棋子,並除去對方棋子;
24、移動棋子,並提示戰勝對方,結束遊戲。

添加中間節點11,目的是作為導出結果的進一步原因,簡化因果圖導出的判定表

技術分享

考慮結果不能同時發生,所以對其施加唯一約束O。原因5、6、7不能同時發生,所以對其施加異約束E.

根據因果圖建立判定表:(分為兩表)

技術分享

註:1、以上判定表中由於表格大小限制沒有列出最後所選的測試用例;2、第2表中部分列被合並表示不可能發生的現象;3、通過中間節點將用例的判定表簡化為兩個小表。減少工作量。

轉自:http://www.51testing.com/html/31/165731-210147.html

因果圖法設計測試用例