白盒测试历年考试类型.docx
《白盒测试历年考试类型.docx》由会员分享,可在线阅读,更多相关《白盒测试历年考试类型.docx(37页珍藏版)》请在冰豆网上搜索。
白盒测试历年考试类型
白盒测试历年考试类型(实战你能做多少?
):
一、上午选择题:
1
2005年1
2006年1
2007年3
(2008年)6
(2009年)8
20109
其它10
二、下午题12
1、2005年12
试题二(15分)(白盒测试)12
2、2006年13
试题一(15分)(白盒测试)13
3、2007年上半年软件评测师下午试题15
4、2008试题四(10分)(白盒测试之分支(判定)覆盖)17
5、2009年试题四(10分)(白盒测试之DC和CC覆盖)18
6、2010年试题三(16分)20
一、上午选择题:
2005年
2006年
•多条件覆盖是一种逻辑覆盖,它的含义是设计足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次,满足多条件覆盖级别的测试用例也是满足___(26)___级别的:
针对布尔表达式A&&(B||C)执行逻辑覆盖测试,测试用例至少需要___(27)___种组合才能满足多条件覆盖的要求。
(26)A.语句覆盖、判定覆盖、条件覆盖、条件判定组合覆盖
B.判定覆盖、条件覆盖;条件判定组合覆盖、修正条件判定覆盖
C.语句覆盖、判定覆盖、条件判定组合覆盖、修正条件判定覆盖
D.路径覆盖、判定覆盖、条件覆盖、条件判定组合覆盖
(27)A6B4C8D12
•逻辑路径覆盖法是白盒测试用例的重要设计方法,其中语句覆盖法是较为常用的方法,
针对下面的语句段,采用语句覆盖法完成测试用例设计,测试用例见下表,对表中的空缺项
(True或者False),正确的选择是(60)。
语句段:
if(A&&(B||C))x=l;
elsex=O;
用例表:
用例1
用例2
A
TRUE
FALSE
B
①
FALSE
C
TRUE
②
A&&(B||C)
③
FALSE
(60)A.①TRUE②FALSE③TRUEB.①TRUE②FALSE③FALSE
C.①FALSE②FALSE③TRUED.①TRUE②TRUE③FALSE
解析:
本题考査白盒测试用例的设计方法一语句覆盖法的基础蝴识。
语句覆盖袪强调程序段中的每一个可执行语句至少执行一次.③必需选择TRUE,①与②可以选择TRUE或者FALSEfl参考答秦
(60)A或者C
•—(61)—方法根据输出对输入的依赖关系设计测试用例。
(61)A.路径测试B.等价类C.因果图D.边界值
解析:
•针对下面程序段,边界值问题可以定位在—(62)_。
1:
RemCreatea10elementintegerarray
2:
RemInitializeeachelementto-1
3:
Dimdata(10)AsInteger
4:
DimiAsInteger
5:
Fori=1TO10
6:
data(i)=-1
7:
Nexti
8:
End
(62)A.data
(1)B.data(0)C.data(9)D.data(10)
解析:
本题垮簣用边界值法设计测试用例*
边界雷法的取值原则是取最力値和最大值,比最小值稍小值和比最大值稍大值.本
jg給岀问题的dataW),没有给血忸<0)赋值「
参考答案:
B
(63)A.V(g)=5EV(g)=1B.V(g)=6EV(g)=6
C.V(g)=5EV(g)=5D.V(g)=6EV(g)=1
解析:
本题考查从控制流图计算圈复杂度V(g)和基本圈复杂度EV(g)的方法。
V(g)=(区域数)=6,按照结构化原则简化后,原来的控制流图转变成顺序执行的流图,因此EV(g)=1
参考答案:
D
2007年
•阅读下列流程图:
当用判定覆盖法进行测试时,至少需要设计(44)个测试用例。
(册)
输入乩y
叭i化d
(HD
当用判定覆盖法进行测试时,至少需要设计(44)个测试用例。
(44)A.2B.4C.6D.8
•以下控制流程图的环路复杂性V(G)等于(54)。
•针对下列程序段,对于(A,B,C)的取值,以下(56)测试用例组合能够满足语句覆盖的
要求。
IF((A+10)=2OR(B-20)<3)THENC=0
IF((A+30)>10AND(C-30)<0)THENB=30
(56)A.(2,30,1)B.(-20,0,30)C.(-30,20,30)D.(2,20,3)
•针对下列程序段,对于(A,B)的取值,以下(57)测试用例组合能够满足条件覆盖的要求。
IF((A-10)=20AND(B+20)>10)THENC=0
IF((A-30)<10AND(B-30)<0)THENB=30
1A=50B=-10②A=40B=40③A=30B=-10④A=30B=30
(57)A.①②B.③④C.①④D.②④
(A-10)=20
B+20>10
AND
A-30<10
B-30<0
AND
A=50B=-10
F
T
F
T
T
T
A=40B=40
F
T
F
F
F
F
A=30B=-10
T
F
F
T
T
T
A=30B=30
T
T
T
T
F
F
•针对逻辑覆盖有下列叙述,(58)是不正确的。
(58)A.达到100%DC要求就一定能够满足100%SC的要求
B.达到100%CC要求就一定能够满足100%SC的要求
C.达到100%CDC要求就一定能够满足100%SC的要求
D.达到100%MCDC要求就一定能够满足100%SC的要求•以下所示程序控制流程图中有(59)条线性无关的基本路径。
(60)A.白盒测试又称为逻辑驱动测试
B•穷举路径测试可以查出程序中因遗漏路径而产生的错误
C.一般而言,黑盒测试对结构的覆盖比白盒测试高
D•必须根据软件需求说明文档生成用于白盒测试的测试用例
•针对以下程序段,对于变量c的取值,至少需要(61)个测试用例才能够满足语句覆盖
的要求。
c=((u8_t*)q->payload)[i];
switch(c)
{
caseSLIP_END:
sio_send(SLIP_ESC,netif->state);
sio_send(SLIP_ESC_END,netif->state);break;
caseSLIP_ESC:
sio_send(SLIP_ESC,netif->state);
sio_send(SLIP_ESC_ESC,netif->state);break;
default:
sio_send(c,netif->state);break;
}
(61)A.4B.3C.2D.1
•针对以下C语言程序段,对于(MaxNumType)的取值,至少需要(62)个测试用例能够满足判定覆盖的要求。
while(MaxNum-->0)
{
if(10==Type)
x=y*2;
else
if(100==Type)
x=y+10;
else
x=y-20;
}
(62)A.5B.4C.3D.2
•假设A、B为布尔变量,对于逻辑表达式(A&&B),至少需要(63)个测试用例才能完成MCDC覆盖。
(63)A.4B.3C.2D.1
用例1
用例2
用例3
用例4
A
T
T
F
F
B
F
T
T
F
A&&B
F
T
F
F
(2008年)
(43)•下面为C语言程序,边界值问题可以定位在(45)。
intdata(3),
inti,
for(i=1,i<=3,i++)
data(i)=100
A.data(0)B.data
(1)C.data
(2)D.data(3)
•(46)叙述是正确的。
1测试用例应由测试设计人员来制定
2测试点应由测试人员确立
3测试工作展开于项目立项后,而不是代码开发完成之后
4测试对象是源代码
A.①②③B.②③C.①③D.①②③④
•通常测试用例很难100%覆盖测试需求,因为(47)。
1输入量太大
2输出结果太多
3软件实现途径多
4测试依据没有统一标准
A.①②B.①③C.①②③D.①②③④
•假定X为整数类型变量,X>=1并且X<=10,如果用边界值分析法,X在测试中应该取(48)值。
A.1,10B.0,1,10,11C.1,11D.1,5,10,11
•针对下列程序段,需要(52)个测试用例可以满足语句覆盖的要求。
switch(value)
{
case0:
other=30;
break;
case1:
other=50;
break;
case2:
other=300;
case3:
other=other/value;
break;
default:
other=other*value;
}
A.2B.3C.4D.5
•针对逻辑覆盖(53)叙述是不正确的。
A.达到100%CC要求就一定能够满足100%DC的要求
B.达到100%CDC要求就一定能够满足100%DC的要求
C.达到100%MCD(要求就一定能够满足100%DC的要求
D.达到100%路径覆盖要求就一定能够满足100%DC的要求
•以下控制流程图的环路复杂性V(G)等于(54)。
•在程序控制流图中,有8条边,6个节点,则控制流程图的环路复杂性V(G)等于(55)。
A.2B.4C.6D.8
•针对程序段:
IF(X>10)AND(Y<20)THENW=W/,对于(X,Y)的取值,以下(56)组
测试用例能够满足判定覆盖的要求。
A.(30,15)(40,10)B.(3,0)(30,30)
C.(5,25)(10,20)D.(20,10)(1,100)
X>10
Y<20
AND
(30,15)
T
T
T
(40,10)
T
T
T
(3,0)
F
T
F
(30,30)
T
F
F
(5,25)
F
F
F
(10,20)
F
F
F
(20,10)
T
T
T
(1,100)
F
F
F
(2009年)
•关于白盒测试的测试用例设计方法叙述,正确的是(55)。
(55)A.完成SC(语句判定)所需的测试用例数目一定多于完成DC(逻辑判定)所需的
测试用例数目
B.达到100%CC(条件判定)要求就一定能够满足100%SC的要求
C.达到100%CDC(条件判定组合覆盖)要求就一定能够满足100%CC的要求
D.任何情况下,都可以达到100%路径覆盖的要求
•以下控制流图的圈复杂度V(g)为(56)。
(56)
D.10
A.4
•针对程序段:
IF(A||B||C)THENW=W/X对于(A,B,C)的取值,(57)测试用例能
够满足MCD(修正条件逻辑判定)的要求。
(57)A.(F,T,T)(T,F,T)(T,F,F)(T,T,F)
B.(T,F,F)(T,T,F)(F,T,T)(F,F,F)
C.(T,F,F)(T,T,F)(F,T,T)(F,F,T)
D.(T,F,F)(F,T,F)(F,F,T)(F,F,F)
序号
A
B
C
A||B||C
A
B
C
1
T
T
T
T
2
T
T
F
T
4
3
T
F
T
T
4
T
F
F
T
2
5
F
T
T
T
6
F
T
F
T
7
7
F
F
T
T
6
8
F
F
F
F
•针对下列程序段,需要(58)个测试用例可以满足分支覆盖的要求。
intlsLeap(intyear)
{
if(year%4==0)
{
if((year%100==0)
{
if(year%400==0)
leap=1;
else
leap=0;
}
else
leap=1;
}
else
leap=0;
returnleap;
}
(58)A.3B.4C.6D.7
2010
计算以下控制流程图的环路复杂度V(G),正确答案是(44)。
(44)A.V(G)=2B.V(G)=2C.V(G)=2D.V(G)=2
假设A、B为布尔变量,对于逻辑表达式(A&&B||C),需要(47)测试用例才能完成判定覆盖(DC)。
(47)A.2B.3C.4D.5
假设在程序控制流图中,有14条边,10个节点,则控制流程图的环境复杂性V(G)等于
是(54)。
(54)A.12B.8C.6D.4
针对以下C语言程序段,假设sta[10]=-1,对于x的取值,需要(56)个测试用例能够满足分支覆盖的要求。
IntMathMine(intx)
{
intm=0;
inti;
for(i=x-1;i<=x+1;i++)
{
if(i<0)continue;
if(i>31)break;
if(sta[i]==-1)m++;
}
returnm;
}
(56)A.3B.4C.5D.6
其它
•RUP在每个阶段都有主要目标,
并在结束时产生一
些制品。
在(30)
结束时产生“在
适当的平台上集成的软件产品”
。
(30)A.初期阶段
B.精化阶段
C.构建阶段
D.移交阶段
•根据ISO/IEC9126软件质量度量模型定义,一个软件的时间和资源质量子特性属于(31)质量特性。
(31)A.功能性B.效率C.可靠性D.
易使用性
•McCabe度量法是通过定义环路复杂度,建立程序复杂性的度量,它基于一个程
序模块的程序图中环路的个数。
计算有向图G的环路复杂性的公式为:
V(G)=m-n+2,其中
V(G)是有向图G中的环路个数,m是G中的有向弧数,n是G中的节点数。
下图所示程序图的程序复杂度是(32)。
(32)A.2B.3C.4D.5
•在开发信息系统时,用于系统开发人员与项目管理人员沟通的主要文档是
(33)。
(33)A.系统开发合同B.系统设计说明书
C.系统开发计划D.系统测试报告
•软件工程每一个阶段结束前,应该着重对可维护性进行复审。
在系统设计阶段复审期间,应该从(34)出发,评价软件的结构和过程。
(34)A.指出可移植性问题以及可能影响软件维护的系统界面
B.容易修改、模块化和功能独立的目的
C.强调编码风格和内部说明文档
D.可测试性
•当用分支覆盖法对以下流程图进行测试时,至少需要设计(35)个测试用例。
•某银行为了使其网上银行系统能够支持信用卡多币种付款功能而进行扩充升级,这需要对数据类型稍微进行一些改变,这一状况需要对网上银行系统进行(36)维护。
(36)A.正确性B.适应性C.完善性D.
预防性
、下午题
1、2005年
试题二(15分)(白盒测试)阅读下列说明,回答问题1至问题3,将解答填入大体纸的对应栏内。
【说明】使用基本路径法设计出的测试用例能够保证程序的每一条可执行语句在测试过程中至少执行一次。
以下代码由C语言书写,请按要求回答问题。
IntIsLeap(intyear)
{
if(year%4==0)
{
if(year%100==0)
{if(year%400==0)leap=1;
else
leap=0;
}
else
leap=1;
}
else
leap=0;returnleap;
}
【问题1】(3分)请画出以上代码的控制流图
【问题2】(4分)
请计算上述控制流图的圈复杂度v(G(独立线性路径数)
【问题3】(8分)假设输入的取值范围是1000分析:
试题二【问题1】(3分)知识点包括:
控制流图
【问题2】(4分)
知识点包括:
V(G)=4
【问题3】(8分)
知识点包括:
用例1:
year是1000〜2000之间不能被4整除的整数,女口1001、1002、1003等(2分)。
用例2:
year是1000〜2000之间能被4整除但不能被100整除的整数,女口1004、1008、1012、1016等(2分)。
用例3:
year是1000〜2000之间能被100整除但不能被400整除的整数,如1100、1300、1400、1500、1700、1800、1900(2分)。
用例4:
year是1000〜2000之间能被400整除的整数,如1200、1600、2000(2分)。
2、2006年
试题一(15分)(白盒测试)
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
[说明]
基本路径法设计出的测试用例能够保证在测试中程序的每一条可执行语句至少执行一次。
以下代码由C什语言书写,请按要求回答问题。
voidReadPara(CStringtemp)
{
if(temp==">=")
m_oper.SetCurSel(0);
else
{
if(temp==">")
m_oper.SetCurSel
(1);
else
{
if(temp=="==")
m_oper.SetCurSel
(2);
else
{
if(temp=="<=")
m_oper.SetCurSel(3);
else
{
if(temp=="<")
m_oper.SetCurSel(4);
else
m_oper.SetCurSel(5);
}
}
}
}
return;
}
[问题1](6分)
请画出以上代码的控制流图。
[问题2](3分)
请计算上述控制流图的环路复杂度V(G)。
[问题3](6分)
请使用基本路径测试法为变量temp设计测试用例,使之满足基本路径覆盖要求。
分析:
试题一
V(G)=6
[问题3]
用例编号
temp取值
1
>=
2
>
3==
4
<=
5
<
6
除>=、>、=
==、<=、<之外的字符组合
3、2007年上半年软件评测师下午试题
试题一(15分)(白盒测试之基本路径测试法)阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
[说明]
以下代码由C语言书写,能根据指定的年、月计算当月所含天数。
intGetMaxDay(intyear,intmonth)
{
intmaxday=0;
if(month>=1&&month<=12)
{
if(month==2)
{
if(year%4==0)
{
if(year%100==0)
{
if(year%400==0)
maxday=29;
else
maxday=28;
}elsemaxday=29;
}
else
maxday=28;
}
else
{
if(month==4||month==6||month==9||month==11)maxday=30;
else
maxday=31;
}
returnmaxday;
}
[问题1](4分)
请画出以上代码的控制流图。
[问题2](3分)
请计算上述控制流图的环路复杂度V(G)。
[问题3](8分)
假设year的取值范围是1000案例分析:
试题一
用例编号
year取值
month取值
maxday预期结果
1
1001〜2000之间任意整数
[1,12]之外的任意整数
0
2
1001〜2000之间不能被4整除的任意整数,
如1001、1002、1003等
2
28
3
1001〜2000之间能被4整除但不能被100整除的任意整数,如1004、1008、1012、
1016等
2
29
4
1001〜2000之间能被100整除但不能被400整除的任意整数,如1100、1300、1400、
1500、1700、1800、1900
2
28
5
1001〜2000之间能被400整除的任意整数,
如1200、1600、2000
2
29
6
1001〜2000之间的任意整数
1、3、5、7、8、10、12中的
31
任意一个
7
1001〜2000之间的任意整数
4、6、9、11中的任意一个
30
4、2008试题四(10分)(白盒测试之分支(判定)覆盖)
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
[说明]
以下代码由C语言书写,在输入三个整数后,能够输出最大数和最小数。
intmain(void)
{
inta,b,c,max,min;
printf("inputthreenumbers:
");
scanf(