计算机四级软件测试工程师真题(含答案解析)
计算机四级软件测试工程师真题
一、选择题
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。
1、以下关于软件质量属性的说法中,错误的是
A) 软件的功能性是指当软件在指定条件下使用时,软件产品满足明确和隐含的功能要求的能力
B) 软件的可维护性是指软件产品纠正错误、改进功能或适应环境、需求和功能规格说明的变化可被修改的能力
C) 软件的性能是指在指定条件下使用时,软件产品维持规定的性能水平的能力
D) 软件的可移植性是指软件产品从一种环境迁移到另外一种环境的能力
2、以下的说法中不属于测试目的的是
A) 测试是为了证明程序有错
B) 测试是为了证明程序无错
C) 测试就是评价一个程序和系统的特性或能力,并确定它是否达到预期的结果
D) 测试能给使用者建立一种信心,确信程序能够按预期的设想运行
3、以下不属于软件设计阶段测试的内容是
A) 在所有的设计层次跟踪需求,看设计是否满足需求
B) 从系统环境要求和程序执行性能角度,看设计是否可行
C) 检查设计文档中所有可能的错误条件,看对这些错误的处理是否合适
D) 执行程序的评估工作,以分析程序是否对设计说明做了正确翻译
4、以下不属于发布测试的内容是
A) 产品回归测试 B) 产品功能测试
C) 产品性能测试 D) 产品安装测试
5、不会造成比较错误的情况是
A) 由于存在舍入误差可能导致浮点数运算不精确
B) 使用整数除法造成表达式x/2*2==x不成立(假定x是整数)
C) 不同数据类型的变量之间进行比较
D) 部分变量定义后未使用
6、代码走查小组的成员不包括
A) 测试员 B) 负责维护该程序的程序员
C) 最终用户 D) 秘书或记录员
7、有一个判断语句
if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z') printf("This is a letter!\n");
else printf("This is not a letter!\n");
为实现路径覆盖,需要设计的测试用例个数至少应为
A) 3 B) 5
C) 6 D) 2
8、以下叙述中不属于单元测试测试用例设计所关注内容的是
A) 被测单元的输入 B) 程序的运行环境
C) 该测试用例实际测试的代码 D) 测试用例的期望输出结果
9、基于分解的集成策略不包括
A) 大突击集成 B) MM—路径的增量式集成
C) 自顶向下的增量式集成 D) 自底向上的增量式集成
10、由软件的多个用户在一个或多个用户的实际使用环境下进行的,开发者通常不在测试现场的测试叫做
A) 接受测试 B) α测试
C) β测试 D) 6α测试
11、以下指标中哪个是衡量软件性能的指标
A) 响应时间 B) 故障修复时间
C) 无故障运行时间 D) 编译花费时间
12、以下关于Web应用软件测试的说法中,正确的是
A) 浏览器兼容性测试是Web应用软件业务层测试的一项重要内容
B) 表单测试是Web应用软件兼容性测试的一项重要内容
C) 数据完整性测试是Web应用软件数据层测试的一项重要内容
D) 链接测试是Web应用软件安全性测试的一项重要内容
13、以下哪个目标不是软件性能测试的目标
A) 检测软件的安全控制特性是否工作得正确
B) 发现压力下软件功能的缺陷
C) 检验软件的最大负载
D) 确定软件最大建议用户数
14、以下关于Web应用软件测试的说法中,错误的是
A) 客户端内容的安全性是Web应用软件安全性测试关注的一项内容
B) 对Web应用软件进行性能测试时,通常需要进行压力测试
C) 在Web应用软件的分层测试策略中,除了对每一层进行测试,还需要对层间的集成进行测试
D) Web应用软件的功能测试可以只关注服务器端程序,而不必关注客户端程序
15、以下哪一项属于软件可靠性测试关注的内容
A) 分析测试用例的分支覆盖率
B) 检测软件的安全漏洞
C) 设定软件的运行剖面
D) 分析软件的容错能力
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、以下有关测试过程质量控制的描述中,错误的是
A) 测试需求捕获需在测试策划活动中完成,后期不能进行重新获取
B) 测试设计与实现应完整覆盖测试需求分析结果
C) 对测试过程的度量和分析是测试过程质量控制的重要手段
D) 软件测试不可能解决软件系统中所有缺陷,若评估剩余软件缺陷对软件质量影响较轻,则可考虑结束测试
22、以下有关测试活动依据和工作产品的描述中,错误的是
A) 测试策划活动依据测试合同要求和软件需求开展
B) 依据测试结果即可完成测试总结
C) 测试执行活动中将依据测试计划任务安排,执行相应的测试用例集合,并记录测试结果
D) 测试用例是测试设计与实现活动的主要工作产品
23、以下有关自动化测试基本结构的说法中,错误的是
A) 文件服务器用于存放程序软件包和测试文件包
B) 数据库服务器用于存储测试用例和测试结果
C) 运行环境用于执行测试,由一组测试用服务器和PC组成
D) 控制服务器用于测试执行调度,从文件服务器读取测试用例,向测试环境中的代理发布命令
24、以下说法中错误的是
A) 测试用例应有唯一的名称和标识符
B) 测试用例应给出测试输入和测试结果
C) 测试用例需简要描述测试的对象、目的和采用的测试方法
D) 测试用例要说明测试所依据的内容来源
25、黑盒测试方法不包括
A) 程序变异法 B) 边界值分析法
C) 正交测试法 D) 功能分解法
二、论述题
A公司计划为某市地铁开发一个自动售票系统,系统的主要要求如下:
系统主界面显示地铁的线路及各目的地车站名。当乘客选定某一目的地车站后,系统弹出一个对话框,显示票价。当乘客按“取消”后可回到主界面;否则当乘客投入钱币后,系统进行判断:
(1)投入钱币与票价相等,系统出一张车票,显示票面金额对话框,回到主界面。
(2)投入钱币超出票价,系统计算差额,出一张车票,退回多余钱币,显示票面金额及退回金额对话框,回到主界面。
(3)投入钱币小于票价,且系统计时不超过10秒,继续等待投入钱币:
☆如果累计投币等于票价,转到(1)。
☆如果累计投币超出票价,转到(2)。
☆如果乘客没有再投币,系统计时超过10秒,系统退回所投钱币,显示投币金额不够对话框,回到主界面。
请完成下列工作:
1、画出描述以上处理流程的状态图。
2、根据该状态图设计基本路径覆盖的测试用例。
2、QESuite Web Version 1.0中,已知某安全邮件系统测试项目的部分信息如下:
●测试版本:总计3个测试版本,按日期排序分别为SMail1.0_110409,SMail1.0_110419,SMail1.0_110429。
●功能分类视图中部分待测区域及人员分配定义如下表所示:
功能区域 |
功能区域 |
测试人员 |
开发人员 |
功能 |
收邮件 |
李晓军 |
郑 勇 |
发邮件 |
李小青 |
郑 勇 |
|
…… |
…… |
…… |
|
邮箱设置 |
金 燕 |
张 成 |
|
…… |
…… |
…… |
…… |
下表是功能区域“功能/邮箱设置”下某一个软件问题的部分操作历史信息,请依据QESuite Web version 1.0的软件问题生命周期定义和题中提供的相关人员分配和测试版本信息,且假设已知“操作后的问题状态”均正确,请找出下表中的错误并说明理由。
操作序号 |
操作者 |
执行操作 |
操作后的问题状态 |
测试版本 |
…… |
…… |
…… |
…… |
…… |
2 |
郑 勇 |
校验/校验 |
打开/再现 |
SMail1.0_110409 |
3 |
张 成 |
修复/修复 |
待验/修复 |
SMail1.0_110419 |
4 |
金 燕 |
验证/同意 |
打开/修复失败 |
SMail1.0_110419 |
5 |
张 成 |
修复/不是问题 |
待验/不是问题 |
SMail1.0_110419 |
6 |
金 燕 |
验证/不同意 |
解决/不是问题 |
SMail1.0_110419 |
7 |
金 燕 |
打开/重新打开 |
打开/再现 |
SMail1.0_110429 |
…… |
…… |
…… |
…… |
…… |
已知计算个人所得税的C源程序如下:
/*sds.c*/
double sds(double y)
{
double x;
if(y<=2000) x=0;
else if(y<=3600)
x=(y-2000)*0.05;
else if(y<=6600)
x=sds(3600)+(y-3600)*0.1;
else if(y<=21600)
x=sds(6600)+(y-6600)*0.2;
else if(y<=61600)
x=sds(21600)+(y-21600)*0.3;
else if(y<=101600)
x=sds(61600)+(y-61600)*0.4;
else x=sds(101600)+(y-101600)*0.5;
return(x);
}
#include<stdio.h>
int main()
{
double y,x;
printf("请输入收入:\n");
scanf("%If",&y);
x=sds(y);
printf("应缴个人所得税为:sds(%9.2f)=%9.2f",y,x);
return 0;
}
4、画出程序中函数sds的控制流程图。
5、设计一组测试用例,使该程序所有函数的语句覆盖率和分支覆盖率均能达到100%。如果认为该程序的语句覆盖率或分支覆盖率无法达到100%,需说明为什么。
答案:
一、选择题
1、C
2、B
[解析] Glenford J.Myers 1979提出软件测试是为了证明程序有错,而不是证明程序无错误。3、D 4、A
5、D
[解析] 造成比较错误的情况有:①是否存在不同数据类型的变量间的比较。②是否存在混合比较或不同长度的变量之间的比较。③比较运算符是否正确。④每个布尔表达式所表达的内容是否正确。⑤布尔运算符对象是否是布尔类型。⑥在二进制的计算机上是否存在小数或浮点数之间的比较,四舍五入、二进制表示十进制的近似性,往往会造成误差。⑦对包含多个布尔运算符的表达式,计算次序以及运算符的优先顺序是否正确。③编译器计算布尔表达式的方式是否对程序产生影响。
6、C
[解析] 走查小组一般由3~5人组成,分别为协调人、记录员、测试员、程序员。7、D
8、B
[解析] 单元测试用例设计关注四个关键元素:①被测单元模块初始状态声明。②被测单元的输入。③被测试用例实际测试的代码。④测试用例的期望输出结果。
9、B
[解析] 基于分解的集成策略有:①大突击测试(一次性集成方式);②自顶向下的增量式集成;③自底向上的增量式集成;④混合的增量式(三明治)集成;⑤改进的三明治集成。
10、C
[解析] β测试是由软件的多个用户在一个或多个用户的实际使用环境下进行的测试,开发者通常不在现场。
11、A
[解析] 衡量软件性能的指标有:①响应时间。②系统响应时间和应用延迟时间。③吞吐量。④并发用户数。⑤资源利用率。12、C 13、A
14、D
[解析] Web应用软件的功能测试中进行表单测试时,表单包括Web应用软件的表示层的客户端程序、业务层的服务端器程序和数据层对数据库的访问,所以,功能测试需要关注客户端程序。
15、C
[解析] 软件可靠性测试的步骤有确定可靠性目标、定义软件运行剖面、设计测试用例、实施可靠性测试、分析测试结果。设计软件的运行剖面是软件可靠性关注的内容。
16、C
[解析] 软件的兼容性测试中数据兼容性的内容为:同一软件的不同版本间的数据兼容性,不同软件间的数据兼容性。所以C选项正确。
17、D
[解析] 等价类测试属于黑盒测试,数据流属于白盒测试。面向对象软件有封装、继承、多态、继承与多态的复合等特点。由于一个引用可以绑定多个实现,而具体绑定哪个实现需要在运行时刻才能决定,而且不同的输入会导致在运行时刻绑定不同的实现,即一个引用根据不同的输入调用不同的实现。从语句的覆盖角度,仅仅覆盖该引用所在的语句并不意味完全覆盖各种不同的实现,只有覆盖了该引用调用各种实现的情况才算完全覆盖。所以面向对象软件覆盖率需要考虑多态。
18、A
[解析] 易用性测试中用户界面元素的图标测试主要检查图标是否能够准确反映所对应的功能,以方便用户使用。
19、B
[解析] 高频集成是指在软件开发过程中频繁地将新开发出来的代码与已有的代码集成。20、C
21、A
[解析] 需求的捕获和完善贯穿于软件测试每个阶段。22、B
23、C
[解析] 运行环境:测试实验室或一组测试用的服务器、PC。
24、B
[解析] 测试用例应包括:①唯一的名称和标识符。②测试追踪,说明测试所依据的内容来源。③用例说明,简要描述测试的对象、目的和测试方法。④测试的初始化要求。⑤测试输入。⑥期望的测试结果。⑦评价测试结果的准则。⑧实施测试用例的执行步骤。
25、A
[解析] 程序变异法属于白盒测试。
二、论述题
1、
S1:主界面
S2:显示票价
S3:取消
S4:投币
S5:投入钱币与票价相等
S6:投入钱币小于票价
s7:投入钱币大于票价
S8:显示票价金额及退回金额对话框
S9:显示票面金额对话框
S10:投币不足,系统记数超过10秒,退回所投入的钱币
S11:显示投币金额不够对话框 2、①S1→S2→S3→S1
②S1→S2→S4→S5→S9→S1
③S1→S2→S4→S7→S8→S1
④S1→S2→S4→S6→S5→S9→S1
⑤S1→S2→S4→S6→S7→S8→S1
⑥S1→S2→S4→S6→S10→S11→S1 3、操作序号2:执行操作为:校验/打开。
因为操作后问题状态是:打开/再现,说明确认软件有问题,把它置为打开。
操作序号4:执行操作为:验证/不同意。
因为操作后问题状态是:打开/修复失败,说明验证后对已修复不同意。
操作序号5:执行操作为:不修复/不是问题。
因为操作后问题状态是:待验/不是问题,说明没有修复。
操作序号6:执行操作为:验证/同意。
因为操作后问题状态是:解决/不是问题,说明问题已经解决。
操作序号7:操作者为:郑勇,执行操作为:回归测试。
因为操作序号6中表示问题已经解决,但还需要由发邮件人再次要求回归测试。 4、 5、测试用例:
用例1:输入:y=1000.00;输出:应缴个人所得税sds(1000.00)=0.00
用例2:输入:y=3600.00;输出:应缴个人所得税sds(3600.00)=80.00
用例3:输入:y=6600.00;输出:应缴个人所得税sds(6600.00)=380.00
用例4:输入:y=21600.00;输出:应缴个人所得税sds(21600.00)=3380.00
用例5:输入:y=61600.00;输出:应缴个人所得税sds(61600.00)=15380.00
用例6:输入:y=101600.00;输出:应缴个人所得税sds(101600.00)=31380.00
用例7:输入:y=102000.00;输出:应缴个人所得税sds(102000.00)=31580.00