語句覆蓋和路徑覆蓋的區別
區別:
1、度量對象
語句覆蓋:程序中每一可執行語句
路徑覆蓋:程序中每條路徑
2、覆蓋程度
語句覆蓋:語句覆蓋常常被人指責為“最弱的覆蓋”,它只管覆蓋代碼中的執行語句,卻不考慮各種分支的組合等等。假如只要求達到語句覆蓋,那么換來的確實測試效果不明顯,很難更多地發現代碼中的問題。
路徑覆蓋:在白盒測試法中,覆蓋程度最高的就是路徑覆蓋,因為其覆蓋程序中所有可能的路徑。
擴展資料
邏輯覆蓋是通過對程序邏輯結構的遍歷實現程序的覆蓋。它是一系列測試過程的總稱,這組測試過程逐漸進行越來越完整的通路測試。
根據覆蓋目標的不同和覆蓋源程序語句的詳盡程度,邏輯覆蓋又可分為:語句覆蓋,判定覆蓋,條件覆蓋,條件/判定覆蓋,條件組合覆蓋,路徑覆蓋。
語句覆蓋(StatementCoverage) 又稱行覆蓋(LineCoverage),段覆蓋(SegmentCoverage),基本塊覆蓋(BasicBlockCoverage),這是最常用也是最常見的一種覆蓋方式,就是度量被測代碼中每個可執行語句是否被執行到了。
這里說的是“可執行語句”,因此就不會包括像C++的頭文件聲明,代碼注釋,空行,等等。非常好理解,只統計能夠執行的代碼被執行了多少行。需要注意的是,單獨一行的花括號{} 也常常被統計進去。
參考資料:搜狗百科 - 語句覆蓋