计算机四级软件测试工程师-11 (总分170, 做题时间90分钟) 一、选择题
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的 1.
关于软件集成测试,下列说法不正确的是______。
A 集成测试的对象包括任意一个软件单元集成到计算机软件系统的组装过程
B 集成测试的对象包括任意一个组装得到的软件系统
C 软件集成测试的目的是检验单元之间、软件单元和已集成的软件系统之间的接口关系
D 软件的集成测试不需要验证已集成软件系统是否符合设计要求 分值: 2 答案:D
[解析] 软件集成测试的目的是检验单元之间、软件单元和已集成的软件系统之间的接口关系,并验证已集成软件系统是否符合设计要求。 2.
一经发现并改正了程序中隐藏的缺陷,然后再重新执行以前发现这个缺陷的测试,查看此缺陷是否重现。这种测试方法被称作______。
SSS_SINGLE_SELSSS_SINGLE_SEL A 增量测试 B 回归测试 C 大突击测试 D 动态测试 分值: 2 答案:B
[解析] 回归测试是指:一经发现并改正了程序中隐藏的缺陷,然后再重新执行以前发现这个缺陷的测试,查看此缺陷是否重现。另外,当对发现的缺陷进行修改之后,执行一系列基准测试,以确认程序的修改有没有对其他部分产生干扰。这也称为是回归测试。 3.
下列关于面向对象中继承机制的陈述,不正确的是______。
A 继承是指一种事物保留了另一种事物的全部特征,并且具有自身的独有性质
B 在面向对象软件中,特殊类(子类)的对象拥有其一般类的全部属性与服务
C 继承支持软件复用但是降低了软件开发效率
SSS_SINGLE_SEL
D 继承性决定了面向对象软件的测试必须考虑继承对测试充分性的影响 分值: 2 答案:C
[解析] 继承是一种事物保留了另一种事物的全部特征,并且具有自身的独有性质。继承是支持软件复用、提高软件开发效率的重要原因之一,所以C选项是错误的,提高软件的复用率只会提高软件的开发效率。 4.
模块是软件中的一个单独的编译单位,而不是一个单独的执行单位。所以在测试时要为模块设计两类附加模块,模拟模块的实际运行环境,这两类模块是______。 SSS_SINGLE_SEL A 桩模块和接口模块 B 驱动模块和接口模块 C 驱动模块和桩模块
D 数据模块和计算模块 分值: 2 答案:C
[解析] 所测试模块与它相关的驱动模块和桩模块共同构成一个“测试环境”,驱动模块和桩模块通常不作为软件产品的一部分交给用户,但是为了进行单元测试必须编写。 5.
下列针对软件测试过程的说法,不正确的是______。
A 软件测试过程是一种抽象的过程
B 软件测试过程用于定义软件测试的流程和方法 C 软件测试过程决定软件的质量
D 软件测试过程直接影响测试结果的准确性和有效性 分值: 2 答案:C
[解析] 软件测试过程是一种抽象的模型,用于定义软件测试的流程和方法。软件开发过程决定软件的质量,软件测试过程质量直接影响测试结果的准确性和有效性。 6.
用户界面一致性的测试目的是______。
A 检查界面能否辅助功能的展现 B 检查同一软件内界面风格是否一致
C 检查软件在完成不同功能时界面的风格是否一致 D 以上都不对 分值: 2
SSS_SINGLE_SELSSS_SINGLE_SEL
答案:C
[解析] Web应用软件对软件的美观有相当程度的要求。用户界面一致性的检测目的是为了检查软件在完成不同功能时界面风格是否一致。 7.
缺陷分析的常用方法有______。
SSS_SINGLE_SEL A 缺陷分布报告 B 缺陷趋势报告 C 缺陷年龄报告
D 以上都是 分值: 2 答案:D
[解析] 软件缺陷评估是评估软件质量的重要途径之一,并且在软件可靠性评估中占重要作用。通常,软件缺陷评估模型假设缺陷呈泊松分布。常见的缺陷分析方法如有:缺陷分布报告,缺陷趋势报告,缺陷年龄报告,测试结果进度报告。对于缺陷分析,常用的主要参数有:状态、优先级、严重性、起源。 8.
功能或性能没有实现,主要功能部分丧失,次要功能完全丧失,或致命的错误生命,这属于软件缺陷级别中的______。
A 致命的缺陷(fatal) B 严重的缺陷(critical) C 一般的缺陷(major)
D 微小的缺陷(minor) 分值: 2 答案:B
[解析] 软件缺陷有四种级别,分别为:(1)致命的:致命的错误,导致系统或者应用程序崩溃、死机、系统悬挂.或者造成数据丢失、主要功能完全丧失;(2)严重的:功能或特性没有实现,主要功能部分丧失,次要功能完全丧失,或致命的错误声明;(3)一般的:这种级别的错误不是很严重,虽然有一些缺陷,但不影响系统和程序的基本使用,功能没有被很好地实现,没有达到预期要求;(4)微小的,无关紧要的小问题,软件仍然可以使用,不影响功能的实现 9.
在面向对象软件的集成测试中,关于程序的系统测试,说法错误的是______。 A 面向对象系统测试的主要目标是测试开发出来的软件是否是问题空间的一个合理解
B 对于系统测试而言,面向对象软件与传统结构化软件并没有本质区别 C 面向对象软件测试技术主要有功能测试和其他系统测试
SSS_SINGLE_SELSSS_SINGLE_SEL
D 面向对象的系统测试,与传统的面向过程的结构化软件测试方法,在类与对象这一块有着本质的区别 分值: 2 答案:D
[解析] 面向对象程序的系统测试的主要目标是测试开发出来的软件是否是问题空间的一个合理解,因此对于系统测试而言,面向对象软件与传统结构化软件并没有本质区别。 10.
如下图所示实例,为了使每个语句都执行一次,程序执行的路径应该为______。 SSS_SINGLE_SEL A ①②④⑥ B ①③④⑥ C ①②⑤⑥ D ①③⑤⑥
分值: 2 答案:D
[解析] 语句覆盖是指选择足够的测试数据,使被测程序中每个语句至少执行一次。上述流程网中一共有四条语句。所以完全的语句覆盖顺序为D选项:①③⑤⑥。 11.
兼容性测试是指______。 A 针对软件对其运行环境的依赖进行测试,以验证软件是否能够在所有期望的环境中运行
B 测试本款软件与其他应用软件是否能在同一操作系统下同时执行 C 检测软件与其他软件是否能正常进行信息的交流和传递
D 以上都不对 分值: 2 答案:A
[解析] 所谓兼容性测试,是指针对软件对其运行环境的依赖进行测试,以验证软件是否能够在所有期望的环境中运行。通常,兼容性测试主要考虑硬件、软件和数据三个方面。 12.
如上图所示实例,以下测试用例哪一组能够满足判定覆盖______。
A (a=2,b=0,x=6)、(a=1,b=0,x=1) B (a=2,b=0,x=4)、(a=3,b=0,x=2) C (a=2,b=2,x=2)、(a=3,b=0,x=6)
SSS_SINGLE_SELSSS_SINGLE_SEL
D (a=2,b=O,x=6)、(a=2,b=0,x=4) 分值: 2 答案:D
[解析] 判定覆盖是指设计若干测试数据,使得程序中每个判定表达式的每个分支都至少执行一次(真假分支均被满足一次)。判定覆盖又称为分支覆盖。上例中A选项的两组测试数据的执行路径分别为1356、1246。B、C、D选项的执行路径都为1356。所以选项A符合判定覆盖的标准 13.
软件测试环境包括______。 SSS_SINGLE_SEL A 测试设计环境 B 测试实施环境 C 测试管理环境
D 以上全部 分值: 2 答案:D
[解析] 测试环境包括测试设计环境、测试实施环境和测试管理环境。 14.
关于Web应用软件的特点描述,错误的是______。
SSS_SINGLE_SEL A 基于无连接协议 B 由内容驱动
C 开发周期较长,演变较慢
D 完全性要求较高 分值: 2 答案:C
[解析] 所谓Web应用软件,就是Browser/Server(B/S)结构的软件,其特点是基于无连接协议,内容驱动,开发周期短,演化频繁,安全性要求高,美观性要求较高。 15.
软件开发过程中必须伴有质量保证活动,而软件测试又是软件质量保证的关键因素。针对下列说法正确的是______。
A 发布出去的软件有质量问题,是软件测试人员的错 B 软件测试技术要求不高,至少比编程容易得多 C 软件测试是测试人员的事,与开发人员无关
D 软件测试阶段发现的错误并不只是在编码阶段产生的,需求和设计阶段也会产生错误 分值: 2 答案:D
SSS_SINGLE_SEL
[解析] 软件测试环节现在已经引起了越来越多人们的注意。但是相对于软件开发而言,对软件测试还是存在很多误区。A、B、C均为错误的认识。而D选项则正确地表明了测试中发现的软件错误的来源,不只在编码阶段,软件开发的各个阶段都会产生错误。 16.
为了更好地完成极限测试,下列不属于在极限测试实施中应注意的方面是______。 A 单元测试用例的生成 B 单元测试工具的使用 C 集成测试桩模块的设计
D 模拟对象的使用 分值: 2 答案:C
[解析] 极限编程采用的是一种迭代的开发方式:整个软件项目由一系列增量式开发组成,在每一轮增量式开发流程中,单元测试和验收测试都是贯穿始终的关键步骤。为了更好地完成极限测试,在实施中需要注意三个方面:单元测试用例的生成,单元测试工具的使用,模拟对象的使用。 17.
测试用例是为了测试而设计的一组数据,在测试之前应精心选择。测试用例主要用来检验程序,因此测试用例应包括______。
A 测试输入数据和与之对应的输出结果 B 测试输入数据和软件产生的效果 C 软件的执行流程和执行结果
D 软件的执行结果和结果分析 分值: 2 答案:A
[解析] 测试用例主要用来检验程序,因此不仅要有测试的输入数据,而且要指明这些输人数据的预期结果。如果对测试输入数据没有给出预期的程序输出结果,那么就缺少了检验实测结果的基准,就有可能把一个似是而非的错误当成正确的结果。 18.
如上图所示实例,以下测试用例哪一组能够满足判定条件覆盖______。
A (a=2,b=0,x=6)、(a=1,b=1,x=1) B (a=8,b=7,x=114)、(a=33,b=50,x=32) C (a=29,b=20,x=25)、(a=3,b=9,x=36) D (a=21,b=20,x=62)、(a=22,b=40,x=24) 分值: 2
SSS_SINGLE_SELSSS_SINGLE_SELSSS_SINGLE_SEL
答案:A
[解析] 判定/条件覆盖是指选取足够多的测试数据,使得判定表达式中的每个条件的所有可能取值至少执行一次,而且每个判定表达式的所有可能的判定结果至少执行一次。上例中A选项的测试用例的执行路径分别为1356、1246。两条判定语句的真假取值分别为T(1)T(2)T(3)T(4),F(1)F(2)F(3)F(4)。所以既满足条件覆盖又满足判定覆盖。其他选项的分析雷同。 19.
下列情况下会考虑使用自动测试的是______。
A 对软件产品的次要部件进行测试 B 所开发的软件产品的需求不稳定
C 需要反复执行的测试,使用不同输入数据值进行反复测试 D 由客户方组织的验收测试 分值: 2 答案:C
[解析] 自动测试的优点就是为了解决重复的人工操作。 20.
测试工作的整体目标是______。
SSS_SINGLE_SELSSS_SINGLE_SEL A 确定测试的任务 B 确定测试所需的各种资源和投入
C 预见可能出现的风险和问题以指导测试的执行
D 以上全部 分值: 2 答案:D
[解析] 测试计划的整体目标是为了确定测试的任务、所需的各种资源和投入、预见可能出现的问题和风险,以指导测试的执行,最终实现测试的目标。 21.
软件可靠性与硬件可靠性的主要区别不包含下列中的______。
SSS_SINGLE_SEL A 唯一性 B 物理退化
C 逻辑复杂性和版本更新
D 使用人员的不同 分值: 2 答案:D
[解析] 软件可靠性与硬件可靠性的区别主要体现在:①唯一性,软件设计出来后,所有副本都是一模一样的;硬件设计出来后,每个按照设计产生的硬件都不可能完全相同。②物理退化,一个正确的硬件器件会因为物理退化在某时刻失效,但正确的软件则不会因为物理退化而发生失效。③逻辑复杂性,软件具
有复杂的内部逻辑,而硬件的内部逻辑则相对简单。④版本更新,硬件的版本更新通常很慢,而软件的版本更新比较频繁。 22.
关于面向对象软件单元测试的说法,错误的是______。
A 面向对象软件中可独立被测试的单元通常是一个类族 B 面向对象软件中可独立被测试的单元也可能是一个独立的类 C 面向对象的单元测试分为方法层次、类层次和类树层次的测试 D 面向对象的单元测试与面向过程的单元测试目的相同 分值: 2 答案:D
[解析] A、B、C选项中关于面向对象软件单元测试的陈述都是正确的,面向对象软件的测试主要包括两方面的内容:检查分析结果是否符合相应面向对象分析方法的要求;检查分析结果是否可以满足软件要求。与面向过程的测试有着不同的测试目的。 23.
下列关于测试团队的说法中,不正确的是______。
A 测试团队的组织方式由测试团队的规模、具体任务和技术来决定 B 如果测试团队规模较大,则测试工程师分为3个层次:初级测试工程师、测试工程师和资深测试工程师
C 建立、组织和管理一支优秀的测试团队是做好软件测试工作的基础,也是最重要的工作之一
D 发现系统的缺陷是测试工作的目的,但不是测试团队工作的核心目标 分值: 2 答案:D
[解析] 建立、组织和管理一支优秀的测试团队是做好软件测试工作的基础,也是最重要的工作之一。A、B、C选项中对测试团队的说法都是正确的。测试的目的是发现系统的缺陷,那发现系统的缺陷必然是测试人员的核心目标。 24.
性能测试主要用于实时系统和嵌入式系统,其目标是______。
A 测试各种资源在超负荷的情况下的运行情况 B 检测系统可以处理目标内确定的数据容量 C 度量系统的性能和预先定义的目标有多大差距 D 验证系统从软件或者硬件失效中恢复的能力 分值: 2 答案:C
SSS_SINGLE_SELSSS_SINGLE_SELSSS_SINGLE_SEL
[解析] 性能测试主要用于实时系统和嵌入式系统,性能测试是指测试软件在集成系统中的运行性能。其目标是度量系统的性能和预先定义的目标有多大差距。性能测试必须要有工具支持。常用的测试用例设计方法有规范导出法。 25.
软件测试的目的是______。 A 软件编写完成以后的后续工作 B 寻找软件缺陷而执行程序的过程 C 使软件能更好工作
D 保证程序能完全正确的被执行 分值: 2 答案:B
[解析] 软件测试的目的是为了尽可能地发现软件的缺陷,而不是证明软件是正确的。从否定测试的角度来说测试是为了发现错误而执行的一个程序或系统的过程。
二、论述题
以下是结构化程序设计方法的设计过程的流程图,请按要求回答问题 SSS_TEXT_QUSTISSS_SINGLE_SEL 1. 请画出该系统以上交互行为的状态图。
分值: 20 其状态图如下图所示,其中各结点及各支路的条件省略。 SSS_TEXT_QUSTI 2. 使用基本路径测试方法确定该状态图的测试路径。
分值: 20 由状态图可以看出:程序中有2个判定结点,故该程序的环路复杂度V(G)=3,所以可以确定3条独立的测试路径,即:
Path1:SO——S1——S2——S5——S7——S8 Path2:SO——S3——S4——S5——S7——S8
Path3:S0——S1——S2——S5——S7——S1——S2——S5——S7——S8 以下是某C程序段及其功能描述,请仔细阅读程序并完成要求 企业发放的奖金根据利润提成,发放规则如下:
利润(Ⅰ)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成
7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成。从键盘输入当月利润Ⅰ,输入应发放奖金总数。 #include #include int main() {
long int gain;
int prizel, prize2, prize4, prize6, prize10,prize=0; puts(\"************************************\"); puts(\"* The program will solve *\"); puts(\" * the problem of prize distribution * \"): puts(\" ************************************\"); puts(\"please input the mum of gain:\"); scanf(\"%ld\ prizel=100000*0.1:
prize2=prizel+i00000*0.075: prize4=prize2+200000*0.05: prize6=prize4+200000*0.03: prize10=prize6+400000*0.015: if(gain<=100000) prize=gain*0.1:
else if(gain<=200000)
prize=prizel+(gain-i00000)*0.075; else if(gain<=400000)
prize=prize2+(gain-200000)*0.05: else if(gain<=600000)
prize=prize4+(gain-400000)*0.03: else if(gain<=1000000)
prize=prize6+(gain-600000)*0.015; else
prize=prize10+(gain-i000000)*0.01; printf(\"The prize is:%d\\n\ getch(); return 0; SSS_TEXT_QUSTI 3. 画出此程序主函数的控制流程图。
分值: 20
函数的控制流程图如下: SSS_TEXT_QUSTI4. 设计一组测试用例,使该程序所有函数的语句覆盖率和分支覆盖率均能达到100%。如果认为该程序的语句或分支覆盖率无法达到100%,需说明为什么。
分值: 20 为了使该程序满足分支覆盖和语句覆盖,应该设计测试用例,使其覆盖每一种情况。用例设计如下:
Gain=20000,180000,350000,560000,970000,1200000。
以下是QESuite web Version 1.0用户手册的相关内容,请仔细阅读并按要求回答问题 SSS_TEXT_QUSTI 5.
下表是问题报告的文档结构,请给出问题报告的定义,并回答文档状态各个状态的含义。 分值: 20 问题报告是追踪问题的主要文档类型。每一个问题报告记录了某一功能区域中发现的一个问题,以及它从被发现直到被解决或者被关闭的整个处理过程。 QEsuite web Version 1.0中的软件问题生命周期定义: ·新建——测试中新报告的软件问题
·打开——软件问题已被确认并分配给相关开发工程师处理 ·关闭——确认为无效的软件问题
·待验——工程师已完成修正,等待测试人员验证 ·解决——软件问题已被修复
SSS_TEXT_QUSTI 6. 请回答当文档状态为“打开/再现”、“待验/修复”、“新建”状态时需要何种人员进行哪些操作。 域 名 编号 描 述 是创建问题报告时由系统生成的、唯一的,且在问题报告的生命周期中保持不变的显示域 简要描述 简单描述所发现的问题,不能超过50个字。此域必须填写 问题的报告状态,例如,新建,打开,解决,关闭等。通过操作来自动填文档状态 写,为显示域 创建问题报告时的用户名,自动填写,在问题报告的生命周期中保持不变创建者 的显示域
创建问题报告时的日期,自动填写,在问题报告的生命周期中保持不变的创建日期 显示域 修改者 记录最后一次修改问题报告单用户名,自动填写 修改日期 记录最后一次修改问题报告时的日期,自动填写 分值: 20 软件问题的主状态有:“新建”、“打开”、“待验”、“解决”和“关闭”,
其中“新建”、“打开”、“待验”为软件问题的活动状态,“关闭”和“解决”为软件问题的非活动状态。
软件问题报告处于“打开/再现”状态,表示软件问题已被确认,需要相关的开发工程师来处理;软件问题报告处于“待验/修复”状态,表示软件问题已经被开发工程师完成了修正,需要等待测试人员验证;软件问题报告处于“新建”状态,表示需要测试人员测试新报告的软件问题。
1
因篇幅问题不能全部显示,请点此查看更多更全内容