黑盒測試方法之因果圖和判定表——一

catch_dreamer發表於2020-10-25

後續文章:
《黑盒測試方法之因果圖和判定表——二》主要講述因果圖相關理論內容。
《黑盒測試方法之因果圖和判定表——三》主要講述因果圖和判定表聯合使用設計測試用例的例子。

1. 概述

在等價類的設計方法中,雖然詳細考慮到了需求輸入域,但是對於輸入域及輸入域存在關聯時無法覆蓋,因此需要一種能考慮輸入域相互關聯的用例設計方法來考慮業務描述性的測試需求。
而如果考慮輸入條件的各種組合,可能的組合數將非常大,所以要考慮各種條件的組合,相應的產生多個動作的形式來考慮設計測試用例,這種情況下就需要用到因果圖,並且在繪製出因果圖後,也需要將其轉化為判定表,最後再抽取測試用例,在設計時需要為判定表的每一列設計一條測試用例。 如果可以直接繪製出判定表,那麼也就沒有必要繪製因果圖了。

2. 判定表驅動法

1. 判定表的組成

判定表是用來分析和表達多邏輯條件下執行不同操作的情況的工具,其可以把複雜的邏輯關係和多種條件組合的情況表達的較明確。 其主要由以下幾個部分組成:
在這裡插入圖片描述
各個部分的概念如下:

  1. 條件樁:列出了問題的所有條件,也可以說是需求規格說明書定義的被測物件的所有輸入。通常認為列出的條件的次序無關緊要
  2. 條件項:列出針對所列條件的取值,即針對條件樁的所有可能輸入的真假值。
  3. 動作樁:列出問題規定可能採取的操作,即針對條件被測物件可能採取的所有操作。
  4. 動作項:列出在條件項的各種取值情況下應該採取的動作,即被測物件響應的可能結果取值。
  5. 規則:動作項和條件項組合在一起,貫穿條件項和動作項的每一列構成一條測試規則。可以針對每個合法輸入組合的規則用例進行測試,比如上圖中的條件項1、條件項2和動作項就構成了一條規則。

2. 判定表建立的步驟

判定表建立應該依據軟體規格說明,具體的步驟如下:

  1. 確定規則的個數,規則的個數為2n個,其中n為條件的個數,每個條件項有兩個取值
  2. 列出所有的條件樁和動作樁
  3. 依據條件樁和動作樁,填寫條件項和動作項,初始化判定表
  4. 簡化,合併相似規則或相同動作,即簡化判定表,一般當規則個數少於8時,就不用了簡化了,因為簡化畢竟會降低測試的覆蓋率。
  5. 設計用例或者說測試資料

3. 判定表驅動法適用的場景

使用判定表驅動設計測試用例需要滿足以下條件:

  1. 規格說明以判定表的形式給出,或很容易轉為判定表。
  2. 條件的排列順序不影響執行那些操作。
  3. 規則的排列順序不影響執行哪些操作。
  4. 當某一規則的條件已經滿足,並確定要執行的操作後,不必檢驗別的規則。
  5. 如果某一規則要執行多個操作,並且這些操作執行的順序無關緊要。

4. 判定表驅動法的優缺點

  1. 優點:在使用的過程中,充分考慮了輸入間的組合情況,每條規則覆蓋了多個輸入條件,考慮了輸入項之間的約束關係,降低了漏測風險;並且利用判定表可推斷出需求規格本身的邏輯性,反向驗證需求的正確性。
  2. 缺點:當輸入項過多時,規則數以2的n次方劇增,判定表將會非常龐大,採用判定表合併方法合併又會造成邏輯缺失、業務混輪錯誤。

故此,在使用該方法時,需要細緻分析被測物件的需求,儘可能分解為多個需求項,然後再應用判定表設計法。

後續文章連結:《黑盒測試方法之因果圖和判定表——二》主要講述因果圖相關理論內容。
《黑盒測試方法之因果圖和判定表——三》主要講述因果圖和判定表聯合使用設計測試用例的例子。

相關文章