逻辑覆盖测试
包含5個測試:
1.語句覆蓋測試
2.判定覆蓋測試
3.條件覆蓋測試
4.判定-條件覆蓋測試
5.路徑覆蓋測試
1.語句覆蓋測試
核心:程序中的每個可執行語句至少執行一次
可執行語句:即程序中可以執行的語句,如下圖,x >= 90 and y >= 90 是可執行語句,a =?a +1也是可執行語句
例子:
如圖,要求,對上程序流程圖實現語句覆蓋測試
解析:在本題中,對于語句覆蓋,取足夠多(盡量最少)的測試用例,將每個可執行語句都執行一次,即取測試用例將12345語句都執行一遍
測試用例:
CASE 1: X?= 85? ? ?Y = 90? ?a = 1
執行了ace路徑,將語句12345都執行了一遍,實現了語句覆蓋
?
2.判定覆蓋測試
核心:程序每條判斷分支至少取運行結果為真一次,為假一次
例子:
如圖,要求,對上程序流程圖實現判定覆蓋測試
解析:在本題中,對于判定覆蓋,即要語句2至少要實現一次真(經過b),至少要實現一次假(經過c),語句4至少要實現一次真(經過d),至少要實現一次假(經過e)
測試用例:
CASE 1: X?= 85? ? ?Y = 90? ?a = 1
CASE 2: X?= 92? ? ?Y = 90? ?a = 5
CASE 1執行了ace路徑,即分別兩個語句的假分支
CASE 2執行了abd路徑,即分別兩個語句的真分支
3.條件覆蓋測試
核心:程序中每個條件的的結果至少執行一次
例子:
如圖,要求,對上程序流程圖實現條件覆蓋測試
解析:在本題中,對于條件覆蓋,即測試用例要覆蓋到變量X,Y,a分別的所有取值情況
X變量取值:1.X = 80
? ? ? ? ? ? ? ? ? ?2.X = 81(小于90且不等于80都可以取)
? ? ? ? ? ? ? ? ? ?3.X = 90
Y變量取值:4.Y = 80
? ? ? ? ? ? ? ? ? ? 5.Y = 90
a變量取值:6.a = 4
? ? ? ? ? ? ? ? ? ? 7.a = 5
測試用例:
CASE 1:X = 80? ?Y = 80? ?a = 4?
CASE 2:X = 81? ?Y = 90? ?a = 5
CASE 3:X = 90? ?Y = 80? ?a = 5
CASE 1滿足146取值條件
CASE 2滿足257取值條件
CASE 3滿足3取值條件,至此所有變量滿足的條件已全部滿足
4.判定-條件覆蓋測試
核心:判定覆蓋測試和條件覆蓋測試都要滿足,即程序中每個條件的的結果至少執行一次,同時,每條判斷分支至少取運行結果為真一次,為假一次
例子:
如圖,要求,對上程序流程圖實現判定-條件覆蓋測試
解析:在本題中,對于判定-條件覆蓋測試,即設計的測試用例要同時滿足判定覆蓋測試和條件覆蓋測試
測試用例:
CASE 1:X = 81? ?Y = 90? ?a = 4?
CASE 2:X = 90? ?Y = 90? ?a = 5
CASE 3:X = 80? ?Y = 80? ?a = 5
CASE 1執行了ace路徑,即分別兩個語句的假分支,同時也滿足256取值條件
CASE 2執行了abd路徑,即分別兩個語句的真分支,同時也滿足37取值條件
CASE 3滿足14取值條件
CASE 1和CASE 2滿足了判定覆蓋,實現了每條判斷分支至少取運行結果為真一次,為假一次,這3個用例又同時實現了條件覆蓋
5.路徑覆蓋測試
核心:設計的測試用例覆蓋程序中所有可能的路徑
例子:
如圖,要求,對上程序流程圖實現路徑覆蓋測試
解析:在本題中,存在的路徑有abd,abe,acd,ace,因此要設計測試用例實現經過這些路徑
測試用例:
CASE 1:X = 90? ?Y = 90? ?a = 5?
CASE 2:X = 90? ?Y = 90? ?a = 4?
CASE 3:X = 80? ?Y = 90? ?a = 5?
CASE 4:X = 81? ?Y = 80? ?a = 4?
?
注:我寫出來的都是自我覺得最簡便的,最容易理解的,有什么不懂或者錯誤,歡迎留言
?
?
總結
- 上一篇: linux主机名和工作组的修改方法
- 下一篇: 第三周铁人战队学习总结