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

延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/