您的位置:軟件測試 > 開源軟件測試 > 開源功能測試工具 >
測試覆蓋率工具--clover.net
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2012/11/29 13:49:54 ] 推薦標(biāo)簽:

    以前上軟件測試課時,看到老師演示的一個統(tǒng)計C語言的測試覆蓋率的工具,當(dāng)時想不知道.NET下是否有同樣的工具。碰巧昨天發(fā)現(xiàn)了clover.net,它能幫你分析那些代碼已經(jīng)經(jīng)過了測試。

    下面是我們上的軟件測試課中關(guān)于覆蓋分析的一些資料:

    覆蓋分析是對需求的實現(xiàn)程度或?qū)Τ绦虻膱?zhí)行程度的分析。

    覆蓋分析包括兩部分,即基于需求的覆蓋分析和基于結(jié)構(gòu)的覆蓋分析。基于需求的覆蓋分析是分析測試用例對軟件需求的覆蓋程度,以證實所選的測試用例滿足指定的需求覆蓋準(zhǔn)則 ;诮Y(jié)構(gòu)的覆蓋分析是分析測試用例 對被測程序的覆蓋程度,以證實所選的測試用例滿足指定的結(jié)構(gòu)覆蓋準(zhǔn) 則 。

    語句覆蓋是起 碼 的 結(jié) 構(gòu)覆蓋要求。 語句覆蓋要求 設(shè)計足夠多的測試用例,使得程序中每條語句至少被執(zhí)行一次。

    一個程序模塊的測試獨立路徑數(shù)等于該模塊的McCabe 圈復(fù)雜度 。

    考慮上圖所示流程圖 ,要使其達(dá)到語句覆蓋,只需選。

    A=2 , B=0 , X=3 。

    但是這個測試還不徹底,如果AND誤寫成了OR ,上面的語句覆蓋測試發(fā)現(xiàn)不了。

    判定覆蓋又稱為分支覆蓋,它要求設(shè)計足夠多的測試用例,使得程序中每個判定至少有一次 為真值 ,有一次為假值 ,即:程序中的每個分支至少執(zhí)行一次。

    判定覆蓋測試用例

    測試用例 A B X 路徑

    1     3     0     1     acd

    2     2     1     3     abe

    對上圖來說 ,設(shè)計兩組測試輸入可以通過路徑ace和abd或路徑acd和abe達(dá)到判定覆蓋。

    判定覆蓋也不完全,例如上面兩個測試用例未能檢查沿著路徑abd 執(zhí)行時 , 值是否保持不 變 。

    條件覆蓋要求設(shè)計足夠多的測試用例,使得判定中的每個條件獲得各種可能的結(jié)果,即每個條件至少有一次為真值 ,有一次為假值 。

    條件覆蓋測試用例

    測試用例 A B X 路徑

    1     1     0     3     abd

    2     2     1     1     abd

    對上圖來說 ,要達(dá)到條件覆蓋,需要足夠多的測試用例,使得在 A 點有 A>1 , A ≤ 1 , B=0 , B ≠ 0 ,在 B 點有 A=2 , A ≠ 2 , X>1 , X ≤ 1 。

    條件覆蓋也不完全,由上例可以看出,條件覆蓋并不能保證判定覆蓋。

    設(shè)計足夠多的測試用例,使得判定中每個條件的所有可能結(jié)果至少出現(xiàn)一次, 每個判定本身所有可能結(jié)果也至少出現(xiàn)一次。

    判定 / 條件覆蓋測試用例

    測試用例 A B X 路徑

    1     2     0     4     ace

    2     1     1     1     abd

    判定 / 條件覆蓋準(zhǔn)則滿足判定覆蓋準(zhǔn)則和條件覆蓋準(zhǔn)則 。判定 / 條件覆蓋準(zhǔn)則的缺點是未考慮條件的組合情況。

    要求設(shè)計足夠多的測試用例,使得每個判定中條件結(jié)果的所有可能組合至少出現(xiàn)一次。

    多重條件覆蓋測試用例

    測試用例 A B X 路徑

    1     2     0     4     ace

    2     2     1     1     abd

    3     1     0     2     abd

    4     1     1     1     abd

    多重條件覆蓋準(zhǔn)則滿足判定覆蓋、條件覆蓋和判定 / 條件覆蓋準(zhǔn)則 。

    更改的判定 / 條件覆蓋要求設(shè)計足夠多的測試用例,使得判定中每個條件的所有可能結(jié)果至少出現(xiàn)一次,每個判定本身的所有可能結(jié)果也至少出現(xiàn)一次。并且每個條件都顯示能單獨影響判定結(jié)果。

    if ( A and B ) ... , 測試用例1和3說明條件A獨立地影響測試結(jié)果, 測試用例1和2說 明條件B獨立地影響測試結(jié)果,所以測試用例 1 , 2 , 3 是必須的。

上一頁12下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd