- 语句覆盖(Statement Coverage)
- 又称行覆盖(Line Coverage),段覆盖(Segment Coverage),基本块覆盖(Basic Block Coverage)
- 这是最常用也是最常见的一种覆盖方式,就是度量被测代码中每个可执行语句是否被执行到了
- 这里说的是“可执行语句”,因此就不会包括像C++的头文件声明,代码注释,空行,等等
- 语句覆盖常常被人指责为“最弱的覆盖”,它只管覆盖代码中的执行语句,却不考虑各种分支的组合等等
- 简言之,语句覆盖,就是设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。这里的“若干个”,意味着使用测试用例越少越好
- 语句覆盖率 = 被测试到的语句数量 / 可执行的语句总数 x 100%
- 判定覆盖(Decision Coverage)
- 又称为分支覆盖(Branch Coverage)
- 所谓判定覆盖,就是设计若干个测试用例,运行被测程序,使得程序中每个判定的取真分支和取假分支至少被测试一次
- 【优点】:判定覆盖具有比语句覆盖更强的测试能力,而且具有和语句覆盖一样的简单性,无需细分每个判定就可以得到测试用例
- 【缺点】:往往大部分的判定语句是由多个逻辑条件组合而成(如,判定语句中包含AND、OR、CASE),若仅仅判断其整个最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径
- 修订的条件/判定覆盖(Modified Condition/Decision Coverage)
- M
语句覆盖(Statement Coverage)|判定覆盖(Decision Coverage)|修订的条件/判定覆盖(Modified Condition/Decision Coverage)
最新推荐文章于 2022-08-11 15:20:24 发布
本文介绍了软件测试中的三种覆盖率标准:语句覆盖、判定覆盖和修订的条件/判定覆盖(MCDC)。语句覆盖是最基础的标准,确保每个可执行语句至少执行一次。判定覆盖则关注每个判定的取真和取假分支。而MCDC更进一步,要求每个条件都能独立影响判定结果,以避免边际效应。通过实例解析了MCDC测试用例的设计准则。
摘要由CSDN通过智能技术生成