條件覆蓋 Condition coverage

2021-06-21 16:29:16 字數 820 閱讀 3466

乙個判定中往往包含了若干個條件,例如圖6.4

的程式中,判定(a>

1) and (b=0)

包含了兩個條件:a>

1以及b=0,所以可引進乙個更強的覆蓋標準——「條件覆蓋」「條件覆蓋」的含義是:執行足夠的測試用例,使得判定中的每個條件獲得各種可能的結果。

圖6.4

的程式有四個條件:a>

1、b=0、

a=2、x>

1 為了達到「條件覆蓋」標準,需要執行足夠的測試用例使得在

a點有:a>

1、a≤

1、b=0、b≠

0 等各種結果出現,以及在

b點有:

a=2、a≠

2、x>

1、x≤

1 等各種結果出現。

現在只需設計以下兩個測試用例就可滿足這一標準: ①

a=2,

b=0,

x=4(

沿路徑ace執行)

;②a=1,

b=1,

x=1(

沿路徑abd執行)

「條件覆蓋」通常比「判定覆蓋」強,因為它使乙個判定中的每乙個條件都取到了兩個不同的結果,而判定覆蓋則不保證這一點。但如對語句if(a and b)then s設計測試用例使其滿足"條件覆蓋",即使a為真並使b為假,以及使a為假而且b為真,但是它們都未能使語句s得以執行。

條件覆蓋,路徑覆蓋,語句覆蓋,分支覆蓋

語句覆蓋是指選擇足夠的測試用例,使得執行這些測試用例時,被測程式的每乙個語句至少執行一次,其覆蓋標準無法發現判定中邏輯運算的錯誤 判定覆蓋是指選擇足夠的測試用例,使得執行這些測試用例時,每個判定的所有可能結果至少出現一次,但若程式中的判定是有幾個條件聯合構成時,它未必能發現每個條件的錯誤 條件覆蓋是...

條件覆蓋,路徑覆蓋,語句覆蓋,分支覆蓋

語句覆蓋是指選擇足夠的測試用例,使得執行這些測試用例時,被測程式的每乙個語句至少執行一次,其覆蓋標準無法發現判定中邏輯運算的錯 誤 判定覆蓋是指選擇足夠的測試用例,使得執行這些測試用例時,每個判定的所有可能結果至少出現一次,但若程式中的判定是有幾個條件聯合構成時,它未必能 發現每個條件的錯誤 條件覆...

條件組合覆蓋

針對上述問題又提出了另一種標準 條件組合覆蓋 它的含義是 執行足夠的例子,使得每個判定中條件的各種可能組合都至少出現一次。顯然,滿足 條件組合覆蓋 的測試用例是一定滿足 判定覆蓋 條件覆蓋 和 判定 條件覆蓋 的。再看圖6.4的程式,我們需要選擇適當的例子,使得下面 8種條件組合都能夠出現 1 a ...