逻辑覆盖测试是通过对程序逻辑结构的遍历实现程序的覆盖。从覆盖源代码的不同程度可以分为以下六个标准:语句覆盖、判定覆盖(又称为分支覆盖)、条件覆盖、判定-条件覆盖(又称为分支-条件覆盖)、条件组合覆盖和路径覆盖。
先看一下具体例子的源代码(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. } |
一般做白盒测试不会直接根据源代码,而是根据流程图来设计测试用例和编写测试代码,在没有设计文档时,要根据源代码画出流程图:
做好了上面的准备工作,接下来就开始讲解六个逻辑覆盖标准: