語句覆蓋
出自 MBA智库百科(https://wiki.mbalib.com/)
語句覆蓋(Statement Coverage)
目錄 |
語句覆蓋是指設計若幹個測試用例,運行被測程式,使得程式中每一可執行語句至少執行一次。這裡的“若幹個”,意味著使用測試用例越少越好。語句覆蓋在測試中主要發現缺陷或錯誤語句。語句覆蓋常常被人指責為“最弱的覆蓋”,它只管覆蓋代碼中的執行語句,卻不考慮各種分支的組合等等。
語句覆蓋率=被評價到的語句數量/可執行的語句總數*100%。
右圖是一個被測試的程式,它的源程式是:
PROCEDURE M(VAR A,B,X:REAL);
BEGINIF (A>1) AND (B=0) THEN X:=X/A;
IF (A=2) OR (X>1) THEN X:=X+1;
END.
為使程式中每個語句至少執行一次,只需設計一個能通過路徑ace的例子就可以了,例如選擇輸入數據為:
A=2,B=0,X=3
就可達到“語句覆蓋”標準。
從本例可看出,語句覆蓋實際上是很弱的,如果第一個條件語句中的AND錯誤地編寫成OR,上面的測試用例是不能發現這個錯誤的;又如第三個條件語句中X>1誤寫成X>0,這個測試用例也不能暴露它,此外,沿著路徑abd執行時,X的值應該保持不變,如果這一方面有錯誤,上述測試數據也不能發現它們。