白盒測試 六種覆蓋方法

2021-10-09 09:02:14 字數 1903 閱讀 8455

定義:

白盒測試又稱結構測試,透明盒測試、邏輯驅動測試或基於**的測試。白盒測試是一種測試用例設計方法,白盒指的是程式的內部結構和運作機制是可見的。

白盒測試的目的:

通過檢查軟體內部的邏輯結構,對軟體中的邏輯路徑進行覆蓋測試;在程式不同地方設定檢查點,檢查程式的狀態,以確定實際執行狀態與預期狀態是否一致。

白盒測試的方法:大致分為靜態方法和動態方法兩大類。

a. 靜態分析:

是一種不執行程式而進行測試的技術。靜態分析的主要目的是檢查軟體的表示和描述是否一致,沒有衝突或者沒有歧義。

b. 動態分析:

當軟體系統在模擬或真實的環境中執行前、過程中和執行後,對其行為分析。它顯示了乙個系統在檢查狀態下是否正確。在動態分析技術中,最重要的技術是路徑和分支測試。下面要介紹的六種覆蓋測試方法屬於動態分析方法。

符號說明:

^ 代表邏輯運算子 && 或者 ||

t 代表 true f 代表 false

a / b 代表條件表示式

(1)語句覆蓋

使程式中的每個可執行語句都能執行一次的測試用例

測試用例條件: a ^ b = t

(2)判定覆蓋(分支覆蓋)

對於判斷語句,在設計用例的時候,要設計判斷語句結果為true和false的兩種情況

測試用例條件:

(3)條件覆蓋

設計用例時針對判斷語句裡面每個條件表示式true 和 false各取值一次,不考判斷語句的計算結果

測試用例條件:

(4)判定條件覆蓋(分支條件覆蓋)

設計測試用例時,使得判斷語句中每個條件表示式的所有可能結果至少出現一次,每個判斷語句本身所有可能結果也至少出現一次。

測試用例條件:

(5)條件組合覆蓋

設計測試用例時,使得每個判斷語句中條件結果的所有可能組合至少出現一次

測試用例條件:

(6)路徑覆蓋

設計測試用例時,覆蓋程式中所有可能的執行路徑

優點:這種覆蓋方法可以對程式進行徹底的測試用例覆蓋,比前面講的五種方法覆蓋度都要高。

缺點:於路徑覆蓋需要對所有可能的路徑進行測試(包括迴圈、條件組合、分支選擇等),那麼需要設計大量、複雜的測試用例,使得工作量呈指數級增長。路徑覆蓋雖然是一種比較強的覆蓋,但未必考慮判斷語句中條件表示式結果的組合,並不能代替條件覆蓋和條件組合覆蓋。

白盒測試的六種方法 白盒測試 覆蓋方法

一般的白盒測試,用例設計的評估標準就是 覆蓋度。覆蓋度不能光靠條件湊,unit test的 也是有具體的分析方法的,不要有冗餘。常見的覆蓋有六種 語句覆蓋,判定覆蓋,條件覆蓋,判定 條件覆蓋,組合覆蓋和路徑覆蓋 最弱覆蓋 保證每個語句至少被執行一次,不考慮條件和分支 func foo a b int...

白盒測試中的六種覆蓋方法

1 語句覆蓋 語句覆蓋是最起碼的結構覆蓋要求,語句覆蓋要求設計足夠多的測試用例,使得程式中每條語句至少被 執行一次。2 判定覆蓋 判定覆蓋又稱為分支覆蓋,它要求設計足夠多的測試用例,使得程式中每個判定至少有一次為真值,有一次為假值,即 程式中的每個分支至少執行一次。每個判斷的取真 取假至少執行一次。...

白盒測試中的六種覆蓋方法

一 語句覆蓋 概念 語句覆蓋 是乙個比較弱的測試 標準,它的含義是 選擇足夠的測試用例,使得程式中每個語句至少都能被執行一次 if a 1 b 0 if a 2 x 1 測試用例 a 2,b 0,x 3 缺陷 如果 中第乙個if條件中,a 1 b 0 錯寫成 a 1 b 0 該錯誤語句覆蓋是測試不出...