乙個判定中往往包含了若干個條件,例如圖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 ...