測試覆蓋率工具--clover.net

發表于:2007-04-22來源:作者:點擊數: 標簽:工具覆蓋率測試--clover.net
以前上 軟件測試 課時,看到老師演示的一個統計C語言的測試覆蓋率的工具,當時就想不知道.NET下是否有同樣的工具。碰巧昨天就發現了clover.net,它能幫你分析那些代碼已經經過了測試。 下面是我們上的 軟件測試 課中關于覆蓋分析的一些資料: 覆蓋分析是對 需求

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

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

    覆蓋分析是對需求的實現程度或對程序的執行程度的分析。

    覆蓋分析包括兩部分,即基于需求的覆蓋分析和基于結構的覆蓋分析?;?a href='http://www.anti-gravitydesign.com/ceshi/ruanjianzhiliangbaozheng/xqgl/' target='_blank'>需求的覆蓋分析是分析測試用例對軟件需求的覆蓋程度,以證實所選的測試用例滿足指定的需求覆蓋準則 ?;诮Y構的覆蓋分析是分析測試用例 對被測程序的覆蓋程度,以證實所選的測試用例滿足指定的結構覆蓋準 則 。

    語句覆蓋是最起 碼 的 結 構覆蓋要求。 語句覆蓋要求 設計足夠多的測試用例,使得程序中每條語句至少被執行一次。

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

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

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

    但是這個測試還不徹底,如果AND誤寫成了OR ,上面的語句覆蓋測試就發現不了。

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

    判定覆蓋測試用例

    測試用例 A B X 路徑

    1     3     0     1     acd

    2     2     1     3     abe

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

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

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

    條件覆蓋測試用例

    測試用例 A B X 路徑

    1     1     0     3     abd

    2     2     1     1     abd

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

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

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

    判定 / 條件覆蓋測試用例

    測試用例 A B X 路徑

    1     2     0     4     ace

    2     1     1     1     abd

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

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

    多重條件覆蓋測試用例

    測試用例 A B X 路徑

    1     2     0     4     ace

    2     2     1     1     abd

    3     1     0     2     abd

    4     1     1     1     abd

    多重條件覆蓋準則滿足判定覆蓋、條件覆蓋和判定 / 條件覆蓋準則 。

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

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

    測試用例A B Result

    1     T     T     T

    2     T     F     F

    3     F     T     F

    4     F     F     F

    判斷每個條件是否能單獨影響判定結果的方法是:在固定其它條件值的同時變化要檢查的條件。

    更改的判定 / 條件覆蓋繼承了多重條件覆蓋的優點,同時只是線性地增加了測試用例的數量。

    if ( a>0 && b<0 && c == 1 ) ... ,

    測試 用例 A B C Result

    1     T     T     T     T

    2     F     T     T     F

    3     T     F     T     F

    4     T     T     F     F

    if ( a>0 || b<0 || c == 1 ) ... ,

    測試用例 A B C Result

    1     F     F     F     F

    2     T     F     F     T

    3     F     T     F     T

    4     F     F     T     T

    程序插裝技術(打點)

    模 擬 運 行

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97