3)100%语句覆盖率含义:在测试时,首先设计若干个测试用例,然后运行被测程序,使程序中的每个可执行语句至少执行一次。
4)特点:语句覆盖可以检验每个可执行语句,但是即使语句覆盖率达到了100%,也会有缺陷发现不了,所以覆盖率只是我们度量的手段。
2、判定覆盖/分支覆盖率
1)定义:在测试时,运行被测程序后,程序中所有判断语句的取真分支和取假分支被执行到的比率。
2)计算公式:判定覆盖率=(判定结果被评价的次数)/(判定结果的总数)。
3)100%条件覆盖率含义:在测试时,首先设计若干个测试用例,然后运行测试程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断的真假值均曾被满足。
4)特点:
- 若判定覆盖达到100%,则语句覆盖必为100%;
- 即使判定覆盖率达到了100%,也会有缺陷发现不了。
3、条件覆盖
1)定义:在测试时,运行被测程序后,程序中所有判断语句中每个条件的可能取值(真值和假值)出现过的比率。
2)计算公式:条件覆盖率=(条件操作数值至少被评价一次的数量)/(条件操作数值的总数)。
3)100%条件覆盖率含义:在测试时,首先设计若干个测试用例,然后运行被测试程序,要使每个判断中每个条件的可能取值至少满足一次。
4)特点:覆盖条件的测试用例不一定覆盖判定。
4、判定-条件覆盖/分支条件覆盖
1)定义:在测试时,运行被测程序后,程序中所有判断语句中每个条件的可能取值(真值和假值)和每个判断本身的判定结果(为真为假)出现的比率。
2)计算公式:判定-条件覆盖率=(条件操作数值或判定结果至少被评价一次的数量)/(条件操作数值的总数+判定结果的总数)。
3)100%判定-条件覆盖率含义:设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,同时每个判断本身的所有可能结果至少执行一次。换言之,即是要求各个判断的所有的可能的取值组合至少执行一次。
4)特点:
- 判定-条件覆盖率实际上就是判定覆盖率和条件覆盖率的组合;
- 采用判定-条件覆盖,逻辑表达式中的错误不一定能够查得出来。
5、条件组合覆盖
1)定义:在测试时,运行被测程序后,所有语句中原子条件所有的可能的取值结果组合出现过的比率。
2)计算公式:条件组合覆盖率=(至少被执行一次的条件组合)/(总的可能的条件组合数)。
3)100%条件组合覆盖率含义:设计足够的测试用例,使得判断中条件的各种可能组合至少出现过一次。
4)特点:若条件组合覆盖率为100%,则语句覆盖率、判定覆盖率、条件覆盖率和判定-条件覆盖率必为100%。
6、路径覆盖
1)定义:在测试时,运行被测程序后,程序中所有可能的路径被执行的比率。
2)计算公式:路径覆盖率=(至少被执行一次的路径)/(总的路径数)。
3)100%路径覆盖率含义:设计足够的测试用例,要求覆盖程序中所有可能的路径。
4)特点:
- 路径覆盖比判定条件覆盖更强,但是不能包含判定条件覆盖。
- 若路径覆盖率为100%,则语句覆盖率、判定覆盖率必为100%。
小结:逻辑覆盖率可以作为软件测试的一个度量,但是,即使达到了100%的逻辑覆盖率,仍然无法保证程序的正确性。
0****2
灰盒覆盖率
函数覆盖和接口覆盖可以归为灰盒测试的范畴。
1、函数覆盖
1)定义:它表示在测试中,有哪些函数被测试到了,其被测试到的频率有多大,这些函数在系统所有函数中占的比例有多大。
2)计算公式:函数覆盖=(至少被执行一次的函数数量)/(系统中函数的总数)。
3)特点:是针对一个系统或者子系统测试的。
2、接口覆盖/入口点覆盖
1)定义:要求通过设计一定的用例使得系统的每个接口被测试到。
2)计算公式:接口覆盖=(至少被执行一次的接口数量)/(系统中接口的总数)。
0****3
黑盒覆盖率
在实际测试中,与黑盒相关的覆盖率比较少,主要是功能覆盖率,其中最常见的是需求覆盖。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
开源项目:docs.qq.com/doc/DSlVlZExWQ0FRSE9H