您的当前位置:首页2009年9月计算机四级软件测试工程师真题试卷(题后含答案及解析)

2009年9月计算机四级软件测试工程师真题试卷(题后含答案及解析)

2023-10-15 来源:乌哈旅游


2009年9月计算机四级软件测试工程师真题试卷 (题后含答案及解

析)

题型有:1. 选择题 2. 论述题

一、选择题(每小题2分,共50分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将此选项涂写在答题卡相应位置上,答在试卷上不得分。

1. 软件验证和确认是保证软件质量的重要措施,它的实施应该针对______。 A.程序编写阶段

B.软件开发的所有阶段 C.软件调试阶段 D.软件设计阶段

正确答案:B 解析:软件验证和确认理论是测试过程的理论依据,验证是检查软件开发的各个阶段过程活动的结果是否满足规格说明的描述,证实各阶段和阶段之间的逻辑协调性、完备性和正确性。确认是证实在一个给定的外部环境中软件的逻辑正确性,即是否满足用户的要求。

2. 在软件测试用例设计的方法中,最常用的方法是黑盒测试和白盒测试,其中不属于白盒测试所关注的是______。

A.程序结构 B.软件外部功能 C.程序正确性 D.程序内部逻辑

正确答案:B

解析:白盒测试又称为逻辑驱动测试.它对程序的逻辑结构进行检查,从中获取测试数据,它不需要测试软件产品的功能。黑盒测试是另一种测试策略,它将程序视为一个黑盒子,测试目标与程序内部机制和结构完全无关,而是将重点集中放在发现程序不按其规格说明正确运行的环境条件,黑盒测试注重于测试软件的功能性需求。

3. 在程序测试中,用于检查程序模块或子程序之间的调用是否正确的静态分析方法是______。

A.操作性分析 B.可靠性分析 C.引用分析 D.接口分析

正确答案:D

解析:静态错误分析主要用于确定在源程序中是否有某类错误或者危险结构,包括:类型和单位分析——为了强化对源程序中数据类型的检查,在程序设计语言中扩充一些新的数据类型。 引用分析——在静态错误分析中,最广泛使用的技术就是发现引用异常。 表达式分析——对表达式进行分析,以发现和纠正在表达式中出现的错误。 接口分析——接口的一致性是程序的静态错误分析和设计分析共同研究的题目。接口一致性的设计分析主要检查模块之间接口的一致性和模块与外部数据库之间接口的一致性。

4. 下列指导选择和使用测试覆盖率的原则中错误的是______。 A.覆盖率不是目的,仅是一种手段 B.不要追求绝对100%的覆盖率

C.不可能针对所有的覆盖率指标来选择测试用例 D.只根据测试覆盖率指标来指导测试用例的设计

正确答案:D

解析:在选择和使用覆盖率时,应该注意以下原则: 覆盖率只是一种手段,不是测试的最终目的。 不可能针对所有的覆盖率进行测试,但如果只考虑一种覆盖率也是不妥的。 不要追求绝对100%的覆盖率。 设计测试用例时,不仅要考虑到覆盖率,还应综合考虑其他方面,如成本等。 D说法不当。

5. 在以下有关逻辑覆盖的说法中错误的说法是______。

A.所有满足条件组合覆盖标准的测试用例集,也满足路径覆盖的覆盖标准 B.条件覆盖能够查出条件中包含的错误,但有时达不到判定覆盖的覆盖率要求

C.路径覆盖的差错能力很强,但有时达不到条件组合覆盖的覆盖率要求 D.判定覆盖包含了语句覆盖,但它不能保证每个错误条件都能检查得出来

正确答案:A

解析:满足了条件覆盖,并不一定满足判定覆盖。尽管路径覆盖比判定/条件覆盖更强,但是路径覆盖并不一定能包含判定/条件覆盖。

6. 走查是对软件进行静态测试的一种方法,以下不属于走查活动的是______。

A.计划走查会议 B.准备测试用例

C.执行走查以发现和改正错误

D.在走查过程中程序员逐渐讲解自己的程序

正确答案:B

解析:走查的步骤如下:①计划走查会议;②走查产品;③执行走查;④解决缺陷;⑤走查记录;⑥产品返工,准备测试用例是走查之前要进行的活动。

7. 设有一段程序如下: if((a==b)and((c==d)or(e==f)))do S1 else

if((p==q)or(s==t))do S2 else do S3 满足判定/条件覆盖的要求下,最少的测试用例数目是______。

A.6 B.8 C.3 D.4

正确答案:C

解析:判定/条件覆盖,就是设计足够的测试用例,使得判定语句中每个条件的所有可能取值至少评价一次,同时每个判定语句本身所有可能分支也至少评价一次。 本程序一共有两个判定语句,三条路径。 若以1代表某一个条件为真,O代表为假,则对于(a==b)、(c==d)、(e==f)、(p==q)、(s==t)这五个条件,取不同的真值组合,即可设计出相应的测试用例,达到判定/条件覆盖的要求。在这里,先取(a==b)、(c==d)、(e==f) 为101,(p==q)、(s==t) 为任意值,然后取全部五个条件为010 11和010 00,即能达到判定/条件覆盖的要求。

8. 在以下有关集成测试的说法中,错误的说法是______。

A.自底向上集成的缺点是在早期不能进行并行测试,不能充分利用人力 B.自底向上集成的优点是减少了编写桩模块的工作量

C.自顶向下集成的优点是能够较早地发现在高层模块接口、控制等方面的问题

D.自顶向下集成的缺点是需要设计许多的桩模块,测试的开销较大

正确答案:A

解析:A的说法与事实正好相反,自底向上的一个优点是在工作的初期就可以进行并行测试和集成,比使用自顶向下的策略效率高。

9. 在集成测试阶段,人们关注的一种主要的覆盖是______。 A.功能覆盖 B.语句覆盖

C.基本路径覆盖 D.条件覆盖

正确答案:A

解析:B、C、D都是单元测试所关注的。

10. 可跟踪性分析是一种重要的软件验证和确认方法。不属于可跟踪性分析的活动是______。

A.正确标识在需求规格说明中的每项需求

B.从需求规格开始的正向跟踪应确保完全支持需求规格

C.每个当前阶段产品的规格或特性应确保被可跟踪的前驱规格所支持 D.确保所有不同接口规格说明的完整性

正确答案:D

解析:可跟踪性分析是指标识原始需求和相应开发结果之间关系的能力。可跟踪性分析的目的是保证规格说明中的每项需求被正确标识,当前阶段与前后阶段之间跟踪是一致的。借助于向前和向后跟踪,可以建立高效的测试计划,并可验证覆盖了功能和设计需求/特性的测试用例的实测结果。每个跟踪按一致性、完整性和正确性来分析,以便验证全部的软件需求是否在软件中得以实现以及是否与正确的设计、代码和测试信息相联系。

11. 以下关于软件性能测试的说法中,不正确的是______。 A.发现软件缺陷是性能测试的目的之一

B.压力测试与负载测试的目的都是为了探测软件在满足预定的性能需求的情况下所能负担的最大压力

C.性能测试通常需要对测试结果进行分析才能获得测试结论 D.检验软件的最大负载是性能测试的目的之一

正确答案:B

解析:软件性能测试包括三个目标:①发现缺陷;②性能调优;③能力检验与规划。A说法正确。压力测试是指在较大的业务压力下,即系统运行环境超常的情况下,测试软件是否存在功能和性能上的缺陷。负载测试是指不断增加软件的业务压力,探测软件在保证预定性能指标的情况下所能负担的最大压力。压力测试和负载测试是有区别的,两者都需要对软件施加业务压力,但根本目的完全不同,负载测试是探测软件处理能力的极限,而压力测试是利用压力揭示潜在缺陷。B说法错误。性能测试通常需要对测试结果进行分析才能获得测试结论,C说法正确。性能测试的目的之一,就是检验软件的最大负载,D说法也正确。

12. 以下哪种软件测试不属于广义软件性能测试的范畴______。 A.并发测试 B.压力测试 C.兼容性测试 D.负载测试

正确答案:C 解析:软件的性能是软件的一种非功能特性,它关注的不是软件是否能够完成特定的功能,而是在完成该功能时展示出来的及时性。根据测试目的的不同,可以把软件性能测试以及与性能有关的其他一些测试分为:①性能测试;②并发测试;③压力测试;④可靠性测试;⑤负载测试;⑥配置测试;⑦失效恢复测试。兼容性测试属于系统测试的范畴,不是软件性能测试。故本题选C。

13. 以下关于软件可靠性与硬件的可靠性主要区别的说法中,正确的是______。

A.软件的每个拷贝都是完全一样的,而按照设计生产出来的同规格硬件总有微小差别

B.软件经常面临恶意的使用者,而硬件没有恶意的使用者

C.软件的使用者通常遍及整个世界,而硬件的使用者通常只局限于某个地区

D.软件的失效都是逻辑错误引起的,而硬件的失效都不是逻辑错误引起的

正确答案:A 解析:软件可靠性和软件可靠性测试的研究在很大程度上借鉴了硬件可靠性的研究,但由于软件和硬件的不同特点导致软件可靠性和硬件可靠性也有很大的不同,这也是软件可靠性研究仍然很不成熟的重要原因。具体而言,软件可靠性和硬件可靠性的区别包括:①唯一性。软件设计出来后,所有副本都是一模一样的;硬件设计出来后,每个按照设计生产的硬件都不可能完全相同;②物理退化。一个正确的硬件器件会因为物理退化在某时刻失效,但正确的软件则不会因为物理退化而发生失效;③逻辑复杂性。软件具有复杂的内部逻辑,而硬件的内部逻辑则相对简单;④版本更新。硬件的版本更新通常很慢,而软件的版本更新比较频繁。B说法错误,硬件也有恶意使用者。随着国际化的加深.硬件的生产标准越来越统一,使用者也遍布很多地区,C说法错误。硬件失效通常不是逻辑错误导致的,但也有例外,D说法太过绝对。综合以上,本题应选A。

14. 以下关于面向对象软件测试的说法中,错误的是______。

A.对于面向对象程序集成测试而言,大突击集成可能导致测试不充分 B.面向对象软件只能采用白盒测试,不能采用黑盒测试

C.在存在多态的情况下,为了提高测试的充分性需要对所有可能的绑定都进行测试

D.单个成员方法的测试属于面向对象程序单元测试考虑的范畴

正确答案:B 解析:由于大突击集成面对的是整个软件的所有代码,几乎没有什么方法能够为此生成合适的测试用例集,所以大突击集成可能导致测试不充分,A说法正确。在面向对象中,一般有少数的方法需要单独进行测试,D说法正确。

15. 以下关于面向对象软件测试的说法中,正确的是______。

A.对于一个类的测试,一个测试用例只能包含对该类的一个方法的一次调用

B.基于判定表的测试不能用于面向对象程序的单元测试

C.不变式边界测试可用于类层次的测试,其目的是测试功能组合 D.对于抽象类,需要进行单元测试

正确答案:D

解析:在面向对象中,很难对单个成员方法进行充分的测试,这是因为多个成员方法会通过成员变量产生相互依赖关系。合理的测试是将这些相互依赖的成员方法放在一起进行测试,故A说法错误。 基于判定表的测试,又称为组合功能测试,既可以用于传统软件测试,也可以用于面向对象软件测试,B说法错误。 不变式边界测试是一种基本的和高效的类层次的测试技术。类层次测试的一个主要困难是成员变量的某些状态可能不会出现,这就是所谓的类不变式。不变式边界测试首先准确定义类的不变式,其次寻找成员方法的调用序列以违反类不变式,这些调用序列即可作为测试用例。不变式边界测试的目的不是测试功能组合,C的说法错误。 对于抽象类,需要进行单元测试。但是构造抽象类

的驱动程序显然比构造其他类的驱动程序复杂,因为在测试抽象类时,需要为抽象类构造一个子类,并实现所有抽象类没有实现的成员方法。D正确。

16. 以下关于面向对象程序集成测试的说法中,正确的是______。

A.大突击集成在任何情况下都是效果最差的面向对象程序集成测试策略 B.自底向上集成和自顶向下集成都需要为集成测试开发大量辅助代码 C.协作集成从本质上讲是一种自底向上集成 D.基于集成从本质上讲是一种自顶向下集成

正确答案:B 解析:大突击集成最大优势在于整个测试过程可以在很短的时间内完成。它的主要劣势为:①测试难以充分进行;②大突击测试会增加调试难度。基于大突击集成的主要缺点,只有在整个软件的可靠性有了基本保障时,大突击集成才是一个合理的选择。虽然大突击集成的劣势很明显,但在一定条件下还是能够体现一定的优势的,故A说法错误。 在面向对象集成中,自底向上集成需要开发大量的测试驱动代码,自顶向下集成也需要开发大量测试桩代码,B正确。 协作集成和基于集成是新型的面向对象集成方式,两者与自底向上集成和自顶向下集成有类似之处,也有不同之处,不能混为一谈,C、D说法均不正确。

17. 以下关于Web应用软件测试的说法中,正确的是______。 A.对Web应用软件进行性能测试时,不需要进行压力测试 B.内容测试是Web应用软件易用性测试的一项重要内容 C.Cookie测试是Web应用软件功能测试的一项重要内容 D.是否存在无效链接是Web应用软件安全性测试关注的范畴

正确答案:C

解析:对Web应用软件进行性能测试主要包括三个方面:并发测试、负载测试和压力测试、配置测试和性能调优。A说法错误。 内容测试不属于易用性测试范畴,B说法错误。 Cookie测试是Web应用软件功能测试的一项重要内容,C正确。 是否存在无效链接是Web应用软件功能测试关注的范畴,D错误。

18. 以下哪一项属于软件易用性测试关注的范畴?______。 A.软件是否能在多种操作系统下运行 B.软件是否能与同类软件共享数据

C.软件是否能主动禁止用户可能进行的非法操作 D.软件是否能抵御网络攻击

正确答案:C 解析:软件是否能在多种操作系统下运行属于兼容性测试的范畴,软件是否能与同类软件共享数据也属于兼容性测试,软件是否能抵御网络攻击属于性能测试,A、B、D均错误。软件是否能主动禁止用户可能进行的非法操作属于软件易用性测试关注的范畴,C正确。

19. 以下哪一项属于数据兼容性测试关注的范畴?______。 A.软件在异常退出时是否会破坏正在处理的文件 B.软件是否可以在不同的J2EE应用服务器上运行 C.软件同类功能的使用风格是否一致 D.软件是否能打开以前版本保存的文件

正确答案:A

解析:常用的数据兼容性主要包括两类: ①不同版本间的数据兼容性。B、C都属于这一类。 ②不同软件间的数据兼容性。D属于这一类。 A不属于数据兼容性测试关注的范畴。

20. 以下关于极限测试的说法中,正确的是______。 A.极限测试是一种针对极限编程的软件测试 B.极限测试中所有的测试均由编码人员完成

C.与传统的软件测试相比,极限测试是一种更严格的测试 D.极限测试中只需要进行单元测试

正确答案:A 解析:极限测试本质上是为了满足极限编程的思想和流程而设计的一套测试策略和流程,A正确。 极限测试中单元测试是由编码人员完成的测试,验收测试主要由用户完成,B说法错误。 极限测试的验收测试的形式决定了其不是很详细和严格的测试,编码中常见的错误大多数可以逃过验收测试,C说法错误。 极限测试除了要进行单元测试,还要进行验收测试,D说法错误。

21. 下列有关软件缺陷报告的编写中,哪个是错误的?______。 A.一个软件缺陷报告中只应记录一个不可再划分的软件缺陷 B.软件缺陷报告的标题应该能够最简洁表达一个软件缺陷 C.软件缺陷报告中应提供全面的有关该软件缺陷再现的信息 D.同一个软件缺陷可以被重复报告

正确答案:D

解析:软件缺陷报告的编写应该遵循以下原则: 软件缺陷报告是测试人员和开发人员交流的纽带,最重要的原则是一定要将问题说明白,让不能和测试人员直接交流的开发人员可以依据描述理解和再现所发现的软件缺陷。 一个软件缺陷报告中只应记录一个不可再划分的软件缺陷。 软件缺陷报告的标题应该能够最简洁表达一个软件缺陷。 再现该软件缺陷的步骤应该是最简化的,应剔除其他不相关的步骤或因素。 依据一系列的程序执行步骤和测试输入来再现软件缺陷。 应提供全面的有关该软件缺陷再现的信息。 不要填写重复的软件缺陷。当一个缺陷是被报告过的,那么就不可以再填写另外一个报告,否则会造成质量保证人员和开发人员的额外负担与资源浪费。 A、B、C均符合以上规则,D的说法与最后一条规则相违背。

22. 依据QESuite web Version 1.0软件问题生命周期定义,对于一个处在“新建”状态的软件问题报告,下列操作不可能出现的是______。

A.校验 B.关闭 C.验证

D.分类与分配

正确答案:C

解析:根据QESuite Web Version1.0软件问题的生命周期定义,处在“新建”状态的软件问题报告,其可以有的操作为:校验、关闭、分类与分配/提供信息。

23. 下列哪个不是测试环境的组成要素?______。 A.软硬件 B.技术文档 C.测试工具 D.网络环境

正确答案:B 解析:软件测试环境的五个要素有: ①硬件 软件测试最基本的硬件包括服务器和测试用机。硬件设备按配置标准,通常分为标准配置、最佳配置和最低配置三种。 ②软件 软件环境包括操作系统和应用程序。 ③数据准备 测试的数据很重要,数据准备包括数据量和真实性两个方面。 ④网络环境 随着网络的普及,软件产品离不开网络环境,网络环境是硬件因素和软件因素的综合。各种路由器、交换机、网线和网卡是硬件基础,各种代理、网关协议、防火墙则是软件基础。 ⑤测试工具 测试工具分类:代码分析与测试工具、自动/半自动测试过程管理工具和测试资源管理工具。

24. 根据《GB/T 15532—2008计算机软件测试规范》,软件测试管理主要包括测试过程管理、测试评审管理,以及______。

A.测试用例管理 B.测试环境管理 C.配置管理 D.测试系统管理

正确答案:C

解析:根据《GB/T 15532—2008计算机软件测试规范》,软件测试管理包括测试过程管理、配置管理和测试评审管理。

25. 根据《GB/T 15 532—2008计算机软件测试规范》,设计测试用例应遵循:基于测试需求的原则、基于测试方法的原则、兼顾测试充分性和效率的原则,以及______。

A.测试用例无冗余性原则 B.测试执行可重复性原则 C.测试用例可操作性原则 D.测试用例可管理性原则

正确答案:B

解析:根据《GB/T 15532—2008计算机软件测试规范》,测试用例的设计应遵循下面原则: ①基于测试需求的原则。 ②基于测试方法的原则。 ③兼顾测试充分性和效率的原则。 ④测试执行的可重复性原则。

二、论述题(3题,共50分)论述题答题必须用蓝、黑色钢笔或圆珠笔写在论述题答题纸的相应位置上,否则无效。

下图是一个简单的ATM机中描述验证信用卡PIN活动的有限状态机。其中包含五个用“”表示的状态和八个用“→”表示的转移。转移上的标签所遵循的是:横线上方是引起转移的事件,横线下方是与该转移相关联的行动。该有限状态机允许储户有三次输入PIN的机会,如果三次都输入错误,则停止交易退卡。

26. 请给出与此有限状态机等价的控制流图;

正确答案:把有限状态自动机图的状态用结点代替,迁移用弧线代替,则可画出相应的控制流图。

27. 确定基本测试路径集;

正确答案:上图的环路复杂性度量V(G)为5(区域数或者V(G)=E-N+2)。 所以基本路径集合共有5条独立的路径: S1—S1… S1—S2—S5 S1—S2—S3—S4—S1… S1—S2—S3—S5 S1—S2—S3—S4—S5

28. 设计测试用例以覆盖基本测试路径。

正确答案:为每一条独立路径个设计一组测试用例,以便强迫程序沿着该路径至少执行一次 ①插入无效卡 ②插入有效卡——正确输入PIN码——按下事务选择按钮 ③插入有效卡——第一次错误输入PIN码——第二次错误输入PIN码——第三次错误输入PIN码 ④插入有效卡——第一次错误输入PIN码——第二次正确输入PIN码——按下事务选择按钮 ⑤插入有效卡——第一次错误输入PIN码——第二次错误输入PIN码——第三次正确输入PIN码——按下事务选择按钮

29. 已知C源程序如下: /*Input today’s date,output tomorrow’s date * / /* version 2 * / #include<stdio. h> struct ydate { int day; int month; int year;}; int leap(struct ydate d) { if((d. year%4==0&&d. year%100 ! =0)||(d. year%400==0)) return 1; else return 0; } int numdays(struct ydate d) { int day; static int daytab[]= {31,28,31,30,31,30,3l,31,30,31,30,31}; if(1eap(d)&&d. month==2) day=29; else day=daytabEd. month-1]; return day; } int main(void) { struct ydate today,tomorrow;printf(“format of date is:year,month,day输入的年、月、日之间应用逗号隔开\\n); printf(“ today is:”); scanf(“%d,%d.%”,

&today.year,&today.month,&today.day); while(0>=today. year || today. year>65535||0>=today. month||today. month>12)|| 0>=today. day||today. day>numdays(today)) { printf(“input date error!reenter the day!\\n”); printf(“ today is:”); scanf(“%d,%d,%d”,&today. year,&today.month,&today. day); } if(today. day!=numdays(today)) {tomorrow. year=today. year; tomorrow. month=today. month; tomorrow. day=today. day+1; } else if(today.month==12) {tomorrow. year=today. year+1; tomorrow. month=1; tomorrow. day=1; } else {tomorrow. year=today. year; tomorrow. month=today. month+1: tomorrow.day=1; } printf(“tomorrow is:%d,%d,%d\\n\\n”, tomorrow. year,tomorrow. month,tomorrow. day); } (1) 画出程序中所有函数的控制流程图; (2) 设计一组测试用例,使该程序所有函数的语句覆盖率和分支覆盖率均能达到100%。如果认为该程序的语句或分支覆盖率无法达到100%,需说明为什么。

正确答案:函数leap的流程图如下:本题的程序用来打印输入日期的第二天日期,只要根据程序中的判断语句设计出相关的测试用例,就能使得所有函数的语句覆盖率和分支覆盖率均能达到100%。 为了满足leap函数的语句覆盖率和分支覆盖率均能达到100%,应当设置两个测试用例,使得一个是闰年,一个不是,在这里可以取2008年和2007年。 由于numdays函数的判定语句是对leap的函数值进行判定,满足了leap的覆盖率要求,就能够满足numdays的覆盖率要求。 对于main函数中的while语句,根据流程图,先使判断部分为1,然后为0,这样就可以达到覆盖要求。对于while语句之后的if…else if…else语句,只要能够使每个分支都执行一遍,就能达到覆盖要求。 根据以上分析,设计测试用例如下:注意,这里的第1、2个用例使得leap函数中的retlarn 1和return 0都能执行一遍,同时nutndays函数中的if…else结构两个分支也都能得到执行;第1个用例也能够使while循环体能够得到执行;第2、3、4用例三个测试用例刚好使main中的if…else if…else-三个分支都执行一遍。

30. QESuite Web Version 1.0中,已知Lead 1.0邮件系统测试项目的部分信息如下: ?测试版本:总计两个测试版本,按日期排序分为Lead1._090703,Lead1.0_090801 ?功能分类视图中部分待测区域及人员分配定义如下表所示: 已知在功能区域“性能/并发处理能力”下有一个软件问题处于“打开/修复失败”状态.下表中是该软件问题当前的部分操作历史信息,请依据QEsuite Web Version 1.0的软件问题生命周期定义和题中提供的相关人员分配和测试版本信息,填写表中空缺的操作历史信息。

正确答案:下图是QESuite Web Vetsion 1.0的问题报告工作状态转换流程。下图是QESuite Web Vetsion 1.0的问题报告工作状态转换流程。

因篇幅问题不能全部显示,请点此查看更多更全内容