if(!(ch >= '0' && ch <= '9')) printf("This is not a digit!\\n"); else printf("This is a digit!\\n");
判定/条件覆盖 主要特点:设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身所有可能结果也至少出现一次。
首先从条件覆盖入手,当设计完条件覆盖后再看看是否有相关判定未覆盖
在条件①中(ch >= '0'), ch 可能的取值情况为 ch>='0' 或 ch<'0' ;在条件②中,ch 可能的取值情况为 ch<='9' 或 ch>'9'
其中 ch>='0' 与 ch<='9' 可以被一个测试用例覆盖,此时判定结果为 False 而 ch<'0' 与 ch>'9' 无法使用一个测试用例覆盖,因此针对不同情况各自安排一个测试用例,此时判定结果为 True
条件覆盖完毕后,发现已经同时覆盖了判定条件为 True 和 False 的情况,因此无需再添加额外测试用例,所以本例完成判定/条件覆盖共需要 3 个测试用例