问题
问答题
请仔细阅读以下程序并完成要求。 If((a>2&&b<3)&&(c>4|| d<5)) { Flag=1; } Else { Flag=0; ) 请分别按照语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖测试用例。
答案
参考答案:
解析:语句覆盖是基本的覆盖,只要能让flag=1和flag=0都被执行一次就达到了语句覆盖的标准。用例1和用例2一起即满足了语句覆盖标准的要求。
判定覆盖就是让程序的判定分别为真和假一次,因此上面满足语句覆盖的测试用例也满足判定覆盖标准的要求。
条件覆盖需要让所有判定条件取一次真和一次假.因此测试用例3和用例4一起让所有条件都取到了真和假,满足条件判定覆盖要求。
判定/条件覆盖要求判定覆盖和条件覆盖都要被同时满足,而恰好测试用例3和用例4一起就满足了判定/条件覆盖的要求。
用例编号 | a | b | c | d | a>2 | b<3 | c>4 | d<5 |
1 | 0 | 0 | 0 | 0 | F | T | F | T |
2 | 3 | 1 | 5 | 0 | T | T | T | T |
3 | 5 | 0 | 5 | 0 | T | T | T | T |
4 | 0 | 5 | 0 | 5 | F | F | F | F |