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

2022-09-13 06:45:10 字數 1683 閱讀 6472

一、語句覆蓋

念:語句覆蓋

是乙個比較弱的測試

標準,它的含義是:選擇足夠的測試用例,使得程式中每個語句至少都能被執行一次

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」。該錯誤語句覆蓋是測試不出問題

二、判定覆蓋

概念:程式中的每乙個分支至少都通過一次

判定覆蓋只關心判定表示式的值(真/假)

if ((a > 1)&&( b == 0))

if ((a == 2) || ( x > 1))

舉例:(1)a=3, b=0, x=1

(2)a=2, b=1, x=3

缺陷:如果異常是必須兩個if裡都為真的情況下才會出現,那麼判定覆蓋就沒有測試到該情況

三、條件覆蓋

定義:判定中的每個條件獲得各種可能的結果

if ((a > 1)&&( b == 0))

if ((a == 2) || ( x > 1))

舉例:(1)a=2, b=1, x=4

(2)a=1, b=0, x=1

缺陷:雖然4個條件的真假都出現了一次,滿足條件覆蓋100%。但其中x=x/a語句並未測試到

四、判定/條件覆蓋

定義:判定中每個條件取到各種可能的值,並使每個判定取到各種可能的結果

if ((a > 1)&&( b == 0))

if ((a == 2) || ( x > 1))

舉例:(1)a=2,b=0,x=4,

(2)a=1,b=1,x=1

缺陷:「判定/條件覆蓋」似乎是比較合理的,但事實並非如此,因為大多數計算機不能用一條指令對多個條件作出判定,

而必須將源程式中對多個條件的判定分解成幾個簡單判定,所以較徹底的測試應使每乙個簡單判定都真正取到各種可能的結果

五、條件組合覆蓋

定義:每個判定中條件的各種可能組合都至少出現一次

if ((a > 1)&&( b == 0))

if ((a == 2) || ( x > 1))

舉例:(1)a>1, b=0

(2)a>1, b!=0

(3)a≤1, b=0

(4)a≤1, b≠0

(5)a=2, x>1

(6)a=2,x≤1

(7)a≠2, x>1

(8)a≠2, x≤1

缺陷:雖然8種組合都出現了,但最基本的第乙個if為真,第二個if為假的情況並未出現

六、路徑覆蓋

定義:程式中每條路徑都需要覆蓋

缺陷:路徑覆蓋也是一種比較強的覆蓋,但未必考慮判定條件結果的組合,並不能代替條件覆蓋和條件組合覆蓋

白盒測試 六種覆蓋方法

定義 白盒測試又稱結構測試,透明盒測試 邏輯驅動測試或基於 的測試。白盒測試是一種測試用例設計方法,白盒指的是程式的內部結構和運作機制是可見的。白盒測試的目的 通過檢查軟體內部的邏輯結構,對軟體中的邏輯路徑進行覆蓋測試 在程式不同地方設定檢查點,檢查程式的狀態,以確定實際執行狀態與預期狀態是否一致。...

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

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

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

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