刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

单选题

针对以下C语言程序段,假设sta[10]=-1,对于x的取值,需要______个测试用例能够满足分支覆盖的要求。
Int MathMine(int x)
{
int m=0;
int i;
for(i=x-1;i<=x+1;i++)
{
If(i<0)    continue;
If(i>31)    break;
If(sta[i]==-1)    m++;
}
return m;
}

A
3
B
4
C
5
D
6
使用微信搜索喵呜刷题,轻松应对考试!

答案:

A

解析:

分支覆盖要求程序中的每个分支都被测试覆盖到。在这个C语言程序段中,需要测试以下几种情况:

  1. i < 0的情况,此时执行continue语句,跳过本次循环的剩余部分,进入下一次循环。
  2. i > 31的情况,此时执行break语句,直接跳出循环。
  3. sta[i] == -1的情况,此时计数m自增。

因此,需要设计多个测试用例来满足以上分支覆盖的要求。假设sta[10] = -1,对于x的取值,需要至少三个测试用例:

  1. 当x取较小值时(例如x=0),确保i < 0的分支被覆盖;同时确保在循环中能够遇到sta[i] == -1的情况。此时i取值为-1至x的值范围内(含边界值)。这种情况至少有一个分支需要测试。
  2. 当x取较大值时(例如x=32),确保i > 31的分支被覆盖。此时i取值超过31至x的值范围内(含边界值)。这种情况至少有一个分支需要测试。因为当i超过数组长度时,程序没有处理越界的情况,因此也需要测试这种情况。因此总共需要至少三个测试用例来满足分支覆盖的要求。所以答案为A。
创作类型:
原创

本文链接:针对以下C语言程序段,假设sta[10]=-1,对于x的取值,需要______个测试用例能够满足分支

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share