白盒测试逻辑覆盖法

来源:互联网 发布:淘宝手机上传宝贝 编辑:程序博客网 时间:2024/04/28 13:40

看新定的测试覆盖率标准,有点晕。

1、语句覆盖率达到100%
2、分支覆盖率不低于70%
开始觉得,这两个限制有点矛盾,语句覆盖率都达到100%了,分支覆盖率还没达到100%?答案:是。举个例子说明: 

if   A   and   B   then   Action1   
if   C   or   D   then   Action2 

就拿这个来说,A=true   B=true   C=true,语句覆盖率是100%,可分支覆盖率是50%,并没有走false的分支。从而引发一个理解,分支并不一定是实际的代码,而是逻辑上的分支,而分支覆盖率并不是指的是对实际代码句的覆盖。

温习一下软件工程里测试逻辑覆盖的分类:

(1)语句覆盖。
为了个提高发现错误的可能性,在测试时应该执行到程序中的每一个语句。语句覆盖是指设计足够的测试用例,使被测试程序中每个语句至少执行一次。
(2)判定覆盖。
判定覆盖指设计足够的测试用例,使得被测程序中每个判定表达式至少获得一次“真”值和“假”值,从而使程序的每一个分支至少都通过一次,因此判定覆盖也称分支覆盖。
(3)条件覆盖。
条件覆盖是指设计足够的测试用例,使得判定表达式中每个条件的各种可能的值至少出现一次。
(4)判定/条件测试。
该覆盖标准指设计足够的测试用例,使得判定表达式的每个条件的所有可能取值至少出现一次,并使每个判定表达式所有可能的结果也至少出现一次。
(5)条件组合覆盖。
条件组合覆盖是比较强的覆盖标准,它是指设计足够的测试用例,使得每个判定表达式中条件的各种可能的值的组合都至少出现一次。
(6)路径覆盖。
路径覆盖是指设计足够的测试用例,覆盖被测程序中所有可能的路径。
在实际的逻辑覆盖测试中,一般以条件组合覆盖为主设计测试用例,然后再补充部分用例,以达到路径覆盖测试标准。

 

原创粉丝点击