軟件測試基礎(四)用例設計方法之判定表驅動法


判定表也稱為決策表,用於描述程序輸入條件組合與相應的程序處理動作之間的對應關系。等價類划分和邊界值分析都沒有考慮被測程序輸入條件的組合情況,只是孤立地考慮各個輸入條件的測試數據取值問題,對輸入組合情況下產生可能產生的錯誤沒有進行充分地測試。判定表驅動法從多個輸入條件組合的角度來滿足測試的覆蓋率要求,是黑盒測試方法中最嚴格、最有邏輯的測試方法。

1.判定表的構造與化簡

 

 判定表一般由上圖4個部分構成

(1)條件樁:列出了問題所包含的所有條件。一般情況下,條件的排列書必須無關緊要。

(2)動作樁:列出了問題規定可能采取的操作。對這些操作的排列順序一般沒什么要求。

(3)條件項:條件樁中每個條件可以取真值或者假植,條件項給出了這些條件取值的多種組合情況。

(4)動作項:列出了在各種條件取值情況下應當采取的相應動作。

判定表的構造過程一般包括5個步驟:

  ①列出所有的條件樁和動作樁

  ②根據條件樁中的條件個數確定規則的個數

  ③根據條件組合,填入條件取值,形成每一個條件項

  ④填入相應的動作項,得到初始判定表

  ⑤化簡初始判定表,合並相似規則

2.判定表構造實例

  (1)

  假設程序的規格說明要求:“對於各科成績高於85分並且是優秀畢業生的人員,或總是成績大於450的人員,應當優先錄取,其他情況進行正常處理”。從規格說明可知,條件樁由“各科成績均高於85分”“優秀畢業生”和“總成績大於450分”三個條件構成,動作樁由“優先錄取”和“正常處理”兩種動作構成。因為由三個條件,所以有23=8個規則。根據8種條件取值組合情況,可以得到如下表所示判定表

序號 1 2 3 4 5 6 7 8
條件 各科成績高於85分 Y

Y

Y Y N N N N
優秀畢業生 Y Y N N Y Y N N
總成績大於450 Y N Y N Y N Y N
動作 優先錄取      
正常處理          

  化簡之后的判定表如下

序號   1,2 3 4 5 6
條件 各科成績高於85分 Y Y Y N N
優秀畢業生 Y N N - -
總成績大於450 - Y N Y N
動作 優先錄取    
正常處理      

 

  (2)

  一個函數根據A、B、C三條邊的輸入值怕段是否能夠構成三角形,如果能夠構成三角形,進而判斷是等腰三角形還是等邊三角形。A、B、C均為正整數。根據問題先構造判定表

序號

1

2 3 4 5 6 7 8
條件 A+B>C N Y Y Y Y Y Y Y
A+C>B - N Y Y Y Y Y Y
B+C>A - - N Y Y Y Y Y
A=B - - - Y Y N N N
A=C - - - Y N Y N N
B=C - - - - - - Y N
動作 非三角形          
不等邊三角形              
等腰三角形        
等邊三角形              

3.在使用判定表驅動法設計測試用例時,還需要注意默許規則和默許操作的問題。

  如果軟件規格說明如下:

  (1)當條件1和條件2滿足,並且條件3和條件4不滿足,或者當條件1、條件3和條件4滿足時,要執行條件操作1

  (2)當任意一個條件不滿足,而條件4滿足時,執行操作2

  (3)當條件1不滿足,爾條件4滿足時,執行操作3

  根據說明,構造如下判定表。規格說明中共有4個條件,判定表只列出了16個規則中與規格描述直接相關的4個規則。程序在實際執行時,當遇到除上述4條規則意外的其他規則時,需要執行默許操作,不需要時可以忽略這些規則。但是用判定表驅動法設計測試用例時,就必須列出這些默許規則,如下下表

  規則1 規則2 規則3 規則4
條件1 Y Y N N
條件2 Y - N -
條件3 N Y N -
條件4 N Y N Y
操作1    
操作2      
操作3      
  規則5 規則6 規則7 規則8
條件1 - N Y Y
條件2 - Y Y N
條件3 Y N N N
條件4 N N Y -
默許操作

4.判定表法的優缺點:

  優點:①能將規格說明中各種復雜邏輯組合情況一一列舉出來,只管並且易於理解,便於檢查並且能夠便面功能遺漏。

     ②每個測試用例可以覆蓋多種輸入情況,有利於提高測試效率。

     ③考慮了輸入條件間的約束關系,因此避免了無效測試用例,提高了測試有效性。

     ④能夠很方便地給出每個測試用例地預期輸出。

  缺點:①不能表達重復執行地動作,例如循環語句的執行。

     ②當被測特性較多時,判定表的規模會很龐大。

     ③不能有效地確認某些輸入組合是否必須測試,會造成一定的用例冗余

  判定表適合描述具有一下特征的應用程序:

     ①程序中if-then-else分支邏輯較多

     ②程序具有較高的環路復雜度

     ③輸入變量之間存在邏輯關系

     ④設計輸入變量子集的計算

     ⑤輸入和輸出之間存在因果關系

 


免責聲明!

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



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