代碼覆蓋率檢測---> Code Coverage
前幾天我特意搞了一下,把網(wǎng)上所有的主流的C++ Code Coverage工具都大概玩了一遍。。發(fā)現(xiàn)有好多的trick和技巧。。很多特性都搞不出來。。不過。。發(fā)現(xiàn)一個現(xiàn)象:很多很好用的軟件都是收費(fèi)的。。開源的特性沒那么多。。或者很粗糙。。這個是必然情況啊!呵呵。。不過還是挺好用的。。有幾個測試沒有足夠的時間架構(gòu)起來。。連測試這些已有的都浪費(fèi)我好幾天。。最后在我的電腦上搭了一個TestCocoon,杯具了。。我不是很清楚命令行的工作流程。。或者說我對Linxu一塌糊涂。。。。這個學(xué)不好還真不行啊。。Windows的Bash也學(xué)的不好。。唉。。這個慢慢來。。我每天都要進(jìn)步!!!!
Code Coverage 是指被測試執(zhí)行過的代碼分支數(shù)。
對于編譯式語言的代碼覆蓋率計算,首先要在以編譯的字節(jié)碼上進(jìn)行標(biāo)記處理,(TestCoCoon就是這么搞的),然后開始在被標(biāo)記的代碼上進(jìn)行整套測試,來測量那些代碼被執(zhí)行過了。測量的詳細(xì)結(jié)果會先以一種中間形式保留下來,并最終生成報告。這個報告會顯示行和分支的測試覆蓋率。
對于動態(tài)語言,這個過程會有細(xì)微的差別,但最終結(jié)果都是一樣的:得到一個代碼覆蓋率報告。
這個數(shù)據(jù)時非常關(guān)鍵的,因為它會告訴你那些代碼沒有被測試執(zhí)行過。測試是軟件嚴(yán)謹(jǐn)性的保證,沒有被測試過的代碼,往往是錯誤最可能存在的地方。如果你是TDD的忠實擁護(hù)者,那你的所有代碼都會被自動測試到-------當(dāng)然,一些難以考慮到的意外情況除外。
此外兩條:
1 所有的新代碼都要達(dá)到100%的單元測試覆蓋率
2 每當(dāng)修復(fù)一個錯誤的時候,都要為他添加相應(yīng)的測試。