自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

為什么開源C/C++單元測試框架極昂貴?

開發(fā) 測試 開發(fā)工具
三月份,準(zhǔn)備搞一個(gè)C/C++單元測試在線培訓(xùn),草擬了一份課程提綱,發(fā)給一位老朋友(馬工)征求意見,馬工在一家研究院工作,領(lǐng)導(dǎo)一個(gè)近百人的開發(fā)團(tuán)隊(duì),單元測試推廣和實(shí)施都很有經(jīng)驗(yàn),給我的意見只有幾句話。

三月份,準(zhǔn)備搞一個(gè)C/C++單元測試在線培訓(xùn),草擬了一份課程提綱,發(fā)給一位老朋友(馬工)征求意見,馬工在一家研究院工作,領(lǐng)導(dǎo)一個(gè)近百人的開發(fā)團(tuán)隊(duì),單元測試推廣和實(shí)施都很有經(jīng)驗(yàn),給我的意見只有幾句話:

刪除開源框架部分,這個(gè)太昂貴,用的企業(yè)會(huì)越來越少,講這個(gè)浪費(fèi)聽眾的時(shí)間。我猜你花一大段時(shí)間來講開源框架,目的僅僅是為了減少宣傳商業(yè)工具的嫌疑,課程只要考慮聽眾的真正利益(學(xué)到有用的東西)就行,何必考慮別的。”

課程內(nèi)容刪除開源框架部分,這個(gè)我馬上接受,因?yàn)楫?dāng)初加上這部分內(nèi)容,原因正是馬工所猜的。不過,用“太昂貴”來形容免費(fèi)的開源框架,有些匪夷所思,我知道用開源框架做C/C++單元測試很難且成本很高,但從沒想到“昂貴”這個(gè)詞。在電話里和馬工聊了半天,討論了C/C++單元測試框架“太昂貴”的理由,整理如下。

免費(fèi)的反而“昂貴”,這很平常,比如企業(yè)要派一個(gè)人從成都到北京出差,可以坐飛機(jī)、坐火車、租汽車,也可以借一輛自行車騎過去,前幾種都是要付錢的,騎自行車免費(fèi),毫無疑問,騎自行車是最昂貴的,“昂貴”表現(xiàn)在:費(fèi)錢(不算別的,工資就很嚇人)、費(fèi)力(這種累死人的事誰愿意干?)、誤事(這個(gè)不用解釋吧?)。[點(diǎn)評(píng):我個(gè)比喻我也用過,不過沒那么透徹,真是有實(shí)踐者所見略同]

使用C/C++單元測試框架做單元測試,其結(jié)果跟騎自行車很像,也是費(fèi)錢、費(fèi)力、誤事。

費(fèi)錢:工具可以免費(fèi),人才不能免費(fèi),相反,人才極昂貴,而且越來越最昂貴。一個(gè)程序員,如果月薪1萬,企業(yè)實(shí)際要支付的全部成本為1.5到2萬,折算成每小時(shí)的成本,大概是100元,也就是說,寫1小時(shí)的測試代碼,企業(yè)要付出100元,這是使用開源框架的成本,是不是比自動(dòng)化工具昂貴得多?[反駁:用工資低的實(shí)習(xí)生或初級(jí)程序員來寫測試代碼,成本不就降低了嗎?答:那就別做單元測試了,單元測試是程序員自己做的,要邊開發(fā)邊做,越是重要的程序員越要做(因?yàn)樗麑懙拇a也越重要),事后讓別人做單元測試,那是毫無意義的,除非每個(gè)函數(shù)都有非常詳細(xì)的文檔,可是誰做得到?]

費(fèi)力:程序員為什么不愿“寫”單元測試?請(qǐng)注意,是“寫”單元測試,不是“做”單元測試。程序員不是不知道單元測試的好,而是不愿意寫測試代碼,因?yàn)樘珶┝?。程序員不怕難,最怕煩。創(chuàng)造往往很難,但卻是程序員的***,也是程序員的價(jià)值所在。測試代碼既然用工具都可以生成,自然沒有創(chuàng)造性,程序員怎么可能喜歡寫呢?讓程序員做自己很不喜歡做的事,這是很累人的,特別費(fèi)力。

誤事:誤事表現(xiàn)在三方面:

一、花很多時(shí)間來寫測試代碼,延長了項(xiàng)目的周期,嚴(yán)重時(shí)可能失去市場機(jī)會(huì)。

二、太費(fèi)力,程序員可能消極應(yīng)對(duì),最終做不下去,折騰很長時(shí)間,又回到原點(diǎn)。

三、測試不充分,很多測試點(diǎn),是手工編寫代碼難以達(dá)到的,舉個(gè)簡單的例子,要讓malloc()在***個(gè)用例返回NULL,其他用例正常申請(qǐng)內(nèi)存,手工編寫代碼就很難做到。用開源框架,完成代碼覆蓋都幾乎不可能,而使用合適的商業(yè)工具,完成MCDC覆蓋一點(diǎn)也不困難。

原文鏈接:http://blog.csdn.net/easytdd/article/details/24288727

責(zé)任編輯:林師授 來源: EasyTDD的博客
相關(guān)推薦

2010-01-15 14:10:42

C++單元測試

2022-08-05 09:30:57

單元測試C++

2010-01-13 09:38:17

C++單元測試

2012-06-18 10:03:46

Visual Stud

2011-08-22 13:57:55

gtest

2017-01-14 23:42:49

單元測試框架軟件測試

2022-02-21 07:54:28

單元測試編程開發(fā)

2024-04-26 11:14:34

C#單元測試框架

2010-01-12 16:12:47

C++單元測試

2009-09-01 16:35:16

C#單元測試

2015-04-21 13:37:44

Google開源CC++版

2022-05-12 09:37:03

測試JUnit開發(fā)

2009-09-01 16:10:28

C#單元測試

2009-09-01 16:45:00

C#單元測試工具

2022-06-30 09:20:32

單元測試測試

2024-10-16 16:09:32

2009-08-19 09:00:48

單元測試框架自動(dòng)化測試

2022-11-28 09:58:58

C++開發(fā)

2021-08-04 10:51:04

數(shù)據(jù)庫單元測試SQL

2021-12-03 17:22:09

CC++編程語言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)