邏輯覆蓋測試是通過對程序邏輯結構的遍歷實現程序的覆蓋。從覆蓋源代碼的不同程度可以分為以下六個標準:語句覆蓋、判定覆蓋(又稱為分支覆蓋)、條件覆蓋、判定-條件覆蓋(又稱為分支-條件覆蓋)、條件組合覆蓋和路徑覆蓋。
先看一下具體例子的源代碼(C語言):
1. /* 2. * 白盒測試邏輯覆蓋測試范例 3. * 作者:胡添發(hutianfa@126.com) 4. */ 5. int logicExample(int x, int y) 6. { 7. int magic=0; 8. if(x>0 && y>0) 9. { 10. magic = x+y+10; // 語句塊1 11. } 12. else 13. { 14. magic = x+y-10; // 語句塊2 15. } 16. 17. if(magic < 0) 18. { 19. magic = 0; // 語句塊3 20. } 21. return magic; // 語句塊4 22. } |
一般做白盒測試不會直接根據源代碼,而是根據流程圖來設計測試用例和編寫測試代碼,在沒有設計文檔時,要根據源代碼畫出流程圖:
做好了上面的準備工作,接下來就開始講解六個邏輯覆蓋標準: