[ 黑盒測試方法 ] 因果圖法


  因果圖法是一種利用圖解法分析輸入條件的各種組合情況,寫出判定表,從而設計測試用例的方法。 因果圖法是一種適合於描述對於多種輸入條件組合的測試方法,根據輸入條件的組合、約束關系和輸出條件的因果關系,分析輸入條件的各種組合情況,從而設計測試用例的方法,它適合於檢查程序輸入條件涉及的各種組合情況。因果圖法一般和判定表結合使用,通過映射同時發生相互影響的多個輸入來確定判定條件。因果圖法最終生成的就是判定表,它適合於檢查程序輸入條件的各種組合情況。采用因果圖法能幫助我們按照一定的步驟選擇一組高效的測試用例,同時,還能指出程序規范中存在什么問題,鑒別和制作因果圖。因果圖法着重分析輸入條件的各種組合,每種組合條件就是“因”,它必然有一個輸出的結果,這就是“果”。

因果圖法基本概念

  等價類划分法和邊界值分析方法都是着重考慮輸入條件,但沒有考慮輸入條件的各種組合、輸入條件之間的相互制約關系。這樣雖然各種輸入條件可能出錯的情況已經測試到了,但多個輸入條件組合起來可能出錯的情況卻被忽視了。如果在測試時必須考慮輸入條件的各種組合,則可能的組合數目將是天文數字,因此必須考慮采用一種適合於描述多種條件的組合、相應產生多個動作的形式來進行測試用例的設計,這就需要利用因果圖(邏輯模型)。

1、因果圖介紹

(1)4種符號分別表示了規格說明中4種因果關系。

(2)因果圖中使用了簡單的邏輯符號,以直線聯接左右結點。左結點表示輸入狀態(或稱原因),右結點表示輸出狀態(或稱結果)。 

(3)C1表示原因,通常置於圖的左部;e1表示結果,通常在圖的右部。C1和e1均可取值0或1,0表示某狀態不出現,1表示某狀態出現。 

2、因果圖涉及的概念

(1)關系

  恆等:若c1是1,則e1也是1;否則e1為0。

  非:若c1是1,則e1是0;否則e1是1。

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

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

(2)約束

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

  輸入條件的約束有以下4類:

  E約束(異):a和b中至多有一個可能為1,即a和b不能同時為1。

  I約束(或):a、b和c中至少有一個必須是1,即 a、b 和c不能同時為0。

  O約束(唯一);a和b必須有一個,且僅有1個為1。

  R約束(要求):a是1時,b必須是1,即不可能a是1時b是0。

  輸出條件約束類型

  輸出條件的約束只有M約束(強制):若結果a是1,則結果b強制為0。

因果圖法設計測試用例的步驟

  利用因果圖生成測試用例一般要經過以下幾個步驟:

(1)分析軟件規格說明描述中, 明確哪些是原因(即輸入條件或輸入條件的等價類)和哪些是結果(即輸出條件),並給每個原因和結果賦予一個標識符。

(2)分析軟件規格說明描述中的語義,找出原因與結果之間,,原因與原因之間對應的關系,根據這些關系,畫出因果圖。

(3)由於語法或環境限制, 有些原因與原因之間,原因與結果之間的組合情況不可能出現,為表明這些特殊情況, 在因果圖上用一些記號表明約束或限制條件。

(4)把因果圖轉換為判定表。

(5)把判定表的每一列拿出來作為測試依據,完成測試用例設計。

因果圖法使用實例 

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

(1)根據題意,原因和結果如下:

  原因:1 第一列字符是A、2 第一列字符是B、3 第二列字符是一數字。

  結果:21 修改文件、 22  給出信息L、 23給出信息M。

(2)根據步驟(1)中的原因和結果,畫出因果圖如下:

說明:11為中間節點;考慮到原因1和原因2不可能同時為1,因此在因果圖上施加E約束。

(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、《黑盒測試用例設計方法》


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM