本篇笔记会简化书本上的概念,用容易理解的方式来说明,有些例子打字麻烦,我会直接放图片!
目录
广义有效子句覆盖(General Active Clause Coverage)
限制性有效子句覆盖(Restricted Active Clause Coverage)
基础知识:
谓词predicate:结果为布尔值的表达式,内部用逻辑操作符(V、^ 、—> 等等)连接。
eg:(a>b) v (C) ^P(x)
子句clause:不包含任何逻辑操作符的谓词
eg:谓词((a = b) V C) ^ P(x) 中包含了三个子句:(a = b) 、C 、P(x)
谓词覆盖predicate coverage
又称判定覆盖,要求对于一组谓词中,TR(Test request测试需求)包括每个谓词的结果为真和为假。
eg:
子句覆盖 clause coverage
又称条件覆盖,要求对于每个谓词中的每个子句,TR包括该子句的结果为真和为假。
eg:对于谓词((a = b) V C) ^ P(x),满足CC,需要(a=b)分别取到T和F,C分别取到T和F,P(x)分别取到T和F。这个两组测试用例就可以满足,具体不在细说。
组合覆盖 combinatorial coverage
又称判定条件覆盖,要求对于每个谓词中的每个子句,TR包括该子句的结果为真和为假的每种可能组合。(也就是在字句覆盖的基础上,需要不同的组合都存在)
eg:已知谓词 (a V b) ^ c
满足子句覆盖:
a | b | c | |
1 | T | T | T |
2 | F | F | F |
满足组合覆盖: