1、计算机新国家四级软件测试工程师模拟试卷 16及答案与解析 一、选择题(每小题 2分,共 50分) 下列各题 A、 B、 C、 D四个选项中,只有一个选项是正确的,请将此选项涂写在答题卡相应位置上,答在试卷上不得分。 1 下列软件属性中,软件产品首要满足的应该是 _。 A) 功能需求 B) 性能需求 C) 可扩展性和灵活性 D) 容错、纠错能力 2 对于维护软件的人员来说,使用质量是 _的结果。 A) 功能性 B) 可靠性 C) 可维护性 D) 效率 3 软件规划阶段实际上指的是 _。 A) 需求获取和定义阶段 B) 数据获取和定义阶段 C) 测试用例设计规划阶段 D) 产品实施规划 4 在需求
2、获取与定义阶段就开始建立,以后要不断细化和完善的文档是 _。 A) 用户手册 B) 外部设计规格说明 C) 内部设计规格说明 D) 测试计划手册 5 在模块测试的过程中,采用自底向上的测试比自顶向下的测试 _。 A) 好 B) 差 C) 一样 D) 不确定 6 黑盒测试是从 _观点出发的测试,而白盒测试是从 _观点出发的测试。 A) 开发人员、管理人员 B) 用户、管理人员 C) 用户、开发人员 D) 开发人员、用户 7 从已经发现故障的存在到找到准确的故障位置并确定故障的性质,这一过程称为_。 A) 错误检测 B) 故障排除 C) 测试 D) 调试 8 下列关于逻辑覆盖的叙述,说法错误的是
3、_。 A) 条件覆盖的检错能力较判定覆盖强,但有时达不到判定覆盖的要求 B) 判定覆盖包含了语句覆盖,但它可能会使一些条件得不到测试 C) 判定 /条件覆盖包含了判定覆盖和条件覆盖的要求,实际上不一定达到覆盖的标准 D) 凡满足条件组合覆盖标准 的测试用例,也必然满足其他所有覆盖种类的覆盖标准 9 传统集成测试的主要方法有两个,一个是 _,另一个是 _。 A) 白盒测试方法、黑盒测试方法 B) 渐增式测试方法、非渐增式测试方法 C) 等价类划分方法、边界值分析方法 D) 因果图方法、错误推测法 10 下列测试方法中,不属于白盒测试技术的是 _。 A) 判定覆盖 B) 语句覆盖 C) 条件组合覆
4、盖 D) 边界值分析 11 以下说法错误的是 _。 A) 软件产品的质量越高,发布后维护成本就越低 B) 在软件测 试中一般只需要运行预先设计的所有测试用例 C) 通常应该在需求阶段设计系统测试用例,以此作为需求检查的辅助手段 D) 发现和修复产品中的软件缺陷越早,开发费用就会越低 12 在银行的活期存折账户管理软件中,要求可以输入一个账户的每笔交易的金额。若规定存入的金额的有效取值范围是 1.00 99999999.99元。若考虑使用边界值分析设计关于这个金额的测试用例,下列属于它的边界值的是 _。 A) 2, 9999999 B) 1.01, 99999999.99 C) 99999999
5、.98, 9.99 D) 0.99, 100000000.00 13 下列通常不属于易用性测试的范围的内容是 _。 A) 安装与卸载测试 B) 系统故障频率 C) 联机文档中断开的链接 D) 中文版与英文版的一致 14 下列关于软件测试自动化,说法正确的是 _。 A) 无法依靠人工完成的测试活动均可以通过测试自动化完成 B) 输出结果不明确的测试不适合自动化 C) 是否采用测试自动化与所开发的应用软件项目的性质无关 D) 与手工测试相比,采用自动化测试可以明显提高测试质量 15 关于人工测试方法,说法正确 的是 _。 A) 走查以小组为单位进行,是一系列规程和错误检查技术的集合 B) 同行评审
6、的文档是一种过渡性的文档,不是公开的正式文档 C) 桌上检查的文档是一个最终可交付的文档 D) 评审是一项很浪费时间的活动,会减缓项目的进度 16 软件性能测试的目标有 _。 A) 发现 (和改正 )软件性能缺陷 B) 性能调优 C) 能力检验和规划 D) 以上全部 17 下列关于面向对象软件测试的说法中,不正确的是 _。 A) 面向对象软件的白盒测试不能不加改变地照搬传统软件的白盒测试准则 B) 在存在多态的情况下,为了达到较高的测试充分性,应对所有可能的绑定都进行测试 C) 假设类 B是类 A的子类,如果类 A已进行了充分的测试,在测试类 B时不必测试任何类 B继承类 A的成员方法 D)
7、对于一棵继承树上的多个类,处于叶子结点的类也需要测试 18 Web应用软件的性能测试主要包括 _。 A) 并发测试 B) 负载测试和压力测试 C) 配置测试和性能调优 D) 以上全部 19 下列兼容性不属于软件兼容性的考虑范畴的是 _。 A) 与外设的兼容性 B) 与不同类软件的兼容性 C) 与 浏览器的兼容性 D) 与中间件的兼容性 20 下列关于 Web应用软件的系统安全检测与防护说法不正确的是 _。 A) 对系统安全漏洞的检测同样也属于测试的范畴 B) Web应用软件的安全性仅与 Web应用软件本身的开发相关 C) 系统安全检测与防护应当作一个系统工程来完成,仅仅经过入侵检测和漏洞扫描是
8、不够的,在这其中最重要的应该是建立完善的安全策略 D) 访问安全是指控制外界对主机的访问,从而减少甚至避免非法的访问和使用 21 下列关于软件测试过程的几种抽象模型,说法正确的是 _。 A) H模型指出软件测试具有独立性,只要某个测试达到准备就绪点,测试执行活动就可以开展 B) W模型强调在整个项目开发中需要经历的不同测试级别,指明测试的对象是程序 C) 软件测试过程与软件开发过程不同的是,它不必遵循软件工程原理 D) V模型强调测试的对象不仅仅是程序,需求、设计等同样需要测试 22 关于测试的策划,说法不正确的是 _。 A) 测试设计的任务是执行测试用例,需要时也可以将测试用例设计与执行并行
9、开展 B) 若系统对质量要求很高,则需要开展多次的回归测试验证 C) 在实际软件项目中,一 个测试团队可能大都是骨干人员 D) 测试团队的规模与被测系统规模、测试方资源调配情况有关 23 下列关于测试策略说法不正确的是 _。 A) 测试策略活动可以和测试设计活动并行开展 B) 测试设计活动也可以和测试执行活动并行开展 C) 在测试的最后阶段里,测试总结和测试执行通常并行开展 D) 在实际测试过程中,不得不将一些测试活动并行开展,主要是因为时间原因 24 下列关于软件缺陷状态的定义,不正确的是 _。 A) New测试中新报告的软件缺陷 B) Open缺陷被确认并分配给 相关开发工程师处理 C)
10、Fixed测试工程师已完成修正,等待开发人员验证 D) Closed缺陷已被修复 25 在 QESAT/C中,下列属于动态测试过程步骤的是 _。 A) 设定待测试的配置、编译相关的源程序 B) 设定需插装的函数 C) 运行源程序、合并动态运行的结果 D) 以上全部 二、论述题( 3题,共 50分 ) 论述题答题必须用蓝、黑色钢笔或圆珠笔写在论述题答题纸的相应位置上,否则无效。 25 以下是学生选课系统中 “学生成绩查询 ”交互行为的描述,请仔细阅读程序并完成要求。 交互开始时,终端上显示首页,用户选择 “查询 ”请求后,显示 “请输入学号 ”。在用户输入学号后,系统核对学生学号:若输入的学号不
11、正确,则显示 “输入的学号不正确 ”,此次查询取消,回到首页;若输入的学号正确,则出现 “请输入课程名称 ”。一旦输入课程名,就开始核对课程名称:若输入的课程名称不正确,则显示“输入的课程名称不正确 ”,此次查询取消,回到首页;若输入的课程名称正确,则根据 “学号 ”和 “课程名 ”查询学生成绩。 若查询学生成绩成功,则显示查询到的成绩,系统询问是否继续查询:当用户选择 “继续查询 ”后回到 “请输入 学号 ”;当用户选择 “结束查询 ”后回到首页。若查询失败,则显示 “查询失败 ”后回到首页。 26 请给出该系统的基本路径集。 27 请给出覆盖基本路径集的测试用例集合。 27 以下是班级成绩
12、处理平台的程序流程图,请仔细阅读程序并完成要求。 该平台允许最多输入 100个学生的成绩,以 -1作为输入结束标志。 N2存放输入的学生成绩个数, N1存放输入成绩中有效成绩的个数, sum存放成绩总和。初始化 N2=N1=O, sum=0。计算其中有效的学生分数的个数、总分数和平均值。请针对该程序流程图进行基本路径覆盖测 试用例设计。 28 导出过程的控制流图。 29 确定基本测试路径集合。 29 关于软件测试过程,请回答以下问题。 30 软件测试过程模型主要有哪些 ?各有何特点 ? 31 应当如何正确选取过程模型 ? 32 以下是某程序说明,请按要求回答问题。 程序说明:假设有一个把数字串
13、转换为整数的函数。其中数字串要求长度为 1 6个数字构成,机器字长为 16位。 分析程序中出现的边界情况,采用边界值法为该程序设计测试用例。 32 简单谈一下你对穷举测试的理解,并按要求回答问题。 33 穷举测试的方法对于所有项目程序都是可行的吗 ? 34 若是针对小型的程序,穷举测试是可能的吗 ?若是,说明此时采用穷举测试能否保证程序是百分之百正确呢 ? 35 根据你对单元测试的理解,谈谈在任何情况下单元测试都是可能的吗 ?都是需要的吗 ? 计算机新国家四级软件测试工程师模拟试卷 16答案与解析 一、选择题(每小题 2分,共 50分) 下列各题 A、 B、 C、 D四个选项中,只有一个选项是
14、正确的,请将此选项涂写在答题卡相应位置上,答在试卷上不得分。 1 【正确答案】 A 【试题解析】 软件产品质量的属性有 很多,其中软件产品首先要满足的就是客户的功能需求。性能需求包括处理和响应时间,约束条件则是标识外部硬件、可用存储或其他现有系统对软件的限制。功能、性能和约束必须在一起进行评价。另外软件产品还应具备一定的可扩展性和灵活性,应能够有效地处理例外或异常情况,具有一定的容错、纠错能力。总之,软件质量实际上是各种特性的复杂组合。 2 【正确答案】 C 【试题解析】 使用质量是从用户观点来对软件产品提出的质量要求,所以它的度量主要是针对用户使用的绩效,而不是软件自身的特性,使用质量是面向
15、用户的内部和外部质量的组合效果。使用质量与其他软件产品质量特性之间的关系取决于用户的类型: 对最终用户来说,使用质量主要是功能性、可靠性、易用性和效率的结果; 对维护软件的人员来说,使用质量是可维护性的结果; 对移植软件的人员来说,使用质量是可移植性的结果。 3 【正确答案】 A 【试题解析】 规划阶段的测试实际上就是对需求获取和定义阶 段进行的测试,产品规划小组应由系统分析员、销售人员和市场营销人员以及产品经理等组成,他们对产品进行定义,制作演示模型,以阐明他们的构想。规划人员的目的是编写文档来知道将来的开发工作。 4 【正确答案】 A 【试题解析】 软件的外部设计是从用户的角度对产品进行描
16、述的,外部设计规格说明是在外部设计期间产生的文档,用户手册是另一种文档,与外部设计规格说明不同的是,它是在需求获取与定义阶段就开始建立,以后要不断细化和完善的文档。 5 【正确答案】 A 【试题解析】 自底向上测试和自顶向下测试都是 增量式的测试方法,在自底向上测试中,首先测试最底层的模块,利用辅助的驱动模块调用,然后测试高层次的模块。而自顶向下测试则刚好相反,它是首先测试顶层模块,无须编写驱动模块,但要使用桩模块,然后测试下一层模块。二者各有优缺点,但权衡来看,自底向上测试的方法要优于自顶向下测试方法。 6 【正确答案】 C 7 【正确答案】 D 8 【正确答案】 D 9 【正确答案】 B
17、10 【正确答案】 D 11 【正确答案】 B 12 【正确答案】 D 13 【正确答案】 B 14 【正确答 案】 B 【试题解析】 对于软件自动化测试的理解。当输出结果不明确的情况时,是不适合采用自动化测试的。自动化测试不是万能的,只有当某项测试需要频繁运行时才需要自动化。人工无法完成的测试活动并不一定能通过自动化测试完成。是否采用测试自动化与软件项目的性质有关,测试很少运行,软件不稳定,测试结果容易人工验证,但是难于把这类测试自动化,涉及物理交互的测试都不适合使用自动化测试。同时,自动化测试对测试质量的依赖性极大。它把测试任务变成了验证期望输出的正确性,并不能完全提高测试的质量。 15
18、【正确答案】 A 【试题解析】 桌上检查的文档一种过渡性的文档,不是公开的正式文档,而同行评审的 “产品 ”可以理解成最终产品的组成部分,同行评审是在软件开发过程中产生需要的一个可交付的文档。在软件开发过程中,真正造成项目进度缓慢的是各种各样的产品缺陷同行评审不仅可以缩短工作时间,同时还可以节约大量成本。选项 A走查以小组为单位进行,是一系列规程和错误检查技术的集合,说法完全正确。 16 【正确答案】 D 17 【正确答案】 C 【试题解析】 封装、继承和多态是面向对象软件区别于传统的结构化软件的 3个主要 特点, 然而这些特点都可能对测试带来困难。选项 C中考查继承和继承与多态的复合对测试的
19、影响,假设类 B是类 A的子类,如果类 A已进行了充分的测试,若按传统的测试充分性准则,在测试类 B时可以把关注点放在类 B自身定义的成员变量和成员方法上,但在实际测试类 B时,这样的测试往往会不够充分,还是要对类B继承类 A的成员方法进行测试的,而且对于一棵继承树上的多个类,仅对处于叶结点的类进行测试也是不充分的。 18 【正确答案】 D 19 【正确答案】 A 【试题解析】 一般软件兼容性测试主要考虑: 与操作系统 的兼容性; 与数据库的兼容性; 与浏览器的兼容性; 与中间件的兼容性; 与其他软件的兼容性,这里包括与其他支撑软件的兼容性、与其他同类软件的兼容性、与不同类软件的兼容性 3种情
20、况; 与平台软件的兼容性。选项 A中与外设的兼容性属于硬件兼容性的考虑范畴。 20 【正确答案】 B 【试题解析】 系统的安全漏洞其实也算是系统的缺陷所以安全漏洞的检测也属于测试的范畴。实际上, Web应用软件的安全性不仅仅与 Web应用软件本身的开发相关。入侵检测和漏洞扫描是系统安全检测与防护的两个重要方面,但对于实际的安全检测 与防护,仅注意这两个方面是不够的,而应该把系统安全检测与防护当作一个系统工程来完成,而这其中最重要的是建立完善的安全策略。访问安全就是指控制外界对主机的访问,从而减少甚至避免非法的访问和使用,因此访问安全策略又称为访问控制策略。 21 【正确答案】 A 【试题解析】
21、 软件测试过程体现了软件测试的流程和方法,与软件开发过程一样,都遵循软件工程原理,遵循管理学原理,故选项 C不正确。 V模型反映出测试活动与分析设计活动的关系,强调了在整个项目开发过程中需要经历的不同测试级别,忽视了测试的对象不应该仅仅是程 序, W模型是对 V模型进行了补充,明确指出:测试的对象不仅仅是程序,需求、设计等同样需要进行测试, H模型指出软件测试是一个独立的流程,只要某个测试达到准备就绪点,测试执行活动就可以开展,软件测试贯穿于产品的整个生命周期,与其他流程可以并发进行。 22 【正确答案】 C 23 【正确答案】 C 【试题解析】 一般的测试过程是按测试策划、测试设计、测试执行
22、和测试总结 4个测试活动顺序开展的。但实际测试项目中,由于时间紧迫,有时不得不将一些测试活动并行开展,如可以将测试策划和测试设计活动并行开展,测试设 计活动也可以和测试执行活动并行开展,但测试总结和测试执行一般不会并行开展,但可以提前编写相应的文字内容。 24 【正确答案】 C 25 【正确答案】 D 【试题解析】 动态测试信息是指:将被测程序运行后才能获得的测试信息。做动态测试之前必须先通过静态分析,动态测试过程的步骤如下: 设定待测试的配置; 设定需插装的函数; 编译相关的源程序; 运行源程序; 合并动态运行的结果。 二、论述题( 3题,共 50分 ) 论述题答题必须用蓝、黑色钢笔或圆珠笔
23、写在论述题 答题纸的相应位置上,否则无效。 26 【正确答案】 由控制流图可以看出,该图的 V( G) =5(区域数),所以基本路径集共由 5条路径组成。 1-2-1- 1-2-3-1- 1-2-3-4-1- 1-2-3-4-2-1 1-2-3-4-2-3-1 27 【正确答案】 首页 -输入错误学号 -回首页;首页 -输入正确学号 -输入错误课程号 -回首页;首页 -输入正确学号 -输入正确课程号 -给出学生成绩 -结束返回首页;首页输入正确学号 -输入正确课程号 -给出学生成绩 -继续输入学号 -输入 学号错误回首页;首页输入正确学号 -输入正确课程号给出学生成绩 -继续输入学号 -输入课
24、程号 -输入错误课程号回首页。 28 【正确答案】 该程序的过程控制流图如下。 29 【正确答案】 该过程该过程控制流图的圈复杂性度量 G(V)为 4(区域数,或者G(V)=E N+2) 所以基本路径集合包含四条独立的路径: 1-2-6-7-9 1-2-6-8-9 1-2-3-4-5-2-6-7-9 1-2-3-4-10-2-6-7-9 30 【正确答案】 V模型: V模型反映出测试活 动与分析设计活动的关系。指出单元测试和集成测试应检测程序的执行是否满足软件设计的要求。系统测试应检测系统功能、性能的质量特性是否达到系统要求的指标。验收测试确定软件的实现是否满足用户需要或合同的要求。 W模型:
25、 W模型指出软件各开发阶段中应同步进行的验证和确认活动,即测试与开发也应是同步进行的。 W模型有利于尽早和全面地发现问题。 H模型: V模型与 W模型有不妥,即它们都把软件的开发视为需求、设计和编码等一系列串行的活动,而事实上,这些活动是可以交叉进行的。 H模型揭示一点:软件测试是一 个独立的流程,贯穿于产品的整个生命周期中,与其他流程并发进行。 其他模型: 除了上面几种常见模型外,还有 X模型、前置测试模型等。 31 【正确答案】 在实践中,应当尽可能地运用各个模型中对项目有实用价值的方面,不能强行地为使用模型而使用模型。建议采用的方法是:以 W模型作为框架,及早、全面地开展测试,同时灵活运
26、用 H模型独立测试的思想,在达到恰当的就绪点时就应该开展独立的测试工作,同时将测试工作进行迭代,最终保证完成测试目标。 32 【正确答案】 分析该程序的说明和功能,显然可以划分 4组测试 等价类:有效输入等价类、无效输入等价类、合法输出等价类和非法输出等价类。在考虑该程序的合法输出和非法输出时需要考虑计算机的字长,这时要进行边界值法设计测试用例,以补充等价类法设计的测试用例。具体采用边界值法设计的测试用例如下: (1)使程序输入刚好等于最小的负整数: 输入: -32768 输出: -32768 (2)使程序输入刚好等于最大的正整数: 输入: 32767 输出: 32767 (3)使程序输入刚好
27、小于最小的负整数: 输入: -32769 输 出:错误 (4)使程序输入刚好大于最大的正整数: 输入: 32768 输出:错误 33 【正确答案】 不是。穷举测试的方法并不是对所有程序都可以实现。 34 【正确答案】 对小程序进行穷举测试,也不见得能保证程序百分之百正确。所谓穷举测试,是拿所有可能的输入数据来作为测试用例 (黑盒测试 ),或覆盖程序中所有可能的路径 (白盒测试 )。对于小程序来说,实际上并不能真正做到穷举测试。 35 【正确答案】 单元测试又称模块测试,是针对软件设计的最小单位 程序模块,进行正确性检验的测试工 作。其目的在于发现各模块内部可能存在的各种差错。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。 单元测试是在编码阶段完成的,每编写出一个程序模块,就开始做这个模块的单元测试,所以只要采用模块化方法设计开发的软件,单元测试都是必需的。这时单元测试通常由编写程序的人来完成。因为它需要根据程序的内部逻辑结构设计测试用例,对于那些不了解程序内部细节的人,单元测试无法进行。