首页 > 试题广场 >

设有一个判断语句 if(!(ch=‘0’&&ch=‘9

[单选题]
设有一个判断语句
if(!(ch >= '0' && ch <= '9'))
printf("This is not a digit!\\n");
else
printf("This is a digit!\\n");

为实现判定—条件覆盖,需要设计的测试用例个数至少应为
  • 1
  • 2
  • 3
  • 4
判定/条件覆盖要求设计足够多的测试用例覆盖所有判定(真假)的情况与所有条件(真假)的情况:
判定①if(!(ch >= '0' && ch <= '9'))
判定②else
条件①ch >= '0' 
条件②ch <= '9'
测试用例1:条件①-真;条件②-真;判定①-真;判定②-假
测试用例2:条件①-真;条件②-假;判定①-假;判定②-真
测试用例3:条件①-假;条件②-真;判定①-假;判定②-真
注意:当判定①-真时可以用一个测试用例保证条件①、条件②-真所;但是当判定①为假时,无法用一个测试用例实现条件①和条件②为假。
所以是三种测试用例。
发表于 2022-09-08 16:50:52 回复(2)
我理解的是判定条件最多有三种情况,一是大于0也大于9,二是小于9也小于0,三是大于0小于9。测试时应将这三种情况都覆盖,不知道理解的对不对哦......
发表于 2017-08-17 17:11:39 回复(7)
测试用例要满足如下条件:1.所有条件可能至少执行一次取值;2.所有判断的可能结果至少执行一次。
发表于 2017-03-17 20:36:00 回复(1)
题目转换一下就是 
if  ch < 0  or ch >9:
       print()
else:
        print()
判定就 if 和 else 2个判定,其中 if 里面包含2个条件,所以实现判定-条件覆盖至少3个用例就够了
发表于 2022-03-18 10:58:31 回复(2)
判定-条件覆盖:设计足够的测试用例,使得判断条件中的所有条件可能至少执行一次取值,同时,所有判断的可能结果至少执行一次。
测试用例要满足如下条件:1.所有条件可能至少执行一次取值;2.所有判断的可能结果至少执行一次。
发表于 2017-03-02 17:00:28 回复(0)
发表于 2022-08-25 12:15:43 回复(1)
说同真同假的,粗心没看条件吧?取值只能是tf,ff,ft, 你取多少才是tt呀?
发表于 2020-08-18 10:19:36 回复(1)
应该5种 边界值0,9 中间值 如 5 另外两个越界值
发表于 2021-08-16 12:37:21 回复(0)
全真,真假,假真,三种情况,不可能全假
发表于 2021-12-06 14:56:59 回复(0)
判定/条件覆盖要求所有条件至少要执行一次
发表于 2021-12-03 14:33:31 回复(0)
1.大于0也大于9(TF,执行else语句);
2.小于0(不可能大于9,所以只有FT,不可能有FF,即第一个条件小于0,无需判断第二个条件,执行else语句);
3.大于0且小于9(TT,执行if语句)。
但是不是说至少需要几个吗?答案不应该是至少需要2个就可以覆盖if和else语句吗?
编辑于 2022-02-28 11:46:39 回复(0)
我做的时候这居然是一到多选题,让我怎么选?请牛客大佬把bug改改
发表于 2022-02-09 09:52:40 回复(0)
两个测试用例不是就够了,同真和同假,第三个是什么
发表于 2017-03-25 13:16:07 回复(2)
判定条件
ch >= '0' && ch <= '9'
0<=a<=9
a<0&a<9
a>0&a>9
不存在a>9&a<0
发表于 2023-02-09 17:21:16 回复(1)
仔细看了遍代码,发现ch赋值是'0'-'9',也就是字符型,而不是int型,所以不存在同假的情况
发表于 2022-11-26 16:52:50 回复(1)

判定/条件覆盖 主要特点:设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身所有可能结果也至少出现一次。

发表于 2022-08-16 10:16:34 回复(0)
一个变量,小于0,大于9,0-9之间,三种情况
发表于 2022-02-10 19:40:17 回复(0)
我理解的判定覆盖 这里共两个条件,那不是两个条件满足  T,T  F,F 就好了吗?这样也刚刚好满足了if()条件的至少一次T与F吗?这样不是两条就好了啊??
编辑于 2017-08-27 22:34:03 回复(2)
  • 首先从条件覆盖入手,当设计完条件覆盖后再看看是否有相关判定未覆盖

  • 在条件①中(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 个测试用例

编辑于 2024-04-02 14:40:00 回复(0)
条件覆盖,则小于0的要有,大于0的和小于9的等同了算一个,然后大于9的一个,再看这三个能否也满足判定覆盖,答案是可以所以三条
发表于 2023-06-11 13:26:26 回复(0)