软件工程逻辑覆盖测试
邏輯覆蓋測試包括的方法有:語句覆蓋、路徑覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋。
? 接下來通過對下面子程序進行各個方法的測試用例設計:
[cpp]?view plain?copy
程序對應的流程圖如下:
- 語句覆蓋:所有語句至少執行一次。即執行路徑sabcde即可,測試用例如表所示。
| 測試數據 | 預期結果 | 
| x = 4, y= 2, z = 0 | x = 3 | 
- 路徑覆蓋:所有可能被執行到的路徑至少執行一次。本題需執行路徑有:sabcde、sace、sabce、sacde,測試用例如表所示。
???? ? ???
| 執行路徑 | 測試數據 | 預期結果 | 
| sabcde | x = 4, y= 2, z = 0 | x=3 | 
| sace | x=1,y=1,z=1 | x=1 | 
| sabce | x=1,y=3,z=0 | x=0 | 
| sacde | x=1,y=2,z=1 | x=2 | 
- 判定覆蓋:每個判定結果至少執行一次。本題需滿足a=true且c=false,a=false且c=true兩種情況即可,即執行路徑sabce、sacde,測試用例如表所示。
| 判定 | 執行路徑 | 測試用例 | 預期結果 | 
| a=t,c=f | sabce | x=1,y=3,z=0 | x=0 | 
| a=f,c=t | sacde | x=1,y=2,z=1 | x=2 | 
- 條件覆蓋:每個判定中的每個條件可能出現的結果至少出現一次。本題判定a可能出現的結果:y>1,y<=1,z=0,z≠0,判定c可能出現的結果:y=2,y≠2,x>1,x<=1,可執行的路徑為sabcde,sace,測試用例如表所示。
| 覆蓋的條件 | 執行路徑 | 測試數據 | 預期結果 | 
| y>1,y=2,z=0,x>1 | sabcde | x=2,y=2,z=0 | x=1 | 
| y<=1,y≠2,z≠0,x<=1 | sace | x=1,y=1,z=1 | x=2 | 
- 判定/條件覆蓋:每個判定結果至少出現一次,每個判定中的條件可能出現的結果至少出現一次。可執行路徑為sabcde,sace,測試用例如表所示。
| 判定 | 覆蓋的條件 | 執行路徑 | 測試數據 | 預期結果 | 
| a=t,c=t | y>1,y=2,z=0,x>1 | sabcde | x=2,y=2,z=0 | x=1 | 
| a=f,c=f | y<=1,y≠2,z≠0,x<=1 | sace | x=1,y=1,z=1 | x=2 | 
- 條件組合覆蓋:每個判定的每個條件的可能出現的結果的所有可能的組合至少出現一次。本題中判定a可能出現的條件組合為:(1)?y>1,z=0; (2) y<=1,z=0; (3)y>1,z≠0; (4) y<=1,z≠0 ; 判定才可能出現的條件組合為:(1) y=2,x >1; (2)y≠2,x >1; (3) y=2,x<=1; (4)y≠ 2,x<=1。測試用例如表所示。
| 條件組合 | 執行路徑 | 測試用例 | 預期結果 | 
| y>1,z=0,y=2,x>1 | sabcde | x=4,y=2,z=0 | x=3 | 
| y<=1,z=0,y≠2,x<=1 | sace | x=1,y=1,z=1 | x=1 | 
| y>1,z≠0,y=2,x<=1 | sace | x=1,y=2,z=1 | x=1 | 
| y<=1,z≠0,y≠2,x>1 | sacde | x=2,y=1,z=1 | x=3 | 
??總結:測試代碼時所執行的路徑占總路徑數越高,則覆蓋程度越大。所以覆蓋率由高——低:路徑覆蓋-條件組合覆蓋-判定/條件覆蓋-條件覆蓋-判定覆蓋-語句覆蓋。
總結
以上是生活随笔為你收集整理的软件工程逻辑覆盖测试的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: python手记(四):pillow(四
- 下一篇: 第11课:JSP指令 Include指令
