看新定的测试覆盖率标准,有点晕。ide
一、语句覆盖率达到100%
二、分支覆盖率不低于70%
开始以为,这两个限制有点矛盾,语句覆盖率都达到100%了,分支覆盖率还没达到100%?答案:是。举个例子说明: 测试
if A and B then Action1
if C or D then Action2 设计
就拿这个来讲,A=true B=true C=true,语句覆盖率是100%,可分支覆盖率是50%,并无走false的分支。从而引起一个理解,分支并不必定是实际的代码,而是逻辑上的分支,而分支覆盖率并非指的是对实际代码句的覆盖。it
温习一下软件工程里测试逻辑覆盖的分类:io
(1)语句覆盖。
为了个提升发现错误的可能性,在测试时应该执行到程序中的每个语句。语句覆盖是指设计足够的测试用例,使被测试程序中每一个语句至少执行一次。
(2)断定覆盖。
断定覆盖指设计足够的测试用例,使得被测程序中每一个断定表达式至少得到一次“真”值和“假”值,从而使程序的每个分支至少都经过一次,所以断定覆盖也称分支覆盖。
(3)条件覆盖。
条件覆盖是指设计足够的测试用例,使得断定表达式中每一个条件的各类可能的值至少出现一次。
(4)断定/条件测试。
该覆盖标准指设计足够的测试用例,使得断定表达式的每一个条件的全部可能取值至少出现一次,并使每一个断定表达式全部可能的结果也至少出现一次。
(5)条件组合覆盖。
条件组合覆盖是比较强的覆盖标准,它是指设计足够的测试用例,使得每一个断定表达式中条件的各类可能的值的组合都至少出现一次。
(6)路径覆盖。
路径覆盖是指设计足够的测试用例,覆盖被测程序中全部可能的路径。
在实际的逻辑覆盖测试中,通常以条件组合覆盖为主设计测试用例,而后再补充部分用例,以达到路径覆盖测试标准。class