2、判定覆蓋(DecisionCoverage):它度量是否每個BOOL型的表達式取值true和false在控制結構中都被測試到了。
if(a) //當a取true和false { ... } else { ... } |
3、條件覆蓋(ConDItionCoverage):它獨立的度量每一個子表達式,報告每一個子表達式的結果的true或false。這個度量和判定覆蓋(decisioncoverage)相似,但是對控制流更敏感。不過,完全的條件覆蓋并不能保證完全的判定覆蓋。
if(a>b&&c>d) { ... } |
例子中a>b和c>d為2個不同的條件表達式,與if()判斷獨立。
4、路徑覆蓋(PathCoverage):它度量了是否函數的每一個可能的分支都被執行了。路徑覆蓋的一個好處是:需要徹底的測試。但有兩個缺點:一是,路徑是以分支的指數級別增加的,例如:一個函數包含10個IF語句,就有1024個路徑要測試。如果加入一個IF語句,路徑數就達到2048;二是,許多路徑不可能與執行的數據無關。
如下圖具有的路徑有:abd、abe、acd、ace

5、循環覆蓋(LOOPCoverage):這個度量報告你是否執行了每個循環體零次、只有一次還是多余一次(連續地)。對于do-while循環,循環覆蓋報告你是否執行了每個循環體只有一次還是多余一次
文章來源于領測軟件測試網 http://www.kjueaiud.com/