● 针对以下C语言程序段,假设sta[10]= -1,对于 x 的取值,需要(56)个测试用例能够满足分支覆盖的要
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;
}
(56)
A.3
B.4
C.5
D.6
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;
}
(56)
A.3
B.4
C.5
D.6
● 针对以下程序段,对于变量 c 的取值,至少需要(61)个测试用例才能够满足语句覆盖的要求。
c = ((u8_t *)q->payload)[i];
switch (c)
{
case SLIP_END:
sio_send(SLIP_ESC, netif->state);
sio_send(SLIP_ESC_END, netif->state);
break;
case SLIP_ESC:
sio_send(SLIP_ESC, netif->state);
sio_send(SLIP_ESC_ESC, netif->state);
break;
default:
sio_send(c, netif->state);
break;
}
(61)A.4 B.3 C.2 D. 1
A.4
B.3
C.2
D.1
下面表达式结构属于()语言。 If条件表达式Then 程序段1 [Else 程序段2] End if
A.C
B.Java
C.VBScript
D.JavaScript
试题四(共20 分)
阅读以下说明和 C 语言代码, 回答问题 1 至问题3, 将解答填入答题纸的对应栏内。
【说明】
在实时系统中, 许多控制软件需要将数据封装到一个数据结构中, 以节省存储空间。对于位操作,使用汇编语言实现其访问比较容易,但会增加编程难度,因此现在普遍采用 C 语言实现。使用高级语言编程要特别注意结构的存储格式以及编译器的特性。本题所使用的编译器对变量按声明顺序分配地址。分析图 4-1所示的 C 语言代码,回答以下问题。
【问题 1】 (8 分)
如果处理机按 16 位以大端方式(big_endian)编址,请在图 4-2 所示的存储器图表中填入 myRadarData 数据的存储内容(十六进制表示)。
【问题 2】 (8分)
在图 4-1 所示的程序中,第 22 行的语句执行完成后,下列语句的结果是多少?请将应填入(n)处的内容写在答题纸的对应栏中。
q->X = (1)
q->Y = (2)
q->Z = (3)
q->U = (4)
若再执行一次q++,则下列语句的结果又是多少?请将应填入(n)处的内容写在答题纸的对应栏中。
q->X = (5)
q->Y = (6)
q->Z = (7)
q->U = (8)
【问题 3】 (4 分)
内存空间常划分为代码段(text) 、数据段(data) 、bss 段(bss) 、堆区(heap)和栈区(stack) ,那么图 4-1 中 myRadarData 数组的存储空间应分配在哪个段中?指针变量 p、q 应分配在哪个段中?
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
逻辑覆盖法是设计白盒测试用例的主要方法之一,通过对程序逻辑结构的遍历实现
程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。
【问题1] (6分)
请给出满足100%DC(判定覆盖)所需的逻辑条件。
【问题2] (10分)
请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。
【问题3](4分)
请给出问题2中控制流图的线性无关路径。
● 针对下列程序段,对于(A,B,C)的取值,以下(56)测试用例组合能够满足语句覆盖的要求。
IF ((A + 10 ) = 2 OR (B -20 ) < 3 ) THEN C = 0 IF ((A+30 ) > 10 AND (C - 30 ) < 0 ) THEN B = 30
(56)
A.(2,30,1)
B.(-20,0,30)
C.(-30,20,30)
D.(2,20,3)
针对下列程序段,需要______个测试用例才可以满足语句覆盖的要求。
Switch(value)
{
Case 0:
ther=30;
Break;
Case 1:
ther=50;
Break;
Case 2:
ther=300;
Case 3:
ther=other/value;
Break;
Default;
ther=other*value;
}
A) 2
B) 3
C) 4
D) 5
阅读下列说明,回答问题1至问题3。
【说明】
使用基本路径法设计出的测试用例能够保证程序的每一条可执行语句在测试过程中至少执行一次。以下代码由C语言书写,请按要求回答问题。
int IsLeap(int year)
{
if(year% 4==0)
{
if((year % 100==0)
{
if(year % 400==0'
leap=1;
eIse
leap=0;
}
else
leap=1;
else
leap=0;
return leap;
}
请画出以上代码的控制流图。
请计算上述控制流图的V(G)。
假设的取值范围是1000<year<2001,请使用基本路径测试法为变量year设计测试用例,使之满足基本路径覆盖的要求。
请帮忙给出每个问题的正确答案和分析,谢谢!
● 针对下列程序段,对于(A,B)的取值,以下(57)测试用例组合能够满足条件覆盖的要求。
IF ((A - 10 ) = 20 AND (B + 20 ) > 10 ) THEN C = 0 IF ((A - 30 ) < 10 AND (B - 30 ) < 0 ) THEN B = 30
①A=50 B=-10 ②A=40 B=40 ③A=30 B=-10 ④A=30 B=30
(57)
A.①②
B.③④
C.①④
D.②④
A.(2,30,1)
B.(-20,0,30)
C.(30,20,30)
D.(2,20,3)