资源描述
软件质量保证与测试 复习题
类型:
一、单项选择题 (共20小题,20%)
二、判断题(共20小题,20%)
三、简答题(共5小题,30%)
四、综合题(共2题,30%)
复习题:
一、单项选择题
1、软件测试的目的( )
A. 避免软件开发中出现的错误 B. 发现软件开发中出现的错误
C. 尽可能发现并排除软件中潜藏的错误,提高软件的可靠性
D. 修改软件中出现的错误
2、软件测试是采用( )执行软件的活动
A.测试用例 B.输入数据 C.测试环境 D.输入条件
3、导致软件缺陷的最大原因是( )
A.软件需求说明书 B.设计方案 C.编码 D.维护
4、在下列描述中,关于一个软件缺陷状态完整变化的错误描述是( )
A.打开——修复——关闭 B.打开——关闭
C.打开——保留 D.激活——修复——重新打开
5、在下列描述中,关于测试与调试的说法错误的是( )
A.测试是显示错误的行为;而调试是推理的过程
B.测试显示开发人员的错误。调试是开发人员为自己辩护
C.测试能预期和可控。调试需要想象、经验和思考
D.测试必须在详细设计已经完成的情况下才能开始;没有详细设计的信息调试不可能进行
6、某次程序调试没有出现预计的结果,下列( )不可能是导致出错的原因
A.变量没有初始化 B.编写的语句书写格式不规范
C.循环控制出错 D.代码输入有误
7、软件缺陷修复的代价最高的阶段为( )
A.发布阶段 B.需求阶段 C.设计阶段 D.编码阶段
8、不属于逻辑覆盖方法的是( )
A.组合覆盖 B.判定覆盖 C.条件覆盖 D.接口覆盖
9、( )是选择若干个测试用例,运行被测程序,使得程序中的每个可执行语句至少执行一次
A.条件覆盖 B.组合覆盖 C.判定覆盖 D.语句覆盖
10、( )是设计足够多的测试用例,使得程序中每个判定包含的每个条件的所有情况(真/假)至少出现一次,并且每个判定本身的判定结果(真/假)也至少出现一次
A.判定-条件覆盖 B..组合覆盖 C.判定覆盖 D.条件覆盖
11、软件缺陷修复的代价最高的阶段为( )
A.发布阶段 B.需求阶段 C.设计阶段 D.编码阶段
12、下列( )是关于软件缺陷的描述。
A.导致软件包含故障的人的行为 B.产品的异常情况
C.引起一个功能部件不能完成所要求的功能的一种意外情况
D.功能部件执行其规定功能的能力丧失
13、软件测试是软件质量保证的重要手段,下述哪种测试是软件测试的最基础环节?( )
A.功能测试 B.单元测试 C.结构测试 D.验收测试
14、单元测试的主要任务不包括( )
A.出错处理 B.全局数据结构 C.独立路径 D.模块接口
15、如下图所示的N-S图,至少需要( )个测试用例完成逻辑覆盖。(逻辑覆盖是通过对程序逻辑结构的遍历实现程序的覆盖)
A.12 B.48 C.27 D.18
16、单元测试中用来模拟实现被测模块需调用的其他功能模块的是( )
A.驱动模块 B.桩模块 C.主控模块 D.真实的被调用模块
17、集成测试计划应该在( )阶段末提交
A.需求分析 B.概要设计 C.详细设计 D.单元测试完成
18、下列关于程序效率的描述错误的是( )
A.提高程序的执行速度可以提高程序的效率
B.降低程序占用的存储空间可以提高程序的效率
C.源程序的效率与详细设计阶段确定的算法的效率无关
D.好的程序设计可以提高效率
19、自底向上增量式集成测试中,下面( )描述是正确的
A.测试由桩模块控制 B.最上面的模块最先测试
C.父单元用测试过的子单元测试 D.包含树的深度优先或广度优先遍历过程
20、测试后程序中残存的错误数目与该程序中已发现的错误数目成( )
A.未知 B.反比 C.相等 D.正比
21、针对是否对无效数据进行测试,可以将等价类测试分为( )
1)标准(一般)等价类测试 2)健壮等价类测试 3)弱等价类测试 4)强等价类测试
A.3)4) B.1)2) C.1)3) D.2)4)
22、可作为测试停止的标准是( )
A.当时间用光时 B.执行了所有的测试用例,但没有发现故障
C.当所有缺陷都已经清除时 D.当达到所要求的覆盖时
23、下列描述错误的是( )
A.软件发布后如果发现质量问题,那是软件测试人员的错
B.穷尽测试实际上在一般情况下是不可行的
C.软件测试自动化不是万能的
D.测试能由非开发人员进行,调试必须由开发人员进行。
24、下列( )方法设计出的测试用例发现程序错误的能力最强。
A.等价类划分法 B.场景法 C.边界值分析法 D.决策表法
25、在软件修改之后,再次运行以前为发现错误而执行程序曾用过的测试用例,这种测试称之为( )
A.单元测试 B.集成测试 C.回归测试 D.验收测试
26、( )方法是根据输出对输入的依赖关系来设计测试用例的。
A.边界值分析 B.等价类 C.因果图法 D.错误推测法
27、对于一个含有n个变量的程序,采用基本边界值分析法测试程序会产生( )个测试用例。
A.6n+1 B.5n
C.4n+1 D.7n
28、以下关于测试用例特征的描述错误的是( )
A.最有可能抓住错误的;
B.一定会有重复的、多余的;
C.一组相似测试用例中最有效的;
D.既不是太简单,也不是太复杂。
29、( )是一种关注变量定义赋值点(语句)和引用或使用这些值的点(语句)的结构性测试,主要用作路径测试的真实性检查。
A.基本路径测试 B.逻辑覆盖
C.决策表 D.数据流测试
30、如果F实现一个程序,输入变量x1和x2的边界、区间分别为:a≤x1≤d,区间为[a,b],[b,c],[c,d];e≤x2≤g,区间为[e,f],[f,g];则下列( )图可表示为强健壮等价类测试用例。
x2
a b c d
g
f
e
x1
a b c d
g
f
e
x2
x1
A. B.
C. D.
x2
a b c d
g
f
e
a b c d
g
f
e
x1
x2
二、判断题
1、一个程序中所含有的路径数与程序的复杂程度有着直接的关系 。 ( T )
2、结构性测试是根据软件的规格说明来设计测试用例 。 ( F )
3、错误推测法是根据输出对输入的依赖关系来设计测试用例的 。 ( F )
4、软件缺陷属性包括缺陷标识、缺陷类型、缺陷严重程度、缺陷产生可能性、缺陷优先级、缺陷状态、缺陷起源、缺陷来源、缺陷原因。 ( T )
5、对于一个含有n个变量的程序,采用边界值健壮性测试方法来测试程序会产生6n+1个测试用例。( T )
6、数据流测试是主要用作路径测试的真实性检查。两种形式分别为定义/使用测试、基于程序片的测试 。 ( T )
7、软件只要经过严格严谨的内部测试之后,可以做到没有缺陷 。 ( F )
8、测试用例应由测试输入数据和对应的实际输出结果这两部分组成。 ( F )
9、测试是可以穷尽的。 ( F
10、测试用例时,应当包括合理的输入条件和不合理的输入条件。 ( T )
11、试是在开发的后期才介入,现在测试活动已经扩展到了整个生命周期。 ( T )
12、试以发现错误为目的,现在测试已经扩展到了错误预防的范畴。 ( T )
13、试的生命周期包括测试计划、测试设计、测试执行、缺陷跟踪、测试评估。 ( T )
14、调试从一个已知的条件开始,使用预先定义的过程,有预知的结果;测试从一个未知的条件开始,结束的过程不可预计。 ( F )
测试以已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的仅是程序是否通过测试;调试一般是以不可知的内部条件开始,除统计性调试外,结果是不可预见的。
15、盒测试往往会造成测试用例之间可能存在严重的冗余和未测试的功能漏洞。 ( F )
16、测试自动化是万能的。 ( F )
17、件缺陷可能会被修复,可能会被保留或者标识出来。 ( T )
18、每一个软件项目都有一个最优的测试量。 ( T )
19、黑盒测试往往会造成测试用例之间可能存在严重的冗余和未测试的功能漏洞。 ( T )
20、代码审查工作属于静态测试。 ( T )
21、软件测试是一个过程,包含若干活动,运行软件进行测试只是活动之一。 ( T )
22、回归测试是在软件修改后再次运行以前为查找错误而执行程序曾用过的测试用例。 ( T )
18、测试按照测试层次可以划分成为单元测试、集成测试和系统测试。 ( T )
19、只要能够达到100%的逻辑覆盖率,就可以保证程序的正确性。 ( F )20、只要能够达到100%的逻辑覆盖率,就可以保证程序的正确性。 ( F )
21、 单元测试属于动态测试。 ( T )
22、 验收测试是以最终用户为主的测试。 ( T )
23、 没有发现错误的测试是没有价值的。 ( T )
24、 可以把不合格的开发人员安排做测试。 ( F )
25、永远有缺陷类型会在测试的一个层次上被发现,并且能够在另一个层次上逃避检测。 ( T )
三、简答题
1、测试用例设计的考虑因素有哪些?
2、在测试过程中使用测试用例有什么作用?
3、缺陷描述的的基本规则是什么?
4、优秀的软件测试工程师应具备哪些素质?
答:具有探索精神、具有良好的计算机编程基础、故障排除能手、坚持不懈的精神、具有创新精神和超前意识、追求完美、判断准确、具有整体观念,对细节敏感、团队合作精神,沟通能力
5、黑盒测试与白盒测试各有哪些优缺点,应该如何结合才能解决漏洞和冗余问题?
功能性测试具有两大优点:功能性测试与软件如何实现无关;测试用例开发可以与实现并行进行,因此可以压缩总的项目开发时间。缺点:测试用例之间可能存在严重的冗余,还会有位测试的软件漏洞。结构性测试局限于已经完成的代码行为当中,离代码太近。因此可以结构性测试指标去解决冗余和漏洞问题。如果发现同一条程序路径被多个功能性测试用例遍历,就可以怀疑这种冗余不会发生新的缺陷,如果没有达到一定的DD—路径覆盖,则可知在功能性测试用力中存在漏洞。因此路径测试可以提供作为功能性测试交叉检查的一组指标。
6、 假设程序的输入变量有两个a,b它们的取值范围时10≤a≤50,60≤b≤80,根据单故障假设,写出边界值分析的健壮性测试用例。
(9 70)(10 70)(11 70)(49 70)(50 70)(51 70)
(30 59)(30 60)(30 61)(30 79)(30 80)(30 81)(30 70)
7、什么是白盒测试和黑盒测试,并给出黑盒测试常用的方法、
白盒测试时已知内部结构和内部特性,测试者根据内部结构老设计测试用例进行测试。
黑盒测试不考虑程序内部结构和内部特性,测试者只知道程序输入和输出之间的关系和程序的功能的情况下,依靠能够反这一关系和程序功能需求规格说明书,来确定测试用例和推断测试结果的正确性。黑盒测试方法有等价类划分法,边界值分析法,错误推测法,因果图法,功能图法。
8、试描述测试层次与传统开发V型瀑布模型的对应图。
9、请分别叙述自动化测试工具WinRunner、LoadRunner和QTP各自的特点。
10、为什么说软件测试是软件开发中不可缺少的重要一环,但不是软件质量保证的安全网?
① 软件测试是软件开发中不可缺少的重要一环,原因是:
· 测试的工作量约占整个项目开发工作量的40%左右,几乎一半。如果是关系到人的生命安全的软件,测试的工作量还要成倍增加。
· 软件测试代表了需求分析、设计、编码的最终复审。
② 软件测试不是软件质量保证的安全网,因为软件测试只能发现错误,不能保证没有错误。
11、测试计划编写6要素?
Why --- 为什么要进行这些测试
What --- 测试那些方面,不同阶段的工作内容
When --- 测试不同阶段的起止时间
Where --- 相应文档,缺陷的存放位置,测试环境等
Who --- 项目有关人员组成,安排那些测试人员进行测试
How --- 如何去做,使用那些测试工具以及测试方法进行测试
12、软件测试的过程是什么?
软件测试是一个规则的过程,包括测试设计、测试执行以及测试结果比较等。
① 测试设计:根据软件开发各阶段的文档资料和程序的内部结构,利用各种设计测试用例技术精心设计测试用例。
② 测试执行:利用这些测试用例执行程序,得到测试结果。
③ 测试结果比较:将预期的结果与实际测试结果进行比较,如果二者不符合,对于出现的错误进行纠错,并修改相应文档。修改后的程序还要进行再次测试,直到满意为止。如果测试发现不了错误,可能由于测试配置考虑不周到,应考虑重新制定测试方案,设计测试用例。
四、综合题
1、某城市电话号码由三部分组成,分别是:
地区码:空白或四位数字;
前缀:非0或1开头的四位数字;
后缀:四位数字。
假设被测程序接受符合上述规定的电话号码,拒绝所有不符合规定的电话号码,使用等价类划分方法进行测试用例设计。
步骤1:划分所有等价类,为等价类标号。
表7.12 电话号码等价类划分表
输入
有效等价类
等价类编号
无效等价类
等价类编号
地区码
空白
1
有非数字字符
3
四位有效数字
2
少于4位数字字符
4
多于4位数字字符
5
前缀
非0或1开头的四位数字
6
有非数字字符
7
少于4位数字字符
8
多于4位数字字符
9
0开头的4位数字
10
1开头的4位数字
11
后缀
四位数字
12
有非数字字符
13
少于4位数字字符
14
多于4位数字字符
15
步骤2:根据等价类划分表,设计测试用例覆盖有效等价类,如表7.13所示。
表7.13 有效等价类测试用例
用例编号
输入
覆盖有效等价类编号
地区码
前缀
后缀
CASE1
8632
3678
1, 6, 12
CASE2
0411
8631
8357
2, 6, 12
步骤3:根据无效等价类划分表,设计测试用例覆盖无效等价类,如表7.14所示。
表7.14 无效等价类测试用例
用例编号
输入
覆盖无效等价类编号
地区码
前缀
后缀
CASE1
041A
8632
3678
3
CASE2
041
8632
3678
4
CASE3
04111
8632
3678
5
CASE4
0411
A632
3678
7
CASE5
0411
863
3678
8
CASE6
0411
86321
3678
9
CASE7
0411
0632
3678
10
CASE8
0411
1632
3678
11
CASE9
0411
8632
A678
13
CASE10
0411
8632
678
14
CASE11
0411
8632
67890
15
2针对下列源程序请采用6种逻辑覆盖(语句覆盖、判定覆盖、条件覆盖、条件判定覆盖、条件组合覆盖、路径覆盖)
#include<stdio.h>
int main()
{
float A,B,X;
printf("请输入A,B,X:");
scanf("%f%f%f",&A,&B,&X);
if((A>1)&&(B==0))
X=X/A;
if((A==2)||(X>1))
X=X+1;
printf("%f\n",X);
return 0;
}要求:
1、绘制程序流程图(或控制流程图)
2、设计测试用例(填在下列表中)
表2-1-1语句覆盖测试用例表
用例编号
覆盖标准
测试用例
覆盖路径
预期输出
实际输出
1
语句覆盖
A=2,B=0,X=3
a--c--e
2.500000
见3、实际输出情况(以下同)
表2-1-2判定覆盖测试用例表
用例编号
覆盖标准
测试用例
覆盖路径
预期输出
实际输出
1
判定覆盖
A=3,B=0,X=1
a—c—d
2
判定覆盖
A=2,B=1,X=4
a—b—c
表2-1-3条件覆盖测试用例表
用例编号
覆盖标准
测试用例
覆盖条件
预期输出
实际输出
1
条件覆盖
A=2,B=1,X=4
(A>1),(B!=0)、(A==2)、(X>1)
2
条件覆盖
A=-1,B=0,X=1
(A<=1),(B==0)、(A!=2)、(X<=1
表2-1-4条件判定覆盖测试用例表
用例编号
覆盖标准
测试用例
覆盖路径
覆盖条件
预期输出
实际输出
1
条件判定覆盖
A=2,B=0,X=4
a—c—e
(A>1)、(B==0)、(A==2)、(X>1)
2
条件判定覆盖
a—b--d
(A<=1)、(B!=0)、(A!=2)、(X<=1)
表2-1-5条件组合覆盖测试用例表
用例编号
覆盖标准
测试用例
覆盖条件组合
预期输出
实际输出
1
条件组合覆盖
A=2,B=0,X=4
((A>1)&&(B==0))、((A==2)||(X>1))
2
条件组合覆盖
A=2,B=1,X=1
((A>1)&&(B!=0))、((A==2)||(X<=1))
3
条件组合覆盖
A=1,B=0,X=2
((A<=1)&&(B==0))、((A!=2)||(X>1))
4
条件组合覆盖
A=1,B=1,X=1
((A<=1)&&(B!=0))、((A!=2)||(X<=1))
表2-1-6路径覆盖测试用例表
用例编号
覆盖标准
测试用例
覆盖路径
预期输出
实际输出
1
路径覆盖
A=1,B=1,X=1
a—b--d
2
A=1,B=1,X=2
a—b—c
3
A=3,B=0,X=1
a—c--d
4
A=2,B=0,X=4
a—c--e
精心整理
展开阅读全文