• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 319, comments - 22, trackbacks - 0, articles - 11
              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

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

            本文是從 How much code coverage do you really need? 這篇文章翻譯而來(lái)。

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

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

            “兩件事。可重復(fù)性和成本。跟自動(dòng)化測(cè)試比起來(lái),手工測(cè)試的成本高的可怕。”

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

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

            “代碼覆蓋率100%并不是成績(jī),那是最低要求。即使只寫(xiě)了一行代碼,你也要測(cè)試它。”

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

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

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

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

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

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

            ”測(cè)試并不能杜絕bug。但測(cè)試能保證程序的行為是符合預(yù)期的。“

            這很顯然指的是:同一個(gè)程序員在程序里埋下的概念性或邏輯性錯(cuò)誤,由他自己測(cè)是絕對(duì)測(cè)不出來(lái)的。

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

            欧美黑人又粗又大久久久| 久久国产综合精品五月天| 国产精品亚洲综合专区片高清久久久 | 伊人久久大香线蕉av一区| 久久精品国产精品亚洲艾草网美妙 | 久久久精品免费国产四虎| 国产V亚洲V天堂无码久久久| 国产精品久久久久9999| 国产精品天天影视久久综合网| 久久99热只有频精品8| 久久成人影院精品777| 欧美综合天天夜夜久久| 久久精品国产精品亚洲艾草网美妙| 精品乱码久久久久久夜夜嗨| 国产精品99久久精品爆乳| 九九久久精品无码专区| 一级a性色生活片久久无少妇一级婬片免费放 | 996久久国产精品线观看| 久久精品国产免费一区| 久久精品亚洲男人的天堂| 天堂无码久久综合东京热| 精品国产99久久久久久麻豆| 久久国产精品77777| 伊人久久大香线焦综合四虎| 久久国产福利免费| 色综合久久无码中文字幕| 99久久婷婷国产综合精品草原| 亚洲天堂久久久| 狠狠色噜噜狠狠狠狠狠色综合久久| 国产精品99久久久久久董美香| 久久人人爽人人爽人人片AV东京热 | 情人伊人久久综合亚洲| 少妇久久久久久被弄到高潮| 麻豆一区二区99久久久久| 久久精品国产亚洲7777| 亚洲国产精品无码久久久秋霞2| 93精91精品国产综合久久香蕉 | 久久精品无码专区免费| 精品久久久久久无码专区不卡| 久久久噜噜噜久久| 2021精品国产综合久久|