第1题:
设有一段程序如下:
if((a==b) and ((c==d) or (e==f))) do S1
else if((p==q) or (s==t))do S2
else do S3
满足判定/条件覆盖的要求下,最少的测试用例数目是______。
A) 6
B) 8
C) 3
D) 4
A.
B.
C.
D.
第2题:
针对下列程序段,需要(58)个测试用例可以满足分支覆盖的要求。 int IsLeap(int year) { if(year % 4==0) { if((year % 100==0) { if(year % 400==0) leap=1; else leap=0; } else leap=l; } else leap=0; return leap; }
A.3
B.4
C.6
D.7
第3题:
请仔细阅读以下程序并完成要求。
If((a>2&&b<3)&&(c>4|| d<5))
{
Flag=1;
}
Else
{
Flag=0;
)
请分别按照语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖测试用例。
第4题:
( )是选择若干个测试用例,运行被测程序,使得程序中的每个可执行语句至少执行一次。
A.条件覆盖
B.组合覆盖
C.判定覆盖
D.语句覆盖
第5题:
针对以下C语言程序段,对于(MaxNum,Type)的取值,至少需要(62)个测试用例能够满足判定覆盖的要求。while(MaxNum-->0){ if(10==Type) x=y* 2; else if(100==Type) x=y +10; else x=y-20;}
A.5
B.4
C.3
D.2
第6题:
针对下面的程序段,对于(MaxNum,Type)的取值,至少需要______个测试用例才能够满足判定覆盖的要求。
Whjle(MaxNum-->0)
{
If(10==Type)x=y * 2;
Else if(100==Type)x=y+20;
}
A) 5
B) 4
C) 3
D) 2
A.
B.
C.
D.
第7题:
第8题:
第9题:
第10题:
()是选择若干个测试用例,运行被测程序,使得程序中的每个可执行语句至少执行一次。
第11题:
第12题:
第13题:
【问题5】 【C代码3】中x,y是两个已定义的整型变量。对该程序段进行覆盖测试时,必须适当地选取测试用例。如表5-10所示给出了可供选择的4组测试用例。若要实现语句覆盖,则至少应采用的测试用例是(2);若要实现条件覆盖,则至少应采用的测试用例是(3);若要实现路径覆盖,则至少应采用的测试用例是(4)或(5)。 【C代码3】 int a:=0; if (x==O && y>2) a:=1 /*A语句*/ else { if (x<1 || y==1) else a:=2 /*B语句*/ }
【(2)~(5)空缺处供选择的答案】 A.Ⅰ和Ⅱ组 B.Ⅱ和Ⅲ组
C.Ⅲ和Ⅳ组 D.Ⅰ和Ⅳ组
E.Ⅰ、Ⅱ和Ⅲ组 F.Ⅱ、Ⅲ和Ⅳ组G.Ⅰ、Ⅲ和Ⅳ组 H.Ⅰ、Ⅱ和Ⅳ组
第14题:
下面的程序段中,[(1)]是语句覆盖测试用例,[(2)]是判定覆盖测试用例。
If(a<80)b=0;
else if(a<=150)b=5;
else if(a<200)b=8;
else b=1;
(16)
A.a=(80,150,200,201)
B.a=(80,81,199,200)
C.a=(79,149,200,201)
D.a=(79,150,199,200)
第15题:
在下面所列举的逻辑测试覆盖中,测试覆盖最强的是(38),最弱的是(39)。
软件测试工具有多种,其中(40)对源程序的数据流和控制流进行分析,发现语义错误:(41)通过对程序的执行流进行探测,检查有关变量的逻辑值。
在下面的个人所得税程序中满足语句覆盖测试用例的是(42),满足判定覆盖测试的用例是(43)。
if (income<800) taxrate=0;
else if (income<=1500) taxrate=0.05;
else if (income<2000) taxrate=0.08:
else taxrate=0.1;
A.条件覆盖
B.条件组合覆盖
C.语句覆盖
D.条件及判定覆盖
第16题:
下面的程序段中,(53)是语句覆盖测试用例,(54)是判定覆盖测试用例。
if(a<80)b=0;
else if(a<=150)b=5;
else if(a<200)b=8;
else b=1;
A.a=(80,150,200,201)
B.a=(80,81,199,200)
C.a=(79,149,200,201)
D.a=(79,150,199,200)
第17题:
试题三(共 15分)
阅读以下关于嵌入式软件测试用例设计的叙述,回答问题 1至问题 3,将答案填入答题纸的对应栏内。
【说明】
某程序段的流程如图 3-1所示,x、y是两个变量,K、J 表示一段程序执行体,表 3-1 所示为本题可供选择的四组测试用例组。
【问题1】(3分)
简答以下问题。
(1)条件覆盖的含义是什么?
(2)路径覆盖的含义是什么?
【问题 2】(2分)
在程序测试用例设计中,有语句覆盖、条件覆盖、判定覆盖(分支覆盖)和路径覆盖等。其中,____是最强的覆盖准则。
请把以下 4个选项中正确的选项序号填入上述空白处。
①语句覆盖
②条件覆盖
③判定覆盖(分支覆盖)
④路径覆盖
【问题 3】(10 分)
为了对图 3-1 所示的程序段进行覆盖测试,必须适当地选取测试用例组。实现判定覆盖至少应采用的测试用例组是 (1)和 (2) ,实现条件覆盖至少应采用的测试用例组是 (3) ;实现路径覆盖至少应采用的测试用例组是 (4) 和 (5)。
请把以下 8个选项中正确的选项序号填入上述空白处。
① 试用例组Ⅰ和Ⅱ
②测试用例组Ⅱ和Ⅲ
③测试用例组Ⅲ和Ⅳ
④测试用例组Ⅰ和Ⅳ
⑤测试用例组Ⅰ、Ⅱ和Ⅲ
⑥测试用例组Ⅱ、Ⅲ和Ⅳ
⑦测试用例组Ⅰ、Ⅲ和Ⅳ
⑧测试用例组Ⅰ、Ⅱ和Ⅳ
试题三(共15分)
【问题1】(3分)
(1)条件覆盖是指设计足够的测试用例,使得被测程序每一个判定中的每个条件的所有可能结果至少出现一次。
(2)路径覆盖是指设计足够的测试用例,使得被测程序中每条路径至少执行一次。
【问题2】(2分)
(1)④(路径覆盖)
【问题3】 (10分)
(1)⑤
(2)⑧
(3)⑦
(4)⑤
(5)⑧
其中,第(1)、(2)题的答案顺序可互换,第(4)、(5)题的答案顺序可互换。
第18题:
第19题:
第20题:
第21题:
设计下列伪程序的语句覆盖测试用例。 BEGIN INPUT(A,B,C) IF A>5 THEN X=10 ELSE X=1 END IF IF B>10 THEN Y=20 ELSE Y=2 END IF IF C>15 THEN Z=30 ELSE Z=3 END IF PRINT(X,Y,Z) END
因为每个判定表达式为真或假时均有赋值语句,为了使每个语句都至少执行一次,总共需要两组测试数据,以便使得每个判定表达式取值为真或假各一次。下面是实现语句覆盖的典型测试用例:
(1)使3个判定表达式之值全为假
输入:A=1,B=1,C=1
预期的输出:X=1,Y=2,Z=3
(2)使3个判定表达式之值全为真
输入:A=20,B=40,C=60
预期的输出:X=10,Y=20,Z=30
略
第22题:
请为下面的程序设计符合判定覆盖的测试用例。 int main() { int a,b,c,x,y,z,t; scanf(“d%,d%,d%”,&a,&b,&c,&t); if a>5 && t<1 x=10 else x=1; if b>10 y=20 else y=2; if c>15 z=30 else z=3; printf(“d%,d%,d%/n”,x,y,z) }
第23题:
条件覆盖
组合覆盖
判定覆盖
语句覆盖