2、判定覆盖(DecisionCoverage):它度量是否每个BOOL型的表达式取值true和false在控制结构中都被测试到了。
if(a) //当a取true和false
{
...
}
else
{
...
}
3、条件覆盖(ConDItionCoverage):它独立的度量每一个子表达式,报告每一个子表达式的结果的true或false。这个度量和判定覆盖(decisioncoverage)相似,但是对控制流更敏感。不过,完全的条件覆盖并不能保证完全的判定覆盖。
if(a>b&&c>d)
{
...
}
例子中a>b和c>d为2个不同的条件表达式,与if()判断独立。
4、路径覆盖(PathCoverage):它度量了是否函数的每一个可能的分支都被执行了。路径覆盖的一个好处是:需要彻底的测试。但有两个缺点:一是,路径是以分支的指数级别增加的,例如:一个函数包含10个IF语句,就有1024个路径要测试。如果加入一个IF语句,路径数就达到2048;二是,许多路径不可能与执行的数据无关。
如下图具有的路径有:abd、abe、acd、ace
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/