• <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++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            談?wù)剢卧獪y試

            Posted on 2011-09-15 06:37 RTY 閱讀(360) 評論(0)  編輯 收藏 引用 所屬分類: 轉(zhuǎn)載隨筆質(zhì)量保障

            剛接觸單元測試時,我實在是搞不懂這種測試到底有多大的意義,無非都是一些簡單的ASSERT,但近年積累一些經(jīng)驗教訓之后我才發(fā)現(xiàn),單元測試這玩意兒真的是一種保證程序質(zhì)量的強有力手段。

            為什么這樣說?舉個最典型的例子,無論是開發(fā)新功能還是維護老程序,都不可避免的要反復(fù)修改某些代碼,那該怎么保證修改的代碼不會引入新的問題?如果你說你用人品擔保,那我服了。我們應(yīng)該需要一種可靠的手段來保證修改一個BUG不會引入兩個三個BUG,或者不會讓之前正確的功能出錯,甚至是不會引入之前已經(jīng)修改過的其它BUG。測試無疑是一種很好的手段,在沒掌握其它更好的方法之前,很多人喜歡用人工測試,即編譯 – 運行 – 輸入典型值 – 看程序運行結(jié)果 – 如果出錯 – 修改后再編譯……從長遠來看,這種測試方法的缺點很明顯:1、耗時耗力,每次修改代碼后都需要人工重復(fù)測試所有的典型情況;2、容易出錯、漏測,人腦太復(fù)雜,你很難記得幾個月前的那個BUG到底是什么情況,因此沒法測試,久而久之,N久前的那個BUG可能又神不知鬼不覺的重現(xiàn)了。相比之下,單元測試的優(yōu)點就凸顯出來了,把需要測試的典型情況編寫為測試代碼,然后編譯運行即可完成自動化的測試,當發(fā)現(xiàn)BUG后,把它添加到測試用例,不僅可以提高測試覆蓋率,還能保證以后不會再次引入同樣的BUG,有了足夠的單元測試(覆蓋率),你就可以理直氣壯的說代碼沒問題!當然引入單元測試會在前期花費不少的時間來編寫測試代碼,但相應(yīng)的也會大大減少后期的維護工作,最主要的是能可靠的提高程序的質(zhì)量,所以是值得的,甚至是必要的。(如果你編譯過開源的Google Chromium瀏覽器,你會發(fā)現(xiàn)測試代碼就占了不少,光是編譯測試代碼就得花很長的時間)

            除了上面說的優(yōu)點外,單元測試還有一些其它的好處,比如幫你理清設(shè)計。一些人反對單元測試就是因為說我們的應(yīng)用太復(fù)雜了,沒法做單元測試。其實不一定是應(yīng)用復(fù)雜,而有可能是設(shè)計得有問題,導(dǎo)致了沒有可測試性。比如有些人喜歡在CXXXDialog里編寫所有的功能實現(xiàn),要測試這樣的代碼,必須得創(chuàng)建出Dialog,可能還需要點擊,這顯然沒法做單元測試,但如果把Dialog和業(yè)務(wù)邏輯分開設(shè)計,那至少業(yè)務(wù)邏輯是可測試的(暫不討論UI的測試)。因此要做單元測試,就得設(shè)計好各個接口,保證某個接口只完成單一的功能,沒有過多的耦合依賴。

            前面只是泛泛而談了一些單元測試的皮毛,鼓吹了一些優(yōu)點,有興趣的自己找更詳細的資料看吧。另推薦一個Google的開源C++測試框架googletest

            三级片免费观看久久| 97久久超碰国产精品2021| 久久精品亚洲精品国产欧美| 精品久久久久中文字| 久久久久亚洲AV无码专区网站| 超级碰碰碰碰97久久久久| 久久久久久精品免费免费自慰 | 精品永久久福利一区二区| 国产精品久久久久影视不卡| 久久久精品人妻无码专区不卡| 亚洲日本va中文字幕久久| 色偷偷888欧美精品久久久| 无码8090精品久久一区| 青青青青久久精品国产 | 新狼窝色AV性久久久久久| 51久久夜色精品国产| 久久久久高潮毛片免费全部播放 | 91亚洲国产成人久久精品| 亚洲第一永久AV网站久久精品男人的天堂AV | 老色鬼久久亚洲AV综合| 久久久噜噜噜久久中文字幕色伊伊| 人妻精品久久久久中文字幕69| 区亚洲欧美一级久久精品亚洲精品成人网久久久久| 久久天天躁狠狠躁夜夜2020一| 久久精品国产色蜜蜜麻豆| 国产精品久久久久9999| 色偷偷久久一区二区三区| 一本色道久久综合亚洲精品| 久久精品无码一区二区三区日韩 | 久久99国产精品久久| 无码精品久久久天天影视| 久久久精品国产免大香伊 | 久久久久久免费一区二区三区| 久久丫精品国产亚洲av不卡| 亚洲欧美日韩中文久久| 久久AV高潮AV无码AV| 久久www免费人成看片| 色婷婷综合久久久久中文一区二区| 日韩欧美亚洲综合久久| 无码人妻久久一区二区三区蜜桃| 久久久精品波多野结衣|