测试实验题目Word格式文档下载.docx
《测试实验题目Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《测试实验题目Word格式文档下载.docx(23页珍藏版)》请在冰豆网上搜索。
必须如何"
的条件的情况下,可确立一个有效等价类和多个无效等价类;
4)在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类;
5)在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类;
6)在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类和多个无效等价类;
二、黑盒用例设计题
1.有一个小程序,能够求出三个在0到9999间整数中的最大者,请分别用边界值分析和健壮性测试方法设计测试用例。
因三个数在0-9999之间,因此可以划分为一个有效等价类和两个无效等价类
(X1,X2,X3)<
0<
(X1,X2,X3)<
9999
(X1,X2,X3)>
根据数值等价类设计测试用例:
用例序号
测试用例
应产生行为
1
输入-2
程序必须能判断输入的数越界并告知用户
2
输入5000
程序必须能接受,输入并运行正常
3
输入9997
4
输入10000
边界值测试
1.输入上述
2.功能测试
X1>
X2
X2>
X3
X2=X3
X2<
X3X1>
X3>
X1=X3X1=X3>
X1<
X3X3>
X1=X2
X1=X2>
X1=X2=X3
X1=X2<
X3X3<
X1=X3X3=X1<
X3X1<
X3<
正常运行
最大值
321
是
322
312
323
213
331
333
223
231
121
132
233
123
2.假定一台ATM机允许提取增量为50元,总金额从100到2000(包含2000元)不等的现金。
请结合等价类方法和边界值分析进行测试。
等价类划分:
有效等价类100<
=x<
=2000(x为50的倍数)
无效等价类x<
100、x>
2000、x不是50的倍数
用例编号
输入数据
预期结果
一次取0元
提取失败
一次取50元
系统提示“最少提取100元”
一次取100元
提取成功
一次性取1950元
5
一次取2000元
6
一次取20元
7
一次性取2100
系统提示“一天最多取2000元”
8
取两次:
1000+1000=2000
9
取五次:
100+100+100+100+100=500
10
ATM余额不足
友好提示“ATM机余额不足”用户的提款取消
11
卡内余额不足
友好提示“卡内余额不足”用户的提款取消
12
取款过程中机器出现故障
友好提示“机器故障”用户的提款取消
13
卡被吞掉
友好提示“请和工作人员联系”用户的提款取消
3.程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足:
1≤month≤12、1≤day≤31、1900≤year≤2050。
),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天(第三天)的日期。
例如,输入为2005年11月29日,则该程序的输出为2005年12月1日。
请用等价类测试和边界测试法设计测试用例。
1.用边界值测试方法设计测试用例
1.用健壮性测试法设计测试用例,按照下列步骤进行:
(1)分析各变量的取值
健壮性测试时,各变量分别取:
略小于最小值、最小值、略高于最小值、正常值、略低于最大值、最大值和略大于最大值。
month:
-1,1,2,6,11,12,13;
day:
-1,1,2,15,30,31,32
year:
1899,1900,1901,1975,2049,2050,2051;
(2)测试用例数
有n个变量的程序,其边界值分析会产生6n+1个测试用例。
这里有3个变量,因此会产生19个测试用例。
2.设计测试用例
表1-1NextDate函数测试用例
预期输出
mouth
day
year
15
1899
year超出[1900,2050]
1900
1900.6.17
1901
1901.6.17
1975
1975.6.17
2049
2049.6.17
2050
2050.6.17
2051
-1
day超出[1…31]
1975.6.3
1975.6.4
30
1975.7.2
31
输入日期超界
32
14
Mouth超出[1…12]
1975.1.17
16
1975.2.17
17
1975.11.17
18
1975.12.17
19
4.假设商店货品价格(R)都不大于100元(且为整数),若顾客付款(P)在100元内,现有一个程序能在每位顾客付款后给出找零钱的最佳组合(找给顾客货币张数最少)。
假定此商店的货币面值只包括:
50元(N50)、10元(N10)、5元(N5)、1元(N1)四种。
请结合等价类划分法和边界值分析法为上述程序设计出相应的测试用例。
一、分析输入的情形。
R>
100
0<
R<
=100
R<
=0
P>
R<
=P<
=100
P<
R
二、分析输出情形。
N50=1
N50=0
4>
=N10>
=1
N10=0
N5=1
N5=0
=N1>
N1=0
三、由上述之输入/输出条件组合出可能的情形,为满足以上之各种情形,测试资料设计。
输入
输出
商品价格
付款
找零
结果
顾客付款金额
R>
100
无效
101
=0
=100
P>
P<
R
99
=P<
N50=1
成功
50
N10=4,N5=1,N1=4
51
N10=1
90
N5=1,N1=4
91
N5=1
95
N1=4
96
N1=1
5.某城市电话号码由三部分组成,分别是:
地区码——空白或4位数字;
前缀——为三位数字,但不能“0”,“1”开头;
后缀——4位数字。
假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。
请写出每个输入条件的有效等价类和无效等价类。
输入条件
有效等价类
编号
无效等价类
地区码
空白
有非数字字符
四位数
少于四位数字
多于4位数字
前缀
200-999
起始位为’0’
起始位为’1’
少于3位数字
多于3位数字
后缀
4位数字
少于4位数字
6.某程序规定:
“…对功率大于50马力的机器、维修记录不全或已运行10年以上的机器,应给予优先的维修处理…”。
这里假定:
“维修记录不全”和“优先维修处理”均已在别处有更严格的定义。
请建立判定表。
根据问题中描述的输入条件和输出结果,列出所有的条件桩和动作桩。
其中条件桩有三项:
1)功率大于50马力吗?
2)维修记录不全吗?
3)运行超过10年吗?
动作桩有两项:
1)进行优先处理;
2)作其他处理;
判定表如下表所示:
条
件
功率大于50马力吗?
Y
N
维修记录不全吗?
运行超过10年吗?
动
作
进行优先处理
作其他处理
7.某公司招聘人员,其要求为:
学历:
本科及以上;
专业:
计算机、通信、自动化;
年龄:
22-30岁。
请划分出各条件的有效等价类和无效等价类。
学历的等价类:
A1={本科,硕士,博士},
A2={专科,高中,初中,小学,无}
专业的等价类:
B1={计算机、通信、自动化},B2={其他}
年龄的等价类:
C1={22-30岁},C2={小于22岁},C3={大于30岁}
8.某个软件的规格说明中包含了下面的要求:
第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文字的修改。
但如果第一列字符不正确,则给出信息L,如果第二列字符非数字,则给出信息M。
请用基于决策表的测试方法进行测试,并设计测试用例覆盖每一种情况。
输入条件:
第一列字符:
{A},{B},{其他};
第二列字符:
{数字},{其他}
动作:
修改文件,给出L,给出M。
(6分)
决策表如下表所示:
条件
第一列
A
B
其他
第二列
数字
动作
修改文件
√
给出L
给出M
A6
B2
M1
A!
B%
V+
三、简答题
1.请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。
根据不同的测试阶段,测试可以分为单元测试、集成测试、系统测试和验收测试。
体现了测试由小到大、由内至外、循序渐进的测试过程和分而治之的思想。
单元测试的粒度最小,一般由开发小组采用白盒方式来测试,主要测试单元是否符合“设计”。
集成测试界于单元测试和系统测试之间,起到“桥梁作用”,一般由开发小组采用白盒加黑盒的方式来测试,既验证“设计”,又验证“需求”。
系统测试的粒度最大,一般由独立测试小组采用黑盒方式来测试,主要测试系统是否符合“需求规格说明书”。
验收测试与系统测试相似,主要区别是测试人员不同,验收测试由用户执行。
2.什么是白盒测试?
白盒测试主要采用的技术有哪些?
白盒测试:
测试者了解被测程序的内部结构和处理过程,对程序的所有逻辑路径进行测试,在不同点检查程序状态,确定实际状态与预期状态是否一致。
白盒测试主要采用的技术有:
路径测试技术、事务处理流程技术和基于逻辑的测试技术。
3.白盒测试有那几种方法?
并简单描述各种方法的特点。
白盒测试的测试方法有逻辑覆盖法和基本路径覆盖法,逻辑覆盖法分为语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。
逻辑覆盖法:
是通过对程序逻辑结构的遍历实现程序的覆盖。
1)、语句覆盖:
就是选择足够的测试用例,使得程序中的可执行语句至少执行一次
2)、判定覆盖:
就是执行足够的测试用例,使得程序中的每个分支都至少执行一次。
3)、条件覆盖:
执行足够的测试用例,使程序每个判定的每个条件的所有可能至少执行一次。
4)、判定/条件覆盖:
执行足够的测试用例,使得判定中每个条件的所有可能至少出现一次,同时每个判定本身的判定结果也至少出现一次。
5)、条件组合覆盖:
执行足够的测试用例,使得每个判定中条件的所有可能组合至少出现一次。
6)、路径覆盖:
执行足够的测试用例,要求覆盖程序中所有可能的路径
4.常用的逻辑覆盖测试方法有哪几种?
并简单描述各种方法的目的。
就是选择足够的测试用例,使程序中的每个可执行语句至少执行一次。
就是执行足够的测试用例,使得程序中的每个判定的"
true"
和"
false"
值都至少执行一次,这种测试也称为“分支测试”。
执行足够的测试用例,使程序每个判定中的每个条件的"
值至少执行一次。
执行足够的测试用例,使得每个判定中条件的各种可能组合至少出现一次。
5.逻辑覆盖中几种主要覆盖的含义?
白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。
逻辑覆盖包含多种:
语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖和路径覆盖。
语句覆盖:
就是设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。
这里的“若干个”,意味着使用测试用例越少越好。
判定覆盖:
有时也称分支覆盖,就是指设计若干测试用例,运行被测程序,使得每个判定的取真分支和取假分支至少经历一次。
条件覆盖:
设计足够多的测试用例,使得每一判定语句中每个逻辑条件的可能取值至少满足一次。
判定条件覆盖:
设计足够多的测试用例,使得判定中的每个条件的所有可能(真/假)至少出现一次,并且每个判定本身的判定结果也至少出现一次。
条件组合覆盖:
也称多条件覆盖,设计足够多的测试用例,使得每个判定中条件的各种可能组合都至少出现一次(以数轴形式划分区域,提取交集,建立最少的测试用例)。
路径覆盖:
路径测试就是设计足够的测试用例,覆盖程序中所有可能的路径。
路径覆盖是覆盖率最高的一种覆盖技术。
四、白盒用例设计题
1.使用逻辑覆盖测试方法测试以下程序段:
voidDoWork(intx,inty,intz)
{
1
intk=0,j=0;
2
if((x>
3)&
&
(z<
10)){
4
k=x*y-1;
5
j=sqrt(k);
6
}
7
if((x==4)||(y>
5)){
8
j=x*y+10;
9}
10
j=j%3;
11
说明:
程序段中每行开头的数字(1~10)是对每条语句的编号。
(1)画出程序的控制流图(用题中给出的语句编号表示)。
(2)分别以语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖方法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)。
(1)
(2)
语句覆盖
取x=4y=5
z=9执行路径:
9
判定覆盖
取x=4y=5
124567891011
x=5
y=5
z=11执行路径:
条件覆盖取x=4
910
判定/条件覆盖取x=4
y=6
z=5执行路径:
x=3
组合覆盖取x=4
x=4
z=15执行路径:
710
路径覆盖
取x=4y=5
2.以下代码由java语言书写,用于判断闰年。
请按要求回答问题。
publicbooleanisLeap(intyear){
booleanleap;
1
if(year%4==0){2
if(year%100==0){3
if(year%400==0){4
leap=true;
5
}else{6
leap=false;
7
}
}else{8
9
}else{10
11
}
returnleap;
12
(1)请画出以上代码的控制流图
(2)请计算上述控制流图的圈复杂度V(G)(独立线性路径数)
(3)假设输入的取值范围是0<
year<
2010,请使用基本路径测试法为变量year设计测试用例,使其满足基本路径覆盖的要求。
579原来的箭头去掉换成图中的无箭头的
V(G)=8-5+1=4
独立线性路径数:
圈复杂度的计算方法很简单,计算公式为:
V(G)=e-n+2。
其中,e表示控制流图中边的数量,n表示控制流图中节点的数量。
其实,圈复杂度的计算还有更直观的方法,因为圈复杂度所反映的是“判定条件”的数量,所以圈复杂度实际上就是等于判定节点的数量再加上1,也即控制流图的区域数,对应的计算公式为:
V(G)=区域数=判定节点数+1。
V(G)=3+1=4
或V(G)=14-12+2=4
测试用例:
用例1:
year是0~2010之间不能被4整除的整数,如1、13、102、2001等(2分)。
用例2:
year是0~2010之间能被4整除但不能被100整除的整数,如4、16、160、2004等(2分)。
用例3:
year是0~2010之间能被100整除但不能被400整除的整数,如100、1500、1700、1900(2分)。
用例4:
year是0~2010之间能被400整除的整数,如400