新聞中心
我寫這篇文章的起因是由于看了@unclebobmartin在微博上的一些看起來言之鑿鑿的話語。給那些不認識Uncle Bob的人介紹一下——他是我們軟件產(chǎn)業(yè)里***的一個專家,是《 Clean Code(代碼整潔之道)》這本著作的作者,是敏捷宣言(Agile Manifesto)的簽署人之一。在上世紀(jì)九十年代,他對文獻***面向?qū)ο髮嵺`方法貢獻了很大的力量。所以,當(dāng)他說話時,我們一定要關(guān)注一下。

成都創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、成都網(wǎng)站制作、安澤網(wǎng)絡(luò)推廣、小程序制作、安澤網(wǎng)絡(luò)營銷、安澤企業(yè)策劃、安澤品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供安澤建站搭建服務(wù),24小時服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com
他給我們?nèi)粘5腡DD和單元測試制訂了一個***綱領(lǐng)。我們可以從他的微博里清楚的看到這點:
“兩件事??芍貜?fù)性和成本。跟自動化測試比起來,手工測試的成本高的可怕?!?/p>
“手工測試不是測試;那是在做實驗。只要有人的因素牽涉其中,那結(jié)果就必然可疑。”
“你們告訴我的實際意思就是讓我大開方便之門、不去測試某些程序。哼…”
“代碼覆蓋率100%并不是成績,那是***要求。即使只寫了一行代碼,你也要測試它?!?/p>
他接著把軟件測試跟在其它領(lǐng)域里常見的但被認為很關(guān)鍵的活動進行了比較:
“戰(zhàn)地外科醫(yī)生也許沒有最夠的時間做嚴(yán)格的消毒,但這帶來的風(fēng)險可能是死亡或高昂的治療代價。”
“會計難道只會把80%的數(shù)據(jù)表做雙份備份嗎?”
“有多少回你們都看到了那些嚴(yán)重的宕機事故都是因為一些愚蠢的程序員以為那些愚蠢的代碼不許要經(jīng)過測試而導(dǎo)致的?“
他的所有這些觀點都很有價值,但他只向我們展示了問題的一面?,F(xiàn)實中并不是所有的應(yīng)用都需要如此謹小慎微的測試。并不是所有的應(yīng)用都跟戰(zhàn)地手術(shù)或巨額資金核算那么重要。(更不要說在很多情況下的為”合理避稅“而做的帳務(wù):))。
一個更重要的原因是,100%的測試覆蓋率并不能保證bug的不出現(xiàn)。就連Uncle Bob自己也承認:
”測試并不能杜絕bug。但測試能保證程序的行為是符合預(yù)期的?!?/p>
這很顯然指的是:同一個程序員在程序里埋下的概念性或邏輯性錯誤,由他自己測是絕對測不出來的。
最終,所有的問題歸結(jié)于ROI(投資收回率)和實用主義。有些應(yīng)用比其它應(yīng)用需要更多的測試。有些bug需要比其它bug投入更多的精力去修復(fù)。究竟是否需要在自動化測試是投入更多的時間和財力,或多少覆蓋率是合適的還是過分了,這都需要人的主觀判斷。
分享標(biāo)題:你真正需要的代碼測試覆蓋率是多少?
網(wǎng)頁URL:http://www.5511xx.com/article/ccdohcp.html


咨詢
建站咨詢
