100%测试覆盖率真的有用吗?
背景
最近看到一篇博客,作者是一名ThoughtWorker,文中提到要在他的項目中貫徹100%單元測試覆蓋率。我在留言中對100%測試覆蓋提出了一些質疑。看到“透明"的回復并且閱讀了他的《Why is 100% test coverage easier to achieve》(需FQ)。有些想法,但是Blogbus的評論有字數限制。因此,貼在自己博客里面,希望和dreamhead和透明繼續討論
@透明
拜讀了你的博文。FQ確實很辛苦。對ThoughtWorks的敬仰又進一層。
但是,對你的觀點依然有一些質疑。你認為沒有測試覆蓋的代碼就是不必要的(MUDA)。例如:getter, setter。我想還有一個例外,是健壯性代碼(包括必要的斷言檢查和容錯處理)。
我認為這里存在兩類問題:1. 保持接口的語義清晰。2.保持模塊健壯。
對于接口的語義清晰,我認為對于產品的可維護性會很有幫助。畢竟你寫的模塊,應該讓使用者更易用。既然我們在產品的外部接口上應該精雕細琢。沒理由在內部接口上如此惜墨如金啊。
對于模塊的健壯性,理論上可以通過添加最夠的單元測試后達到你所說的程度(沒有單元測試覆蓋的代碼都是MUDA)。但是,添加單元測試也是成本,很多時候,我們添加這樣的容錯代碼僅僅是兩行代碼。但是,為了證明這行容錯是必要的,卻要花費更多的時間和精力。這樣真的值得嗎?我們新寫的這些單元測試是不是MUDA呢?
轉載于:https://www.cnblogs.com/Cajon/archive/2011/05/15/2046871.html
總結
以上是生活随笔為你收集整理的100%测试覆盖率真的有用吗?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于内存流与字符串的转换
- 下一篇: mootools系列:打造属于你自己的P