<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經(jīng)轉(zhuǎn)移至github,大家請訪問 http://qaseven.github.io/

    走進單元測試一:初認Unit Test

     前言:在公司寫單元測試已經(jīng)有兩個多月了(思想上有過糾結(jié)),說實話有點像趕鴨子上架,在項目收尾的時候才做,很明顯它的作用已經(jīng)是名副其實了,而且還找像我這樣的新手來寫(一開始我都不怎么熟悉業(yè)務流程),所以現(xiàn)在一直努力學好單元測試,寫好它,把自己的事做好!

      我也是在讀程序員修煉之道 - 單元測試這本書之后,再閱讀了園子中的各個文章后的感悟把,寫出來跟大家一起分享!

      電子書下載地址:http://www.kuaipan.cn/file/id_29568238492847284.htm

      測試是貫穿整個整個軟件工程的始末,做好測試對軟件的質(zhì)量會有一個質(zhì)的保證,減少查找BUG的工作量,所以作為一個開發(fā)者需要了解各種測試流程以及核心思想,然而這次的單元測試是我們開發(fā)者必須要具備的技能,這次就讓我們走進單元測試(Unit Test)!

      1.個人對單元測試的初識

      ①堅持的開發(fā)中編寫單元測試,并把它培養(yǎng)成一種習慣!

      ②寫出高效的單元測試,這種能力需要在實踐中慢慢積累!

      ③提高對單元測試的認識高度,把它和編碼工作同等對待!

      2.什么是單元測試?

      通俗講單元測試就是檢查一個函數(shù)執(zhí)行后它的返回結(jié)果或者它對系統(tǒng)數(shù)據(jù)造成的影響(或者其它方面的影響)是否跟你的期望一致,也就是為了證明代碼的行為和我期望的一致!

      3.我們?yōu)槭裁匆褂脝卧獪y試?

      ①最直接的原因是保證我們函數(shù)的正確性,如果這個函數(shù)在沒有保證正確的情況下就被上層代碼調(diào)用,那么隨著項目的深入,調(diào)用層次會越來越深,就很容易產(chǎn)生嚴重的BUG問題,從而增加開發(fā)難度,降低開發(fā)效率!

      ②根本原因是減輕我們開發(fā)人員的工作量,使我們的工作變的輕松(這只是一個相對說法)!

      4.單元測試的內(nèi)涵

      如果把單元測試上升到一定程度后,它可以把我們的代碼變的更加完美和簡潔!

      5.單元測試的本質(zhì)

      請記住一點,不是為工作而編寫單元測試,單元測試是方便我們開發(fā)人員的,可以使我們的工作變的輕松!

      單元測試可以減少我們花在解決不必要的BUG之上(并不是說沒有BUG,而是說減少不必要的BUG),而把大量時間專注于業(yè)務需求上!

      6.函數(shù)的行為和預期的一致嗎?

      如果測試只考慮在正確的環(huán)境下造成正確的影響,那么這樣的單元測試是不及格的!

      做測試就要考慮全面,各個方面都要涉及的到,如:環(huán)境因素(也可以是系統(tǒng)所處在的環(huán)境),各種異常,邊界值等等,所以盡可能的考慮特殊情況,做到做到百密而無一疏(盡自己的最大努力達到)!

      7.需要依賴單元測試嗎?

      答案是肯定的!

      當你很自信的認為你寫的函數(shù)是絕對正確的且沒有測試代碼做為依據(jù)的時候往往會出現(xiàn)意想不到的錯誤,因為你會疏忽了其它的一些情況,所以編寫單元測試來保證我們函數(shù)的準確性是非常有必要的!

      注:后面會說明測試應該測哪些情況!

      8.單元測試干了什么,作用是什么?

      ①最直接的是保證了函數(shù)的正確性(這個大家都知道)!

      ②還有我們可以根據(jù)單元測試來判斷此函數(shù)是用來干什么的,也就說單元測試類似于一個可執(zhí)行文檔,其它開發(fā)人員可以通過看單元測試就會明白你測試的函數(shù)是用來干嘛的!

      9.如何進行單元測試?

      這邊我們使用的VS2008,2010自帶的單元測試框架!

      ①  使用VS自帶的Unit Test,簡單易學!

      ②  測試要全面!

      ③  保證所有測試都能通過,不管舊的還是新的測試代碼,都要通過!

      ④  保證所有測試沒有對系統(tǒng)中任何模塊產(chǎn)生影響(這個很重要)!

      ⑤  及時運行測試代碼,查看運行結(jié)果,保證系統(tǒng)的運行正常!

      10.不要為沒寫測試代碼找借口

      一般情況的看來當你寫的一個函數(shù)已經(jīng)不太需要修改了,你就應該編寫這個函數(shù)的單元測試代碼!

      大多數(shù)情況下開發(fā)人員的大量時間都是修改BUG,如果能盡早的做單元測試將會減輕你的工作量(雖然不可能沒有BUG,但寫Unit Test卻對你是有益無害的),即使在以后的時間里出現(xiàn)BUG,我想你能很快的定位產(chǎn)生BUG的位置!

      最后寫Unit Test千萬不要放在項目末期,如果此時寫單元測試的人還是一個剛進項目新手的話,寫單元測試就是扯淡,這樣的方式是不能體現(xiàn)單元測試的核心觀念的,而我就剛好處于這個狀態(tài),真的很后怕,所以還需要多多加油,努力了解系統(tǒng)流程!

      11.如果真的沒有時間寫單元測試,請思考下面幾個問題?

      ①對于你所編寫的代碼,你花在調(diào)試上面的時間有多少?

      ②你目前認為你的代碼正確無比,但很有可能在系統(tǒng)中卻存在嚴重隱患,你是否花了很多時間來查找這些隱患?

      ③對于一個新的BUG,你花了多長時間來定位這個BUG在源碼中的位置?

      總結(jié):隨著項目的深入,你的函數(shù)會被調(diào)用的越來越深,那么特殊情況就會經(jīng)常發(fā)生,萬一出現(xiàn)什么情況你將會耗費很多的精力來解決它,另一方面,適當?shù)膯卧獪y試代碼會很大程度上減少你的工作量,這是經(jīng)過實踐檢驗的!

      總結(jié):好了基本的單元測試思想就這么多了,希望園友們能指點一二,單元測試系列將持續(xù)更新中!

    相關(guān)文章:

    走進單元測試二:測試需要從哪些方面著手


    posted on 2013-08-09 10:44 順其自然EVO 閱讀(152) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    <2013年8月>
    28293031123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導航

    統(tǒng)計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久亚洲精品高潮综合色a片| 岛国精品一区免费视频在线观看| 又粗又硬又大又爽免费视频播放| 国产精品免费久久久久影院| 老司机亚洲精品影院无码 | 成年女性特黄午夜视频免费看 | 亚洲国产精品自在自线观看| 亚洲精品国产V片在线观看 | 亚洲色欲色欲www在线丝| 最近免费中文字幕高清大全| 亚洲变态另类一区二区三区| 精品亚洲综合久久中文字幕| 夜夜爽免费888视频| 99在线热播精品免费99热| 亚洲精品无码不卡在线播HE| 国产高清不卡免费在线| 亚洲Av高清一区二区三区| 亚洲成A∨人片天堂网无码| 有码人妻在线免费看片| 亚洲精品无码久久毛片| www.免费在线观看| 亚洲天堂免费在线视频| 亚洲最大av资源站无码av网址| 亚洲狠狠婷婷综合久久久久| 夫妻免费无码V看片| 免费国产黄网站在线观看视频| 免费无毒a网站在线观看| 亚洲精品免费在线| 在线A亚洲老鸭窝天堂| 在线观看亚洲免费| jizz中国免费| 亚洲暴爽av人人爽日日碰| 亚洲精品视频在线免费| 亚洲日韩一页精品发布| 免费国产一级特黄久久| 黄色片在线免费观看| 久久久久久AV无码免费网站| 国产日韩精品无码区免费专区国产| 亚洲av日韩av永久无码电影| 久久久久se色偷偷亚洲精品av| 中文字幕亚洲综合久久|