1. 語句覆蓋(StatementCoverage)
又稱行覆蓋(LineCoverage),段覆蓋(SegmentCoverage),基本塊覆蓋(BasicBlockCoverage),這是最常用也是最常見的一種覆蓋方式,就是度量被測程式碼中每個可執行語句是否被執行到了。這裡說的是“可執行語句”,因此就不會包括像C++的標頭檔案宣告,程式碼註釋,空行,等等。非常好理解,只統計能夠執行的程式碼被執行了多少行。需要注意的是,單獨一行的花括號{} 也常常被統計進去。語句覆蓋常常被人指責為“最弱的覆蓋”,它只管覆蓋程式碼中的執行語句,卻不考慮各種分支的組合等等。假如你的上司只要求你達到語句覆蓋,那麼你可以省下很多功夫,但是,換來的確實測試效果的不明顯,很難更多地發現程式碼中的問題。
2. 判定覆蓋(DecisionCoverage)
又稱分支覆蓋(BranchCoverage),所有邊界覆蓋(All-EdgesCoverage),基本路徑覆蓋(BasicPathCoverage),判定路徑覆蓋(Decision-Decision-Path)。它度量程式中每一個判定的分支是否都被測試到了。這句話是需要進一步理解的,應該非常容易和下面說到的條件覆蓋混淆。因此我們直接介紹第三種覆蓋方式,然後和判定覆蓋一起來對比,就明白兩者是怎麼回事了。
3. 條件覆蓋(ConditionCoverage)
它度量判定中的每個子表示式結果true和false是否被測試到了。
4. 路徑覆蓋(PathCoverage)
又稱斷言覆蓋(PredicateCoverage)。它度量了是否函式的每一個分支都被執行了。 這句話也非常好理解,就是所有可能的分支都執行一遍,有多個分支巢狀時,需要對多個分支進行排列組合,可想而知,測試路徑隨著分支的數量指數級別增加。
這是四種常見的程式碼測試方法,暫時vba沒有自動測試工具可以實現自動測試程式碼覆蓋率
1. 語句覆蓋(StatementCoverage)
又稱行覆蓋(LineCoverage),段覆蓋(SegmentCoverage),基本塊覆蓋(BasicBlockCoverage),這是最常用也是最常見的一種覆蓋方式,就是度量被測程式碼中每個可執行語句是否被執行到了。這裡說的是“可執行語句”,因此就不會包括像C++的標頭檔案宣告,程式碼註釋,空行,等等。非常好理解,只統計能夠執行的程式碼被執行了多少行。需要注意的是,單獨一行的花括號{} 也常常被統計進去。語句覆蓋常常被人指責為“最弱的覆蓋”,它只管覆蓋程式碼中的執行語句,卻不考慮各種分支的組合等等。假如你的上司只要求你達到語句覆蓋,那麼你可以省下很多功夫,但是,換來的確實測試效果的不明顯,很難更多地發現程式碼中的問題。
2. 判定覆蓋(DecisionCoverage)
又稱分支覆蓋(BranchCoverage),所有邊界覆蓋(All-EdgesCoverage),基本路徑覆蓋(BasicPathCoverage),判定路徑覆蓋(Decision-Decision-Path)。它度量程式中每一個判定的分支是否都被測試到了。這句話是需要進一步理解的,應該非常容易和下面說到的條件覆蓋混淆。因此我們直接介紹第三種覆蓋方式,然後和判定覆蓋一起來對比,就明白兩者是怎麼回事了。
3. 條件覆蓋(ConditionCoverage)
它度量判定中的每個子表示式結果true和false是否被測試到了。
4. 路徑覆蓋(PathCoverage)
又稱斷言覆蓋(PredicateCoverage)。它度量了是否函式的每一個分支都被執行了。 這句話也非常好理解,就是所有可能的分支都執行一遍,有多個分支巢狀時,需要對多個分支進行排列組合,可想而知,測試路徑隨著分支的數量指數級別增加。
這是四種常見的程式碼測試方法,暫時vba沒有自動測試工具可以實現自動測試程式碼覆蓋率