1. 程式人生 > >條件覆蓋與分支覆蓋有啥區別

條件覆蓋與分支覆蓋有啥區別

 我們首先來看一下這幾些測試覆蓋的定義:
定義一、 語句覆蓋:它要求被測程式的每一可執行語句在測試中儘可能都檢驗過;

定義二、分支覆蓋:要求程式中所有判定的分支儘可能得到檢驗;

定義三、條件覆蓋:當判定式中含有多個條件時,要求每個條件的取值均得到檢驗;

從這些定義我們可以很容易理解到語句覆蓋是把程式中的所有的語句都給覆蓋到;分支覆蓋是把程式中每個分支都給覆蓋到;條件覆蓋是把判斷條件中所有的條件都給覆蓋到。
下面我們通過一個簡單的例子來描述一下
0:
1:if ((a<150)||(b<200)){
2:        for (i=a;i<100;i++)
7:}

分支覆蓋:
1)在0處設定a=120,b 任意
將執行1,2,5
2)在0處設定a=200,b=400
將執行1,5,6,7
這裡所有的分支都走到,也就是說要達到分支覆蓋率100%,要設計2組測試用例
a        b
120        任意
200        400

語句覆蓋:
1)在0處設定a=40,b 任意
將執行1,2,3,4,5
2)在0處設定a=200,b=400
將執行1,5,6,7
這裡所有的語句都走到了,也就是說要達到語句覆蓋率100%,要設計2組測試用例
a        b
40        任意
200        400
而在分支覆蓋中語句3,4沒有走到

條件覆蓋:
由於第一個條件是if ((a<150)||(b<200)) 所以需要設計測試用例
a        b        備註
40        50        全都滿足
160        150        a 不滿足,b滿足
40        250        a滿足,b不滿足
150        250        a,b都不滿足
條件覆蓋只要求把所有的條件都覆蓋就可以了。

http://www.51qa.net/Item/305.aspx