1、计算机新国家四级软件测试工程师模拟试卷 20及答案与解析 一、选择题(每小题 2分,共 50分) 下列各题 A、 B、 C、 D四个选项中,只有一个选项是正确的,请将此选项涂写在答题卡相应位置上,答在试卷上不得分。 1 在软件测试中,白盒测试方法是通过分析程序的 _来设计测试用例的。 A) 应用范围 B) 功能 C) 内部逻辑 D) 输入数据 2 下列关于测试方法的叙述中不正确的是 _。 A) 从某种角度上讲,白盒测试与黑盒测试都属于动态测试 B) 功能测试属于黑盒测试 C) 对功能的测试通常是 要考虑程序的内部结构的 D) 结构测试属于白盒测试 3 在程序设计过程中,要为程序调试做好准备,主
2、要体现在 _。 A) 采用模块化、结构化的设计方法设计程序 B) 根据程序调试的需要,选择并安排适当的中间结果输出必要的断点 C) 编写程序时要为调试提供足够的灵活性 D) 以上全部 4 软件测试是软件开发过程中重要和不可缺少的阶段,其包含的内容和步骤甚多,而测试过程的多种环节中最基础的是 _。 A) 集成测试 B) 单元测试 C) 系统测试 D) 验收测试 5 下面的逻辑测试覆盖中 ,测试覆盖最弱的是 _。 A) 条件覆盖 B) 条件组合覆盖 C) 语句覆盖 D) 判定 /条件覆盖 6 下列关于逻辑覆盖的叙述中,说法错误的是 _。 A) 对于多分支的判定,判定覆盖要使每一个判定表达式获得每一
3、种可能的值来测试 B) 语句覆盖是比较弱的覆盖标准 C) 语句覆盖较判定覆盖严格,但该测试仍不充分 D) 条件组合覆盖是比较强的覆盖标准 7 下列叙述中,正确的是 _。 A) 软件测试的目标是保证交付的软件产品不包含缺陷 B) 软件测试有利于降低软件产品发布后的维护费用 C) 测试包是指一个测试脚本,它由一组顺序执行的测试用例组成 D) 在 V模型中,集成测试用例的设计对应于软件需求分析活动 8 一个多用户的应用系统通常有用户管理功能,允许增加新的用户。用户信息一般包括用户名,假设规定用户名必须是以字母开头的、不超过 8个字符的字母数字串,那么,下面哪组值均属于用户名的无效等价类 _。 A)
4、li111111, G1enford Myers, 1238123 B) Lin-Yie, Lin-feng,空值, linyifei C) lin-yifei,空值, Myers G, genford D) lin-yifei, lin-fen, a111111, genford 9 下列情况通常会考虑使用自动测试的是 _。 A) 对软件产品的次要部件进行测试 B) 所开发的软件产品的需求不稳定 C) 需要反复执行的测试,使用不同输入数据值进行反复测试 D) 由客户方组织的验收测试 10 同行评审是一种通过作者的同行来确认缺陷和需要变更区域的检查方法。它主要分为管理评审、技术评审、过程评审和
5、 _。 A) 误差评审 B) 项目评审 C) 文档评审 D) 组织体系评审 11 以下哪种软件测试不属于软件性能测试的范畴 _。 A) 接口测试 B) 并发测试 C) 压力测试 D) 配置测试 12 软件可靠性测试的目的是 _。 A) 发现软件缺陷 B) 预测软件正式运行中的可靠性 C) 控制测试过程 D) 修改软件缺陷 13 下列关于面向对象测试问题的说法中,不正确的是 _。 A) 在面向对象软件测试时,设计每个类的测试用例时,不仅仅要考虑调用各个成员方法的输入参数,还需要考虑如何设计调用的序列 B) 构造抽象类的驱动程序会比构造其他类的驱动程序 复杂 C) 类 B继承自类 A,如果对 B进
6、行了严格的测试,就意味着不需再对类 A进行测试 D) 在存在多态的情况下,为了达到较高的测试充分性,应对所有可能的绑定都进行测试 14 在面向对象软件的基干集成测试策略中,将基干中的模块形成基干子系统使用的集成方式是 _。 A) 大突击集成方式 B) 自底向上集成方式 C) 自顶向下集成方式 D) 综合集成方式 15 以下哪一项不属于 Web应用软件表示层测试关注的范畴是 _。 A) 排版结构的测试 B) 链接结构的测试 C) 客户端兼容性的测试 D) 数据完整性测试 16 下面 Web应用软件的测试策略中,不属于表示层的测试内容的是 _。 A) 链接结构的测试 B) 浏览器兼容性的测试 C)
7、 排版结构的测试 D) 服务器端程序的测试 17 下列不属于浏览器兼容性测试考虑的问题是 _。 A) 软件是否可以在不同的 J2EE中运行 B) 不同的浏览器是否可以提供合适的安全设置 C) 脚本和插件是否适用于不同的浏览器 D) 符合最新 HTML版本的页面能否在浏览器中正确显示 18 下列不属于易用性测试的是 _。 A) 易安装性 测试 B) 兼容性测试 C) 用户界面测试 D) 功能易用性测试 19 下列选项中,不属于面向构件提供者的构件测试目标是 _。 A) 检查为特定项目而创建的新构件的质量 B) 检查在特定平台和操作环境中构件的复用、打包和部署 C) 尽可能多地揭示构件错误 D)
8、验证构件的功能、接口、行为和性能 20 在极限测试过程中,贯穿始终的是 _。 A) 单元测试和集成测试 B) 单元测试和系统测试 C) 集成测试和系统测试 D) 集成测试和验收测试 21 没有正确修复的缺陷,需要进一步修复 的缺陷是 _。 A) New More Info B) DiferredNext Bu-1d C) DiferredNext Main Release D) Reopen 22 软件过程管理最起码的要求是 _。 A) 管理好软件缺陷报告 B) 管理好软件测试用例 C) 管理好测试过程工具 D) 管理好测试说明文档 23 若是软件企业内部测试团队开展的软件测试,最适合采用 _
9、来组织测试。 A) H模型 B) V模型 C) w模型 D) X模型 24 测试人员和开发人员交 流的纽带是 _。 A) 软件设计报告 B) 测试说明文档 C) 软件缺陷报告 D) 测试执行报告 25 用 QESAT/C工具进行软件分析与测试时,以下说法错误的是 _。 A) 白盒测试又称为程序结构测试,它主要进行程序逻辑结构的覆盖测试 B) 在进行测试之前,必须先建立以 .prj为后缀的测试项目 C) 被测源文件可放在任意目录下 D) 进行软件静态分析不必运行被测程序 二、论述题( 3题,共 50分 ) 论述题答题必须用蓝、黑色钢笔或圆珠笔写在论述题答题纸的相应位置上,否则无效。 26 请仔细
10、阅读以下程序并完成要求。 If(a 2 b 3) (c 4| d 5) Flag=1; Else Flag=0; ) 请分别按照语句覆盖、判定覆盖、条件覆盖、判定 /条件覆盖测试用例。 26 以下是学生选课系统中 “学生成绩查询 ”交互行为的描述,请仔细阅读程序并完成要求。 交互开始时,终端上显示首页,用户选择 “查询 ”请求后,显示 “请输入学号 ”。在用户输入学号后,系统核对学生 学号:若输入的学号不正确,则显示 “输入的学号不正确 ”,此次查询取消,回到首页;若输入的学号正确,则出现 “请输入课程名称 ”。一旦输入课程名,就开始核对课程名称:若输入的课程名称不正确,则显示“输入的课程名称
11、不正确 ”,此次查询取消,回到首页;若输入的课程名称正确,则根据 “学号 ”和 “课程名 ”查询学生成绩。 若查询学生成绩成功,则显示查询到的成绩,系统询问是否继续查询:当用户选择 “继续查询 ”后回到 “请输入学号 ”;当用户选择 “结束查询 ”后回到首页。若查询失败,则显示 “查询失败 ”后回到首页。 27 请给出该系 统的基本路径集。 28 请给出覆盖基本路径集的测试用例集合。 28 以下是班级成绩处理平台的程序流程图,请仔细阅读程序并完成要求。 该平台允许最多输入 100个学生的成绩,以 -1作为输入结束标志。 N2存放输入的学生成绩个数, N1存放输入成绩中有效成绩的个数, sum存
12、放成绩总和。初始化 N2=N1=O, sum=0。计算其中有效的学生分数的个数、总分数和平均值。请针对该程序流程图进行基本路径覆盖测试用例设计。 29 导出过程的控制流图。 30 确定基本测试路径集合。 30 关于软件测试过程 ,请回答以下问题。 31 软件测试过程模型主要有哪些 ?各有何特点 ? 32 应当如何正确选取过程模型 ? 33 以下是某程序说明,请按要求回答问题。 程序说明:假设有一个把数字串转换为整数的函数。其中数字串要求长度为 1 6个数字构成,机器字长为 16位。 分析程序中出现的边界情况,采用边界值法为该程序设计测试用例。 33 简单谈一下你对穷举测试的理解,并按要求回答问
13、题。 34 穷举测试的方法对于所有项目程序都是可行的吗 ? 35 若是针对小型的程序,穷举测试是可能的吗 ?若是,说明 此时采用穷举测试能否保证程序是百分之百正确呢 ? 36 根据你对单元测试的理解,谈谈在任何情况下单元测试都是可能的吗 ?都是需要的吗 ? 计算机新国家四级软件测试工程师模拟试卷 20答案与解析 一、选择题(每小题 2分,共 50分) 下列各题 A、 B、 C、 D四个选项中,只有一个选项是正确的,请将此选项涂写在答题卡相应位置上,答在试卷上不得分。 1 【正确答案】 C 【试题解析】 白盒测试又称为逻辑驱动测试,这种测试策略是对程序的逻辑结构进行检查,从中获取测试数据。所以说
14、白盒测试是一种以程序内部的逻辑结构 为基础的测试用例设计技术。 2 【正确答案】 C 【试题解析】 白盒测试是程序员十分了解程序的前提下,对程序的逻辑结构进行的测试。而黑盒测试则将程序视为一个黑盒子,仅仅是测试人员提供输入数据,观察输出数据,并不了解程序是如何运行的,结构测试属于白盒测试,关注的是如何选择合适的程序或子程序路径来执行有效的检查。功能测试则属于黑盒测试,对功能的测试通常通过提供输入数据,检查实际输出的结果,很少考虑程序的内部结构。 3 【正确答案】 D 【试题解析】 在程序设计过程中,要为程序调试做好准备,主 要体现在: 采用模块化、结构化的设计方法设计程序; 根据程序调试的需要
15、,选择并安排适当的中间结果输出必要的断点; 编写程序时要为调试提供足够的灵活性。 4 【正确答案】 B 【试题解析】 软件测试是软件开发过程中重要和不可缺少的阶段,其包含的内容和步骤甚多,而测试过程的多种环节中最基础的是单元测试。 5 【正确答案】 C 6 【正确答案】 C 7 【正确答案】 B 【试题解析】 软件测试的目标是发现缺陷,证明程序有错而非证明其正确。故 A不正确。测试包是指一个测试脚本,是一组测试工 具执行的指令集合。故 C不正确。在 V模型中,单元测试和集成测试用例的设计对应于软件设计要求,系统测试用例对应于系统要求的指标,验证测试对应于用户的需要或合同的要求。故 D不正确。
16、8 【正确答案】 A 9 【正确答案】 C 10 【正确答案】 C 11 【正确答案】 A 【试题解析】 依据测试目的的不同,可以把软件性能测试及与性能有关的其他测试分为以下几类: (1)性能测试 (Performance Testing); (2)并发测试 (Concurrency Testing); (3)压力测试 (Stress Testing); (4)可靠性测试 (Reliability Testing); (5)负载测试 (Load Testing); (6)配置测试 (Configuration Testing); (7)失效恢复测试 (Recovery Testing)。 12
17、 【正确答案】 B 【试题解析】 与其他的软件测试不同,软件可靠性测试的目的不在于通过测试揭示软件中的缺陷并通过修改软件缺陷来提高软件可靠性,而是通过受控的软件测试过程来预测软件在实际运行 中的可靠性,即收集软件测试时揭示软件故障的情况,并对其进行整理从而为分析和预测软件实际的可靠性提供帮助。 13 【正确答案】 C 【试题解析】 由于面向对象具有封装的特点,在设计类的测试用例时,不仅要考虑各成员方法的输入参数,还要考虑如何设计调用的序列。若类 B继承自类 A,如果对 B进行了严格的测试,有些情况也许可以就不对类 A进行测试,但由于继承的存在,就会导致类 A的规格说明可能与类 B不一致,此时就
18、必须按照类 A的规格说明重新对类 A进行测试。多态是指对一个类的引用可以与多个类的实现绑定。抽象类是指只有一 些成员方法而没有其实现的类,甚至有的抽象类中的所有成员方法都没有实现,在测试抽象类时,需要为抽象类构造一个子类,并实现所有抽象类没有实现的成员方法,这也说明构造抽象类的驱动程序显然比构造其他类的驱动程序复杂。 14 【正确答案】 A 【试题解析】 面向对象软件的基干集成测试策略的具体测试步骤为: 对基干中的每个模块进行孤立的、充分的测试; 对基干中的所有模块进行一次性集成,形成基干子系统,并使用一个驱动模块检查使用经过一次性集成的基干,此时采用的是大突击集成方式; 对应用的控制子系统进
19、行自顶向下的 集成; 集成基干和控制子系统,重新构造控制子系统; 对各应用子系统采用自底向上的集成策略; 集成基干子系统、控制子系统和各应用子系统,形成整个系统。基干集成的优点是集成了自底向上集成、自顶向下集成和大突击集成三者的优点,而对三者的缺点也进行了控制,更适合于大型复杂项目的集成。 15 【正确答案】 D 【试题解析】 Web应用软件表示层的测试主要集中在客户端,测试的内容包括: (1)排版结构的测试; (2)链接结构的测试; (3)客户端程序的测试; (4)浏览器兼容性测试 ; 16 【正确答案】 D 17 【正确答案】 A 【试题解析】 与 Web浏览器的兼容性的测试问题包括: 符
20、合最新 HTML版本的页面能否在浏览器中正确显示。 脚本和插件是否适用于不同的浏览器,某些脚本和插件只适用于特定的浏览器,如 Active X,只有 IE浏览器支持。 不同的浏览器对于安全性的设置各有不同,需要测试不同浏览器是否可以为使用该 Web应用提供合适的安全设置。 18 【正确答案】 B 【试题解析】 易用性测试一般不仅针对应用程序,还要包括用户文档,除了对 用户文档的测试,易用性测试主要包括 3个方面:易安装性测试、功能易用性测试和用户界面测试。而兼容性测试是与易用性测试并列的测试方法,两者不存在包含关系。 19 【正确答案】 A 【试题解析】 面向构件提供者的测试目标是: 尽可能多
21、地揭示构件错误; 验证构件的功能、接口、行为和性能,以保证它们符合给定的构件规约,检查在特定平台和操作环境中构件的复用、打包和部署。而面向构件复用者的测试目标是: 验证可复用构件的功能和性能; 在特定平台和操作环境下,确保可复用构件的正确使用和部署; 检查可复用构件定制而成 的构件的质量; 检查为特定项目而创建的新构件的质量。 20 【正确答案】 D 【试题解析】 极限编程采用的是一种频繁迭代的开发方式,整个软件项目由一系列增量式开发组成。而极限测试本质上就是为了满足极限编程的思想和流程而设计的一套测试策略和流程,从极限测试流程图中,我们可以看出,单元测试和验收测试是贯穿始终的关键步骤。 21
22、 【正确答案】 D 【试题解析】 定义软件缺陷的状态如下: 新错误 (New) 测试中新报告的软件缺陷。 更多新信息 (New More Info) 开 发工程师认为报告的缺陷信息不完整,要求缺陷报告者添加更准确的缺陷信息。 打开 (Open) 缺陷被确认并分配给相关开发工程师处理。 拒绝 (Declined) 拒绝修改缺陷。 修正 (Fixed) 开发工程师已完成修正,等待测试人员验证。 重新打开 (Reopen) 没有正确修复的缺陷,需要进一步修复。 延期 (Diferred) 不在当前版本修复的缺陷,以后的版本修复,包括两种情况: 延期 下个版本 (Diferred-Next Build
23、) 本项目的下一 个新版本修复; 延期 下个主要版本 (Diferred-Next Main Release)一 本项目不修复,本软件下一个项目的版本修复。 关闭 (Closed) 缺陷已被修复。 22 【正确答案】 A 23 【正确答案】 A 【试题解析】 假如是软件企业内部测试团队开展的软件测试,由于软件测试介入较早,在测试开始时被测系统很可能是不完整的,会不断有新的系统模块加入到系统中,因此最适合采用 H模型来组织测试,可以为每一个新增的系统模块设计一次系统测试。 24 【正确答案】 C 25 【正确答案】 B 【试题解析】 白盒测试又称为程序结构测试,它主要进行程序逻辑结构的覆盖测试。
24、用 QESAT/C工具进行测试之前,首先应定义项目文件,用以描述被测程序的组成,该项目文件通常以 .pjt作为扩展名。用 QE-SAT/C工具进行软件分析与测试时,被测源文件可放在任意目录下。进行软件静态分析不必运行被测程序,便可得到程序的结构信息及程序的复杂度信息,将被测程序运行后才得到的信息就是动态测试信息。 二、论述题( 3题,共 50分 ) 论述题答题必须用蓝、黑色钢笔或圆珠笔写在论述题答题纸的相 应位置上,否则无效。 26 【正确答案】 语句覆盖是基本的覆盖,只要能让 flag=1和 flag=0都被执行一次就达到了语句覆盖的标准。用例 1和用例 2一起即满足了语句覆盖标准的要求。
25、判定覆盖就是让程序的判定分别为真和假一次,因此上面满足语句覆盖的测试用例也满足判定覆盖标准的要求。 条件覆盖需要让所有判定条件取一次真和一次假因此测试用例 3和用例 4一起让所有条件都取到了真和假,满足条件判定覆盖要求。 27 【正确答案】 由控制流图可以看出,该图的 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 28 【正确答案】 首页 -输入错误学号 -回首页;首页 -输入正确学号 -输入错误课程号 -回首页;首页 -输入正确学号 -输入正确课程号 -给出学生成绩 -
26、结束返回首页;首页输入正确学号 -输入正确课程号 -给出学生成绩 -继续输入学号 -输入学号错误回首页;首页输入正确学号 -输入正确课程号给出学生成绩 -继续输入学号 -输入课程号 -输入错误课程号回首页。 29 【正 确答案】 该程序的过程控制流图如下。 30 【正确答案】 该过程该过程控制流图的圈复杂性度量 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 31 【正确答案】 V模型: V模型反映出测试活动与分析设计活动的关系。指出单元测
27、试和集成测试应检测程序的执行是否满足软件设计的要求。系统测试应检测系统功能、性能的质量特性是 否达到系统要求的指标。验收测试确定软件的实现是否满足用户需要或合同的要求。 W模型: W模型指出软件各开发阶段中应同步进行的验证和确认活动,即测试与开发也应是同步进行的。 W模型有利于尽早和全面地发现问题。 H模型: V模型与 W模型有不妥,即它们都把软件的开发视为需求、设计和编码等一系列串行的活动,而事实上,这些活动是可以交叉进行的。 H模型揭示一点:软件测试是一个独立的流程,贯穿于产品的整个生命周期中,与其他流程并发进行。 其他模型: 除了上面几种常见模型外,还有 X模型、前 置测试模型等。 32
28、 【正确答案】 在实践中,应当尽可能地运用各个模型中对项目有实用价值的方面,不能强行地为使用模型而使用模型。建议采用的方法是:以 W模型作为框架,及早、全面地开展测试,同时灵活运用 H模型独立测试的思想,在达到恰当的就绪点时就应该开展独立的测试工作,同时将测试工作进行迭代,最终保证完成测试目标。 33 【正确答案】 分析该程序的说明和功能,显然可以划分 4组测试等价类:有效输入等价类、无效输入等价类、合法输出等价类和非法输出等价类。在考虑该程序的合法输出和非法输出时需要考虑计算机的字长 ,这时要进行边界值法设计测试用例,以补充等价类法设计的测试用例。具体采用边界值法设计的测试用例如下: (1)
29、使程序输入刚好等于最小的负整数: 输入: -32768 输出: -32768 (2)使程序输入刚好等于最大的正整数: 输入: 32767 输出: 32767 (3)使程序输入刚好小于最小的负整数: 输入: -32769 输出:错误 (4)使程序输入刚好大于最大的正整数: 输入: 32768 输出:错误 34 【正确答案】 不是。穷举测试的方法并不是对所有程序都可以实现。 35 【正确答案】 对小程序进行穷举测试,也不见得能保证程序百分之百正确。所谓穷举测试,是拿所有可能的输入数据来作为测试用例 (黑盒测试 ),或覆盖程序中所有可能的路径 (白盒测试 )。对于小程序来说,实际上并不能真正做到穷举测试。 36 【正确答案】 单元测试又称模块测试,是针对软件设计的最小单位 程序模块,进行正确性检验的测试工作。其目的在于发现各模块内部可能存在的各种差错。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测 试。 单元测试是在编码阶段完成的,每编写出一个程序模块,就开始做这个模块的单元测试,所以只要采用模块化方法设计开发的软件,单元测试都是必需的。这时单元测试通常由编写程序的人来完成。因为它需要根据程序的内部逻辑结构设计测试用例,对于那些不了解程序内部细节的人,单元测试无法进行。