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

你真正需要的代碼測試覆蓋率是多少?

開發(fā) 后端
本文是從 How much code coverage do you really need? 這篇文章翻譯而來。

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

他給我們?nèi)粘5腡DD和單元測試制訂了一個***綱領(lǐng)。我們可以從他的微博里清楚的看到這點(diǎn):

“兩件事??芍貜?fù)性和成本。跟自動化測試比起來,手工測試的成本高的可怕?!?/P>

“手工測試不是測試;那是在做實(shí)驗(yàn)。只要有人的因素牽涉其中,那結(jié)果就必然可疑?!?/P>

“你們告訴我的實(shí)際意思就是讓我大開方便之門、不去測試某些程序。哼…”

“代碼覆蓋率100%并不是成績,那是***要求。即使只寫了一行代碼,你也要測試它?!?/P>

他接著把軟件測試跟在其它領(lǐng)域里常見的但被認(rèn)為很關(guān)鍵的活動進(jìn)行了比較:

“戰(zhàn)地外科醫(yī)生也許沒有最夠的時間做嚴(yán)格的消毒,但這帶來的風(fēng)險可能是死亡或高昂的治療代價。”

“會計難道只會把80%的數(shù)據(jù)表做雙份備份嗎?”

“有多少回你們都看到了那些嚴(yán)重的宕機(jī)事故都是因?yàn)橐恍┯薮赖某绦騿T以為那些愚蠢的代碼不許要經(jīng)過測試而導(dǎo)致的?“

他的所有這些觀點(diǎn)都很有價值,但他只向我們展示了問題的一面?,F(xiàn)實(shí)中并不是所有的應(yīng)用都需要如此謹(jǐn)小慎微的測試。并不是所有的應(yīng)用都跟戰(zhàn)地手術(shù)或巨額資金核算那么重要。(更不要說在很多情況下的為”合理避稅“而做的帳務(wù):))。

一個更重要的原因是,100%的測試覆蓋率并不能保證bug的不出現(xiàn)。就連Uncle Bob自己也承認(rèn):

”測試并不能杜絕bug。但測試能保證程序的行為是符合預(yù)期的?!?/P>

這很顯然指的是:同一個程序員在程序里埋下的概念性或邏輯性錯誤,由他自己測是絕對測不出來的。

最終,所有的問題歸結(jié)于ROI(投資收回率)和實(shí)用主義。有些應(yīng)用比其它應(yīng)用需要更多的測試。有些bug需要比其它bug投入更多的精力去修復(fù)。究竟是否需要在自動化測試是投入更多的時間和財力,或多少覆蓋率是合適的還是過分了,這都需要人的主觀判斷。

【編輯推薦】

  1. 程序員如何在"小公司成長"和"大公司學(xué)習(xí)"
  2. 程序員工資禁忌 你可知道?
  3. 還有什么更偉大 患ALS程序員生前用腳寫完***代碼補(bǔ)丁
  4. 一個10年程序員職業(yè)發(fā)展、總結(jié)和困境
  5. 走進(jìn)對日外包程序員的世界
責(zé)任編輯:金賀 來源: 博客園
相關(guān)推薦

2013-08-28 10:44:01

LinuxLinux桌面

2012-03-16 21:08:25

手機(jī)

2017-04-13 10:08:30

軟件開發(fā)開發(fā)

2023-10-27 08:49:00

JCovOpenJDK

2019-09-09 14:50:40

網(wǎng)絡(luò)攻擊信息安全技術(shù)

2019-10-23 14:26:32

云計算解決方案云服務(wù)

2021-09-18 11:09:44

人工智能AI深度學(xué)習(xí)

2022-03-10 06:41:06

SOC網(wǎng)絡(luò)安全

2019-12-10 15:36:36

人工智能機(jī)器人技術(shù)

2012-04-11 11:21:57

ibmdw

2019-09-25 09:20:41

谷歌代碼開發(fā)者

2020-05-21 08:47:11

工程師開發(fā)技術(shù)

2015-11-09 17:56:57

WebPHP函數(shù)覆蓋

2011-11-01 10:10:48

ScriptCover

2016-01-13 10:14:15

WebPHP函數(shù)覆蓋

2022-08-15 13:59:10

XaaS云計算

2022-05-31 09:01:18

SwiftApp 項(xiàng)目

2021-12-25 22:30:27

Chrome DevTJavaScript調(diào)試工具

2022-08-25 06:27:39

vivoJaCoCo代碼覆蓋率

2021-10-15 13:47:19

覆蓋率檢測 istanbul 總代碼的比例
點(diǎn)贊
收藏

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