測試用例設計方法2-因果圖判定表

判定表法

    判定表是分析和表達多種輸入情況下執行不同動作的工具,判定表方法主要用於處理程序輸入條件的不同組合,但是要求條件的組合必須是bool類型,而且條件和預期的結果都是可以分析出來的。判定表能夠有效地彌補等價類和邊界值方法的不足,使得輸入條件之間的組合和相互影響得到充分的測試。

    使用判定表的一般思路是:

  1. 需求分析,分析出條件和結果之間的各種組合
  2. 將條件和結果分別填入判定表
  3. 講條件和結果進行二進制排列
  4. 針對每一項組合,分析出結果,並去除無效項,是判定表得到簡化。在合併判定表時,如果條件之中只有一個不同,則可以合併。如果判定表的組合不夠多,建議不要進行合併,這樣可以測試的充分一些。
  5. 每一列生成一個測試用例

以閱讀指南的例子來設計一個判定表:從例子中可以看到,不同的條件組合得到不同的結果。

    1 2 3 4 5 6 7 8
條件 疲倦? 0 0 0 0 1 1 1 1
  感興趣? 0 0 1 1 0 0 1 1
  糊塗嗎? 0 1 0 1 0 1 0 1
結果 重讀 1 1            
  繼續     1       1  
  跳到下一章       1       1
  繼續閱讀         1 1    

使用判定表方法可以充分彌補等價類邊界值得不足,但是當輸入條件過多時,使用判定表會產生大量測試用例。而其無效用例不易發現,更不能覆蓋條件之間的先後關係。因此,在一定情況下,使用判定表還需要因果圖的幫忙。


因果圖

    因果圖用於描述系統之間的輸入輸出,輸入輸出之間的約束關係和因果關係。因果圖與判定表往往結合使用,使用因果圖可以得到判定表。

使用因果圖的方法:

  1. 分析輸入輸出並進行標識
  2. 分析輸入和輸入、輸入和輸出之間的關係
  3. 將得到的關係使用因果圖的方法表示出來
  4. 根據因果圖得到判定表
  5. 依據判定表生成測試用例   

這裏分析一個自動售貨機的因果圖分析方法:

條件:有一個處理單價爲5角的自動售貨機,當投入5角或1元硬幣時,選擇橙汁或啤酒,飲料出來;若自動售貨機沒有零錢,則顯示零錢照完,亮紅燈,這時候投入的1元被退出來,飲料不送出來。如果有零錢,則出飲料並找5角錢。

分析:

  1. 選擇橙汁和啤酒是同一類型,可以進行歸類
  2. 選擇5角和1元看似是同一類,但是他們所觸發的操作是不同的,不能歸類
  3. 橙汁和啤酒、5角和1元是相異的關係
  4. 分析不同的組合並得到最終結果

 

得到上面的因果圖後,就可以輕鬆的設計判定表並生成測試用例。

總結:因果圖的使用和分析比較複雜,使用因果圖可能會消耗很多的時間,因此正確的策略是先考慮其他的測試用例設計方法,最後再使用因果如,可以儘量的減少工作的時間並提高效率。

發佈了28 篇原創文章 · 獲贊 3 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章