轉帖|行業資訊|編輯:龔雪|2014-10-17 09:21:00.000|閱讀 323 次
概述:C/C++單元測試費錢、費力、誤事。商業測試框架雖然昂貴,但的確是最好的選擇!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
傳統的C/C++單元測試,跟騎自行車很像,也是費錢、費力、誤事。
費錢:工具可以免費,人才不能免費,相反,人才極昂貴,而且越來越最昂貴。一個程序員,如果月薪1萬,企業實際要支付的全部成本為1.5到2萬,折 算成每小時的成本,大概是100元,也就是說,寫1小時的測試代碼,企業要付出100元,這是使用開源框架的成本,是不是比自動化工具昂貴得多?[反駁: 用工資低的實習生或初級程序員來寫測試代碼,成本不就降低了嗎?答:那就別做單元測試了,單元測試是程序員自己做的,要邊開發邊做,越是重要的程序員越要 做(因為他寫的代碼也越重要),事后讓別人做單元測試,那是毫無意義的,除非每個函數都有非常詳細的文檔,可是誰做得到?
費力:程序員為什么不愿“寫”單元測試?請注意,是“寫”單元測試,不是“做”單元測試。程序員不是不知道單元測試的好,而是不愿意寫測試代碼,因 為太煩了。程序員不怕難,最怕煩。創造往往很難,但卻是程序員的最愛,也是程序員的價值所在。測試代碼既然用工具都可以生成,自然沒有創造性,程序員怎么 可能喜歡寫呢?讓程序員做自己很不喜歡做的事,這是很累人的,特別費力。
誤事:誤事表現在三方面:
一、花很多時間來寫測試代碼,延長了項目的周期,嚴重時可能失去市場機會。
二、太費力,程序員可能消極應對,最終做不下去,折騰很長時間,又回到原點。
三、測試不充分,很多測試點,是手工編寫代碼難以達到的,舉個簡單的例子,要讓malloc()在第一個用例返回NULL,其他用例正常申請內存,手工編寫代碼就很難做到。用開源框架,完成代碼覆蓋都幾乎不可能,而使用合適的商業工具,完成MCDC覆蓋一點也不困難。
現慧都控件網代理的PRQA與Parasoft都提供性價比非常高的C/C++單元測試測試框架,敬請關注!
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn