關於測試覆蓋

2021-09-20 19:06:08 字數 1038 閱讀 7679

軟體測試覆蓋包括分支覆蓋,語句覆蓋以及條件覆蓋,這是白盒測試中乙個很基本的測試概念,但是最近和幾位搞了多年測試的朋友談及此事,大家都搞不大清楚。下面我通過乙個例子來深入**一下這個問題:

我們首先來看一下這幾些測試覆蓋的定義:

定義一、語句覆蓋:它要求被測程式的每一可執行語句在測試中盡可能都檢驗過;

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

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

從這些定義我們可以很容易理解到語句覆蓋是把程式中的所有的語句都給覆蓋到;分支覆蓋是把程式中每個分支都給覆蓋到;條件覆蓋是把判斷條件中所有的條件都給覆蓋到。

下面我們通過乙個簡單的例子來描述一下

0:1:if ((a<150)||(b<200))

5:}else

分支覆蓋:

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都不滿足 

條件覆蓋只要求把所有的條件都覆蓋就可以了。

這樣一來我們就把這幾個概念搞得很清楚了。

關於軟體測試覆蓋率的思考

這個覆蓋率其實也是有需求的,這個要看專案的特點,以及開發的特點,來指定多角度的覆蓋率 1.覆蓋率 設計乙個測試用例,能把 的多少個路徑和分支覆蓋到,這個又分模組進行 2.需求覆蓋率 需求又存在不明顯的覆蓋,所以一般要追求100 比如我們測試的需求分析文件中梳理的盡量的去覆蓋,但是也未必能達到100 ...

邏輯覆蓋測試

邏輯覆蓋測試 是通過對程式邏輯結構的遍歷實現程式的覆蓋。從覆蓋源 的不同程度可以分為以下六個標準 語句覆蓋 判定覆蓋 又稱為分支覆蓋 條件覆蓋 判定 條件覆蓋 又稱為分支 條件覆蓋 條件組合覆蓋和路徑覆蓋。先看一下具體例子的源 c語言 int logicexample int x,int y els...

關於變數覆蓋

由於private變數受訪問許可權的限制,它不能被覆蓋。屬性的值取父類還是子類並不取決於我們建立物件的型別,而是取決於我們定義的變數的型別 既 等號前面的型別 friendly protected和public修飾符並不影響屬性的覆蓋。靜態變數和靜態常量屬於類,不屬於物件,因此它們不能被覆蓋。常量可...