猿问

条件覆盖,语句覆盖,分支覆盖有啥区别?

条件覆盖,语句覆盖,分支覆盖有啥区别?


qq_遁去的一_1
浏览 2637回答 2
2回答

FFIVE

语句覆盖是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每一个语句至少执行一次,其覆盖标准无法发现判定中逻辑运算的错误;路径覆盖是每条可能执行到的路径至少执行一次;if A and B then Action1 if C or D then Action2 语句覆盖,只需要让程序中的语句都执行一遍即可 。上例中只需设计测试用例使得A=true B=true C=true 即可。路径覆盖:要求覆盖程序中所有可能的路径。所以可以设计测试用例满足下列条件(1)A=true,B=true,C=true,D=true(2)A=false,B=false,C=false,D=false(3)A=true,B=true,C=false,D=false(4)A=false,B=false,C=true,D=true。

达令说

语句覆盖(StatementCoverage) 又称行覆盖(LineCoverage),段覆盖(SegmentCoverage),基本块覆盖(BasicBlockCoverage),这是最常用也是最常见的一种覆盖方式,就是度量被测代码中每个可执行语句是否被执行到了。这里说的是“可执行语句”,因此就不会包括像C++的头文件声明,代码注释,空行,等等。非常好理解,只统计能够执行的代码被执行了多少行。需要注意的是,单独一行的花括号{} 也常常被统计进去。语句覆盖常常被人指责为“最弱的覆盖”,它只管覆盖代码中的执行语句,却不考虑各种分支的组合等等。假如只要求达到语句覆盖,那么换来的确实测试效果不明显,很难更多地发现代码中的问题。所谓判定覆盖,就是设计若干个测试用例,运行被测程序,使得程序中每个判定条件的取真分支和取假分支至少评价一次。又称为分支覆盖。
随时随地看视频慕课网APP

相关分类

Java
我要回答