软件测试复习习题.docx
《软件测试复习习题.docx》由会员分享,可在线阅读,更多相关《软件测试复习习题.docx(14页珍藏版)》请在冰豆网上搜索。
![软件测试复习习题.docx](https://file1.bdocx.com/fileroot1/2023-1/25/6149d423-2134-40f0-9182-52027d35aed8/6149d423-2134-40f0-9182-52027d35aed81.gif)
软件测试复习习题
1.什么是软件测试?
软件测试的目的是什么?
?
使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预算结果与实际结果之间的差别。
1确保产品完成了它所承诺或公布的功能,并且所有用户可以访问到的功能都有明确的书面说明。
2确保产品满足性能和效率的要求3确保产品是健壮的和适应用户环境的
2.简述软件测试的发展和意义。
经验阶段、理论总结阶段、测试技术与测试工具发展阶段
随着计算机技术的迅速发展和广泛深入的应用,软件质量问题已成为开发和使用软件人员关注的焦点。
而由于软件本身的特性,软件中的错误是不开避免的。
不断改进的开发技术和工具只能减少错误的发生,但是却不可能完全避免错误。
因此为了保证软件质量,必须对软件进行测试。
软件测试是软件开发中必不可少的环节,是最有效的排除和防治软件缺陷的手段,是保证软件质量、提高软件可靠性的最重要手段。
3.简述软件测试的六条基本原则。
原则1:
穷尽测试是不可能的。
原则2:
测试工作具有创造性,但很困难。
原则3:
测试旨在防止错误的发生。
原则4:
测试是有风险的。
原则5:
测试需要有计划性。
原则6:
测试需要有独立性。
4.软件测试有何局限性?
输入/状态空间的无限性
故障巧合性
系统缺陷的不确定
5.软件测试和软件开发有何关系?
6.软件测试的生命周期是什么?
各阶段的任务是什么?
计划:
标志测试条件(确定测试什么)和测试的优先级
设计:
设计测试用例(确定怎么测试)
开发:
测试开发(设计脚本、数据等)
执行:
执行测试用例
评估:
将测试结果与预算结果进行比较
7.什么是测试用例?
测试用例有哪些类型?
在软件测试中,我们将测试输入数据的定义和对预期测试结果的描述称为测试用例。
纯数据型测试用例、文件型测试用例、操作序列型测试用例、程序性测试用例。
8.软件测试分为几个步骤?
每一步骤的任务是什么?
9.什么是黑盒测试和白盒测试?
黑盒测试:
黑盒测试又称功能测试、数据驱动测试或基于规格说明的测试,是一种从用户观点出发的测试,被用来证实软件功能的正确性和可操作性。
白盒测试:
白盒测试又称结构测试、逻辑驱动测试或基于程序的测试,用来分析程序的内部结构。
10.什么是回归测试?
回归测试的方法有哪些?
一方面检查错误是否真的修改,另一方面还要检查此错误的修改是否引入新的错误,这就需要将已经测试过的测试用例拿来重新进行测试,这就是回归测试。
方法:
线性方程技术、符号执行技术、路径分析技术、基于程序流图的技术、选择回归测试技术、改错性回归测试、增量性回归测试
11.软件审查有哪些步骤?
审查的内容有哪些?
步骤:
制定计划、预审、准备、审查会、返工、终审
验证是保证软件正确地实现了一些特定功能的一系列活动,即保证软件以正确的方式来做了这个事件。
1.确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程。
2.程序正确性的形式证明,即采用形式理论证明程序符合设计规约规定的过程。
3.评审、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出报告。
确认是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。
即保证软件做了你所期望的事情。
1.静态确认,不在计算机上实际执行程序,通过人工或程序分析来证明软件的正确性。
2.动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题。
12.什么是自动化测试?
自动化测试包括几个阶段?
自动测试就是通过计算机运行来进行测试。
测试需求分析阶段、测试计划阶段、测试方案设计阶段、测试用例实现阶段、测试执行阶段、评估与关闭阶段。
13.黑盒测试的主要方法有哪些?
等价类划分、因果图、正交实验设计法、边值分析、判定表驱动法等
14.边界值选择有几种方法?
五点法:
选择最大值、略低于最大值、正常值、最高于最小值、最小值。
七点法:
选择略大于最大值、最大值、略低于最大值、正常值、略高于最小值、最小值、略低于最小值。
15.针对三角形问题,假设a,b,c3个边的边界都是1~200,应用健壮性测试的方法,基于单缺陷假设,设计边界值测试数据,同时给出每一组数据的预期结果
a={0,1,2,100,199,200,201}
b={0,1,2,100,199,200,201}
c={0,1,2,100,199,200,201}
用例
A
B
C
预期输出
1
100
100
0
非法输入
2
100
100
1
等腰三角形
3
100
100
2
等腰三角形
4
100
100
100
等边三角形
5
100
100
199
等腰三角形
6
100
100
200
非三角形
7
100
100
201
非法输入
8
100
0
100
非法输入
9
100
1
100
等腰三角形
10
100
2
100
等腰三角形
11
100
100
100
等边三角形
12
100
199
100
等腰三角形
13
100
200
100
非三角形
14
100
201
100
非法输入
15
0
100
100
非法输入
16
1
100
100
等腰三角形
17
2
100
100
等腰三角形
18
100
100
100
等边三角形
19
199
100
100
等腰三角形
20
200
100
100
非三角形
21
201
100
100
非法输入
16.写出白盒测试的所有逻辑覆盖准则。
FOSTER的ESTCA覆盖准则
[规则1] 对于ArelB(rel可以是<,=和>)型的分支谓词,应适当地选择A与B的值,使得测试执行到该分支语句时,AB的情况分别出现一次。
[规则2] 对于Arel1C(rel1可以是>或是<,A是变量,C是常量)型的分支谓词,当rel1为<时,应适当地选择A的值,使:
A=C–M(M是距C最小的容器容许正数,若A和C均为整型时,M=1)。
同样,当rel1为>时,应适当地选择A,使:
A=C+M。
[规则3] 对外部输入变量赋值,使其在每一测试用例中均有不同的值与符号,并与同一组测试用例中其它变量的值与符合不一致。
WOODWARD等人的层次LCSAJ覆盖准则
第一层:
语句覆盖
第二层:
分支覆盖
第三层:
LCSAJ覆盖,即程序中每个LCSAJ至少测试一次
第四层:
两两LCSAJ覆盖
…
第n+2层:
每n个首尾相连的LCSAJ组合测试一次。
17.从供选择的答案中选出应填入下面有关软件测试的叙述的()内的正确答案。
软件测试方法可分为黑盒测试和白盒测试两种。
黑盒测试是通过分析程序的(功能)来设计测试用例的方法。
除了测试程序外,它还适用于对(需求分析)阶段的软件文档进行测试。
白盒测试是根据程序的(内部逻辑)来设计测试用例的方法。
除了测试程序外,它也适用于对(软件详细设计)阶段的软件文档进行测试。
白盒法测试程序时常按照给定的覆盖条件选取测试用例。
(判定)覆盖比(语句)覆盖严格,它使得每一个判定的每一条分支至少经历一次。
(判定/条件)覆盖既是判定覆盖,又是条件覆盖,但它不保证使各种条件都能取到所有可能的值。
(多重条件)覆盖比其他条件都要严格,但它不能保证覆盖程序中的每一条路径。
单元测试一般以(白盒法)为主,测试的依据是(模块功能规格说明)
18.画出下列伪代码程序的程序框图,设计语句覆盖和路径覆盖的测试用例。
19.针对图4.36,写出路径表达式(不循环、循环一次);再根据路径表达式计算路径数(不循环、循环一次)。
20.下面是快速排序算法中的一趟划分算法,其中datalist是数据表,它有两个数据成员:
一个是元素类型为Element的数据V,另一个是数组大小n。
算法中用到两个操作:
一是取某元素V[i]的关键码操作getKey(),一是交换两数组的操作Swap()。
ntPartition(datalist&list,intlow,inthigh){
/在区间[low,high]以第一个对象为基础进行一次划分,k为返回基准对象回放位置
ntk=low;Elementpivot=list.V[low];//基准对象
or(inti=low+1;i<=high;i++)//检测整个序列,进行划分
if(list.V[i].getKey()=1)
Swap(list.V[k],list.V[i]);//小于基准的交换到左侧去
Swap(list.V[low],list.V[k]);//将基准对象就位
returnk;//返回基准对象位置
}
(1)试画出它的程序流程图;
2试利用路径覆盖法为它设计足够的测试用例(循环次数限定为0次,1次)。
21.集成测试中自顶向下和自底向上方法有什么区别?
各自用在哪种类型的软件测试中?
自顶向下法:
从顶层控制对象开始,以控制层次的顺序,向被测系统逐次增加构件,以论证系统的稳定性。
应用:
增量式开发、并行软件开发、框架开发。
自底向上法:
从层次的底部向上集成构件,从具有最少的相依性构件开始,按照相依性的次序将构件加入受测试的系统,以证实稳定性。
应用:
在子系统的迭代和增量开发中,支持单位范围内的测试。
重要需求的构件在底层。
22.集成测试有哪些主要的方法?
一次集成、自顶向下集成、自底向上集成、协作集成、基干集成、层次集成、客户/服务器集成、分布服务集成、高频集成、基于调用图集成
23.软件测试是软件质量保证的主要手段之一,测试的费用已超过(软件开发费用)的30%以上。
因此,提高测试的有效性十分重要。
“高产”的测试是指(用少量的测试用例运行程序,发现被测程序尽可能多的错误)。
根据国家标准GB8566-88《计算机软件开发规范》的规定,软件的开发和维护划分为8个阶段,其中,单元测试是在(实现)阶段完成,集成测试的计划是在(概要设计)阶段制定的,确定测试的计划是在(需求分析)阶段制定的。
24.集成测试也叫做(组装测试)或(联合测试)。
通常,在(单元测试)的基础上,将所有模块按照设计要求组装成为系统。
子系统的集成测试特别称为(部件测试),它所做的工作是找出子系统和系统需求规格说明之间的(不一致)。
需求考虑的问题是:
在把各个模块连接起来的时候,穿越模块接口的数据是否会(丢失);一个模块的功能是否会对另一个模块的功能产生不利的影响;各个(子功能)组合起来,能否达到预期的要求的(父功能);(全局数据结构)是否有问题;单个模块的误差累积起来是否会放大。
25.什么是软件的系统测试?
传统的系统测试是指将通过确认测试的软件作为整个基于计算机系统的元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的集成测试和确认测试。
26.安装测试要检验的内容有哪些?
测试目的是什么?
安装测试、卸载测试、文字验证。
目的:
(1)确保该软件在正常情况和异常情况下都能进行安装。
(2)核实软件在安装后可立即正常运行。
27.什么是软件的兼容性测试?
兼容性测试是验证软件之间是否能正确地交互和共享信息,从而确定软件的说明书对硬件环境的描述是否正确、合理。
28.安全性测试的目的是什么?
查找软件自身程序设计中存在的安全隐患,并检查应用程序对非法侵入的防范能力,根据安全指标不同,测试策略也不同,确保软件不会去完成没有预先设计的功能。
30.什么是软件的恢复测试?
恢复测试是测试一个系统从灾难或出错中能否很好地恢复的过程,如遇到系统崩溃、硬件损坏或其他灾难性出错。
31.比较测试和测试的异同。
Alpha测试(α测试)是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,α测试不能由程序员或测试员完成。
Beta测试(β测试)是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。
开发者通常不在测试现场,β测试不能由程序员或测试员完成。
区别:
Alpha测试由开发人员或测试人员在场,可随时记录下错误和使用中出现的问题;
Beta测试开发人员和测试人员都不在场。
32.什么是软件的负载测试?
负载测试是通过改变系统负载方式、增加负载等来发现系统中所存在的性能问题。
负载测试是一种测试方法,可以为压力测试、容量测试所采取。
33.压力测试可以分为哪两种?
可以分为稳定性测试和破坏性测试。
稳定性压力测试是在选定的压力值下,持续运行24小时以上的测试。
破坏性压力测试是通过不断加压的手段,快速造成系统的崩溃或让问题明显地暴露出来。
34.容量测试的目的是什么?
通过测试预先分析出反映软件系统应用特征的某项指标的极限值,系统在其极限状态下没有出现任何软件故障或还能保持主要功能正常运行。
(检查被测系统处理大数据量的能力)
35.什么是软件的文档测试?
需要测试的文档一般分为哪几类?
文档测试是检验样品用户文档的完整性、正确性、一致性、易理解性、易浏览性。
用户文档、开发文档、管理文档。
36.用户界面测试应着重针对哪几方面进行测试?
(1)操作和显示界面与软件需求规格说明所要求的一致性和符合性。
(2)用户界面在非常规操作、误操作、快速操作下的可靠性
(3)对错误命令或非法数据输入的检测能力与提示情况
(4)对错误操作流程的检测与提示
(5)用户界面对所要求界面风格的一致性、友好性
37.软件组织和管理应遵循的十大原则是什么?
(1)开发和测试小组分立,由独立的专门测试机构进行整体测试工作。
(2)在对程序修改之后,要进行回归测试。
(3)尽早和不断地进行软件测试,特别是由小到大的增量测试,这种测试策略应该在整个软件生命周期始终。
(4)测试用例因包括测试输入数据和预期输出结果,要兼顾有效输入与无效的输入,无效的输入条件是指异常的,临界的,可能引起问题变异的输入条件。
(5)充分注意测试中的群集现象,一般来说,测试后程序残存的错误数目和这个程序中已经发现的错误数目或者检出率成正比,可以气概80/20原理对错误群集的程序或模块进行重点测试。
(6)所有的软件测试都应追溯到用户需求。
(7)写测试用例和执行测试用例的人尽量分开。
(8)完全测试是不可能的,测试也无法找出软件潜在的所有缺陷,测试需要终止。
(9)应当对每一个测试结果做出错统计和分析。
(10)妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。
38.什么是测试需求?
软件测试需求是根据程序文件和质量目标对软件测试活动所提的要求,也就是在项目中要测试哪些内容和测试到什么程度。
39.为什么要做测试需求分析?
要成功地完成一个测试项目,必须了解测试的规模、复杂程度以及可能存在的风险,这些都需要通过详细的测试需求来了解。
40.测试需求主要通过哪些途径来收集?
1、与待测软件相关的各种文档资料;2、与客户或系统分析员的沟通;3、业务背景资料;4、正式与非正式的培训;5、其他相关内容
41.测试计划应包含哪些内容?
一般包括测试概要、测试目标、测试范围、测试策略、重点事项、测试配置、人员组织、沟通方式、测试进度、测试标准、发布/提交产物、风险分析等内容。
42.配置主测试环境遵循哪些原则?
1尽可能地模拟真实环境。
2符合软件运行的最低要求,保证能支撑软件正常运行。
3选用比较普及的操作系统和软件平台。
4营造相对简单、独立的测试环境。
5无毒的环境。
43如何管理测试环境?
1设置专门的配置管理员
2记录测试环境管理所需的信息
3.测试环境访问权限的管理
4测试环境的备份和恢复。
5测试数据的获取。
44.什么是测试用例?
测试用例通常是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。
45.测试用例在软件测试中有哪些作用?
1、指导测试的实施。
2、规划测试数据的准备
3、编写测试脚本的”设计规格说明书”
4、评估测试结果的度量基准。
5、分析缺陷的标准
46.测试实施前应确定哪些内容?
(1)测试计划评审通过
(2)测试用例已编写完成,并已通过评审。
(3)测试环境已搭建完毕。
47软件缺陷跟踪管理要达到哪些目标?
1.确保每个被发现的缺陷都能够被解决;这里解决的意思不一定是被修正,也可能是其他处理方式,总之,对每个被发现的Bug的处理方式必须能够在开发组织中达到一致。
2.收集缺陷数据并根据趋势曲线识别测试过程的阶段;决定软件测试过程是否结束有很多种方式,通过缺陷趋势曲线确定测试过程是否结束是常用并且较为有效的一种方式。
48.简述软件测试能力成熟度模型TMM的分级和基本点。
49.什么是测试资产?
什么是配置管理?
测试资产是被质量保证或测试团队开发的任何一种工作产品。
配置管理是通过技术或行政手段对软件产品及其开发过程和生命周期进行控制、规范的一系列措施。
50.测试工具的分类方式有哪些?
请各举几个例子。
分为白盒测试工具、黑盒测试工具、专用测试工具、测试管理工具和测试辅助工具。
51.测试管理工具的作用是什么?
实现测试用例的过程管理,实现测试用例的标准化,提高回归测试的效率和提升测试的质量。
52.结合实际,谈谈你是怎样认识测试自动化的?
节约劳动力...一个产业的改革...一个团队智慧的结晶,社会进步的必然趋势
53.列出常见的WEB压力测试工具。
1.LoadRunner2.WebLoad3.E-TestSuite4.BenchmarkFactory
5.JMeter6.WAS7.ACT8.OpenSTA9.PureLoad
54.为什么说软件测试不能代替软件评审?
两者之间是什么关系?
软件测试使为了保证软件产品的质量,同行评审就是为了保证你软件测试的质量,最终还是为了保证软件产品的质量,毕竟软件测试过程不能发现所有的bug,同行评审是为了更多的发现测试过程中存在的遗漏。
测试是产品高质量的必要非充分条件,软件测试不能决定软件质量。