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

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

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

    jinfeng_wang

    G-G-S,D-D-U!

    BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
      400 Posts :: 0 Stories :: 296 Comments :: 0 Trackbacks


    在Junit/Nunit測(cè)試出現(xiàn)之后,出現(xiàn)了一個(gè)工具Jcover/Ncover,此工具代碼覆蓋率分析工具,可以分析測(cè)試代碼的測(cè)試范圍的覆蓋率。

    第一次知道此工具的時(shí)候,相當(dāng)?shù)呐d奮,因?yàn)檫@樣可以輕松的把握項(xiàng)目中的測(cè)試代碼情況。在看到自己的每行代碼都被測(cè)試之后,相當(dāng)?shù)男腋0。偌由螹aven等工具可以自動(dòng)連跑,那是足夠保證了單元測(cè)試的覆蓋率了啊。

    正是因?yàn)椴患偎妓鞯男湃危瑢?dǎo)致了問(wèn)題的出現(xiàn):Cover工具的覆蓋,是代碼行的覆蓋,而不是代碼Step的覆蓋。所謂的代碼行,是指代碼中可以被執(zhí)行到的具體某物理行,但是Step則是指每一步邏輯。對(duì)于if (a==b||c==d||e==f)這樣的判斷,應(yīng)該是有三個(gè)step在其中的。正是由于信任了Cover工具,導(dǎo)致代碼覆蓋率不夠,未能測(cè)試到e==f的判斷,導(dǎo)致了一個(gè)bug在最后才被發(fā)現(xiàn)。問(wèn)題發(fā)現(xiàn)的越遲,付出的代價(jià)越大。

    上面已經(jīng)說(shuō)明了全路徑覆蓋的含義(目前Cover工具無(wú)法達(dá)到的功能),那么全路徑覆蓋是不是很有必要且一定要的呢?答案是“YES”.做到全路徑覆蓋的測(cè)試是很痛苦的一件事情,但是,當(dāng)你從全路徑覆蓋中找到重大問(wèn)題時(shí),才會(huì)回頭來(lái)看“如果我做了全副該測(cè)試,這段路徑的錯(cuò)誤邏輯就不會(huì)出現(xiàn)的”。

    就拿上篇"CheckedException VS UncheckedException"中的例子,當(dāng)代碼結(jié)構(gòu)逐漸演化為多出入口調(diào)用C模塊時(shí),“C處不能決定具體的出錯(cuò)信息”。但是在代碼中,如果恰恰就是在"C處誤認(rèn)為可以決定錯(cuò)誤消息"時(shí),對(duì)于這個(gè)“誤操作”,就可以通過(guò)全路徑覆蓋發(fā)現(xiàn)這個(gè)問(wèn)題。if(a==b||c==d||e==f) {throw new MyException("error msg.")},這樣的一行代碼,需要面對(duì)三種問(wèn)題去報(bào)出錯(cuò)信息,其負(fù)擔(dān)太重,情況復(fù)雜(然后有了錯(cuò)誤代碼)。

    如果做了全路徑覆蓋,可以走到(e==f)的判斷,此時(shí)即可發(fā)現(xiàn)錯(cuò)誤消息不正確的問(wèn)題。

    如何才能保證完成全路徑覆蓋呢?
    1)手工debug跟蹤,保證每一步都走到,對(duì)于最后的(e==f),跟蹤的好辛苦阿,創(chuàng)造這樣的條件(走到e==f)就好累的。
    2)利用Ncover的功能,對(duì)于這樣的復(fù)雜邏輯,手工進(jìn)行debug跟蹤。
    3)拆開代碼,為三行(每個(gè)step為單獨(dú)的一行),利用NCover自動(dòng)分析。 哈,老師教過(guò)的",不允許出現(xiàn)過(guò)于復(fù)雜的代碼"這個(gè)原則被發(fā)揮到極致了。

    posted on 2007-01-05 01:20 jinfeng_wang 閱讀(1301) 評(píng)論(2)  編輯  收藏 所屬分類: view

    評(píng)論

    # re: 測(cè)試的全路經(jīng)覆蓋 2007-01-09 17:55 會(huì)飛的魚
    小龍人,你真壞!  回復(fù)  更多評(píng)論
      

    # re: 測(cè)試的全路經(jīng)覆蓋 2007-01-10 19:31 會(huì)游泳的鳥
    是的,不是一般的壞啊.  回復(fù)  更多評(píng)論
      

    主站蜘蛛池模板: 一个人免费观看日本www视频| 中国在线观看免费国语版| 亚洲av永久中文无码精品综合| 亚洲大片在线观看| 亚洲国产精品一区二区三区久久| 一二三四影视在线看片免费| 99久久免费中文字幕精品| 中文字幕高清免费不卡视频| 菠萝菠萝蜜在线免费视频| 亚洲色大18成人网站WWW在线播放 亚洲色大成WWW亚洲女子 | 亚洲毛片免费观看| 久久狠狠躁免费观看2020| fc2成年免费共享视频网站| 国产产在线精品亚洲AAVV| 亚洲天堂2017无码中文| 亚洲精品国产福利在线观看| 亚洲AV成人片色在线观看高潮| 久久亚洲中文字幕精品一区四| 亚洲av日韩片在线观看| 国产成人精品免费视频软件| 欧洲美熟女乱又伦免费视频| 免费无码黄网站在线观看| 一二三四在线观看免费高清中文在线观看 | 国产精品免费久久久久影院| 视频一区二区三区免费观看| 美女又黄又免费的视频| 激情无码亚洲一区二区三区| 香蕉视频亚洲一级| 国产亚洲欧美日韩亚洲中文色 | 国产无遮挡吃胸膜奶免费看| 国产福利免费在线观看| 日韩中文字幕在线免费观看| 国产高清免费观看| 国产一区二区三区免费在线观看| 国产免费AV片无码永久免费| 又爽又高潮的BB视频免费看 | 亚洲欧美在线x视频| 在线亚洲精品视频| 一级做a爰片久久毛片免费看| AAAAA级少妇高潮大片免费看| 西西人体免费视频|