1、计算机四级软件测试工程师-80 及答案解析(总分:78.99,做题时间:90 分钟)一、选择题(总题数:25,分数:51.00)1.以程序内部的逻辑结构为基础的测试用例设计技术属于_。A) 灰盒测试 B) 数据测试 C) 黑盒测试 D) 白盒测试(分数:2.00)A.B.C.D.2.集成测试中使用的主要测试方法为_。A) 黑盒测试 B) 灰盒测试 C) 回归测试 D) 白盒测试(分数:2.00)A.B.C.D.3.以下关于软件性能测试的说法中,正确的是A) 软件性能测试的主要目的是检验软件是否能充分发挥硬件的潜能B) 软件性能测试通常采用数据流测试技术生成测试用例C) 软件性能测试实际上是一种
2、软件可靠性测试D) 软件性能测试的实施通常需要依赖性能测试辅助软件(分数:2.00)A.B.C.D.4._是一种独立的迭代的测试模型。(A) W 模型(B) V 模型(C) H 模型(D) X 模型(分数:2.00)A.B.C.D.5.软件产品首先应该满足的属性是A) 客户的功能需求 B) 容错和纠错能力C) 性能需求 D) 可扩展性和灵活性(分数:2.00)A.B.C.D.6.测试计划中最主要的内容有 _。A确定测试范围 B划分测试任务C确定日程表和组织团队 D以上全部(分数:2.00)A.B.C.D.7.下列测试用例设计中既适用于失效恢复测试用例设计又适用于健壮性测试用例设计的方法为_。A
3、) 规范导出法 B) 错误猜测法C) 基于故障的测试 D) 基于风险的测试(分数:2.00)A.B.C.D.8.失效回复测试(Recovery Testing),其目标是_。A) 测试各种资源在超负荷的情况下的运行情况B) 检测系统可以处理目标内确定的数据容量C) 度量系统的性能和预先定义的目标有多大差距D) 验证系统从软件或者硬件失效中恢复的能力(分数:2.00)A.B.C.D.9.关于对软件测试定义的理解,下边哪句话是正确的_。A) 应用系统开发完毕,再对它进行测试B) 软件开发中产生的错误都源于编码阶段的错误代码C) 测试是我们考查并理解与发布的软件系统有关的利益和风险状况的过程D) 完
4、备的测试能够详尽地表明软件中不存在的错误(分数:2.00)A.B.C.D.10.下列选项中不属于桌上检查的检查项目的是_。A) 等价性检查B) 检查子程序、宏、函数C) 功能检查D) 风格检查(分数:3.00)A.B.C.D.11.若是软件企业内部测试团队开展的软件测试,最适合采用来组织测试_。AH 模型 BV 模型 CW 模型 DX 模型(分数:2.00)A.B.C.D.12.软件验证和确认理论是测试过程的理论依据,具中确认是检查我们是否在建成一个正确的产品,它强调的是 _。A过程的正确性 B产品的正确性C测试的正确性 D规格说明的正确性(分数:2.00)A.B.C.D.13.下列测试方法中
5、,不属于黑盒测试的是 _。A基本路径测试法 B等价类测试法C边界值分析法 D基于场景的测试方法(分数:2.00)A.B.C.D.14.以下的叙述中不是单元测试目的的是A) 验证代码是否与设计相符合 B) 发现设计和需求中存在的缺陷C) 发现在编码过程中引入的错误 D) 检查用户接口是否满足客户的需求(分数:2.00)A.B.C.D.15.使程序中每个判定表达式的每个条件的可能取值至少执行一次的覆盖方式被称为_。(A) 逻辑覆盖(B) 语句覆盖(C) 判定覆盖或分支覆盖(D) 条件覆盖(分数:2.00)A.B.C.D.16.下列关于测试设计与开发的说法中,不正确的是_。A软件测试设计与开发活动是
6、软件测试过程中对技术要求比较高的关键阶段B软件测试设计与开发主要包括测试技术方案的制定、测试用例设计C测试用例特定集合的设计、测试开发和测试环境的设计都是软件测试设计与开发的范畴D测试设计与开发活动对软件进行需求确定性估算(分数:2.00)A.B.C.D.17.软件可靠性测试的目的是_。A发现软件缺陷 B预测软件正式运行中的可靠性C控制测试过程 D修改软件缺陷(分数:2.00)A.B.C.D.18.按照数据库应用系统生命周期模型,在开发某数据库应用系统时,对系统采用的软硬件及技术方案等作出合理的评估并提出选择建议的工作属于_。A) 规划与分析阶段的系统规划与定义B) 规划与分析阶段的可行性分析
7、C) 需求分析阶段的业务规则需求分析D) 系统设计阶段的总体设计(分数:2.00)A.B.C.D.19.软件可靠性预测的目的是_。(A) 根据软件在可靠性与测试揭示的故障情况来预测软件在正在运行时的故障和实效情况(B) 通过受控的软件测试过程来预测软件在实际运行中的可靠性(C) 通过软件测试揭示软件缺陷并通过修改缺陷来提高软件可靠性(D) 关注可能导致失效的事件及其实效概率,并计算出各种事件组合导致失效的概率(分数:2.00)A.B.C.D.20.同行评审是一种通过作者的同行来确认缺陷和需要变更区域的检查方法。它主要分为管理评审、技术评审、过程评审和_。A) 误差评审 B) 项目评审 C) 文
8、档评审 D) 组织体系评审(分数:2.00)A.B.C.D.21.对采用迭代或增量开发过程模型开发的产品进行集成测试时最适合采用的集成策略是_。A) 传统的集成测试策略 B) 基于使用的集成测试策略C) 基干集成测试策略 D) 高频集成测试策略(分数:2.00)A.B.C.D.22.下列构件测试方法中,允许不同的验证工具共同操作,可以消除冗余测试问题的是 _。A构件方法序列 B内置测试法C基于形式化的构件测试 D基于构件交互图的方法(分数:2.00)A.B.C.D.23.在测试日程表的制定中,预期完成日期与被测试系统投产、发布和部署的日期应该 _。A完全一致 B基本一致C有一定的时间间隔 D不
9、确定(分数:2.00)A.B.C.D.24.以下叙述中不属于软件产品质量要求的是A) 应满足客户的功能需求和性能要求B) 应具备一定的可扩展性和灵活性,以适应需求的变化C) 应能够有效地处理例外或异常情况D) 应保证数据库的完整性和安全性(分数:2.00)A.B.C.D.25.下列关于面向对象测试问题的说法中,不正确的是A) 在面向对象软件测试时,设计每个类的测试用例时,不仅仅要考虑调用各个成员方法的输入参数,还需要考虑如何设计调用的序列B) 构造抽象类的驱动程序会比其他类的驱动程序复杂C) 类 B 继承自类 A,如果对 B 进行了严格的测试,就意味着不需要对类 A 进行测试D) 在存在多态的
10、情况下,为了达到较高的测试充分性,应对所有可能的绑定都进行测试(分数:2.00)A.B.C.D.二、论述题(总题数:1,分数:28.00)针对以下 C 语言程序,请按要求回答问题。下面是一个简单的 C 语言程序:int funcl(int a,b,c)int k=1; if(a0 | b0) k=k+a; else k=k+b; if(c0) k=k+c; return k; (分数:27.99)(1).画出该函数的程序流程图。(分数:9.33)_(2).设计测试用例,分别使函数的各种逻辑覆盖率尽量达到 100%。如果认为该函数的某种逻辑覆盖率无法达到 100%,需要说明原因。(分数:9.33
11、)_(3).设计特殊的测试用例,说明各种逻辑覆盖之间的关系。(分数:9.33)_计算机四级软件测试工程师-80 答案解析(总分:78.99,做题时间:90 分钟)一、选择题(总题数:25,分数:51.00)1.以程序内部的逻辑结构为基础的测试用例设计技术属于_。A) 灰盒测试 B) 数据测试 C) 黑盒测试 D) 白盒测试(分数:2.00)A.B.C.D. 解析:解析 白盒测试又称为逻辑驱动测试,这种测试策略是对程序的逻辑结构进行检查,从中获取测试数据。所以说白盒测试是一种以程序内部的逻辑结构为基础的测试用例设计技术。2.集成测试中使用的主要测试方法为_。A) 黑盒测试 B) 灰盒测试 C)
12、回归测试 D) 白盒测试(分数:2.00)A. B.C.D.解析:解析 集成测试中主要是使用基于功能的黑盒测试。3.以下关于软件性能测试的说法中,正确的是A) 软件性能测试的主要目的是检验软件是否能充分发挥硬件的潜能B) 软件性能测试通常采用数据流测试技术生成测试用例C) 软件性能测试实际上是一种软件可靠性测试D) 软件性能测试的实施通常需要依赖性能测试辅助软件(分数:2.00)A.B.C.D. 解析:解析 软件性能测试的目标是发现缺陷、性能调优、能力检验与规划。软件性能测试和可靠性测试是同一级别的测试。4._是一种独立的迭代的测试模型。(A) W 模型(B) V 模型(C) H 模型(D)
13、X 模型(分数:2.00)A.B.C. D.解析:5.软件产品首先应该满足的属性是A) 客户的功能需求 B) 容错和纠错能力C) 性能需求 D) 可扩展性和灵活性(分数:2.00)A. B.C.D.解析:解析 客户的功能需求是软件产品首先应该满足的属性。6.测试计划中最主要的内容有 _。A确定测试范围 B划分测试任务C确定日程表和组织团队 D以上全部(分数:2.00)A.B.C.D. 解析:7.下列测试用例设计中既适用于失效恢复测试用例设计又适用于健壮性测试用例设计的方法为_。A) 规范导出法 B) 错误猜测法C) 基于故障的测试 D) 基于风险的测试(分数:2.00)A.B. C.D.解析:
14、解析 健壮性测试常用的测试用例设计方法有:故障插入测试、变异测试和错误猜测法。失效恢复测试常用的测试用例设计方法有:规范导出法、错误猜测法、基于故障的测试和基于风险的测试。所以选择 B 选项。8.失效回复测试(Recovery Testing),其目标是_。A) 测试各种资源在超负荷的情况下的运行情况B) 检测系统可以处理目标内确定的数据容量C) 度量系统的性能和预先定义的目标有多大差距D) 验证系统从软件或者硬件失效中恢复的能力(分数:2.00)A.B.C.D. 解析:解析 失效恢复测试的目标就是验证系统从软件或者硬件失效中恢复的能力。失效回复测试采用各种人为干预的方式使软件出错,造成人为的
15、系统失效,进而检查系统的恢复能力。9.关于对软件测试定义的理解,下边哪句话是正确的_。A) 应用系统开发完毕,再对它进行测试B) 软件开发中产生的错误都源于编码阶段的错误代码C) 测试是我们考查并理解与发布的软件系统有关的利益和风险状况的过程D) 完备的测试能够详尽地表明软件中不存在的错误(分数:2.00)A.B.C. D.解析:解析 A)有一种传统的观念认为:“应用系统开发完毕,再对它进行测试”。用这种思想来指导测试工作是相当危险的。对于软件质量的判断绝不只限于程序本身,它同编码以前所完成的需求分析以及软件设计工作密切相关。B)表现在程序中的错误,并不一定是编码所引起的,有可能是详细设计、概
16、要设计阶段,甚至是需求分析阶段引起的问题。C)我们可以使用风险来对测试进行定义:测试时我们考查并理解与发布的软件系统有关的利益和风险状况的过程。D)测试的目的是寻找错误,并且是花最少代价、在最短时间内尽最大可能找出软件中潜在的各种错误和缺陷。测试不能表明软件中不存在的错误,它只能说明软件中存在的错误。10.下列选项中不属于桌上检查的检查项目的是_。A) 等价性检查B) 检查子程序、宏、函数C) 功能检查D) 风格检查(分数:3.00)A.B.C. D.解析:解析 程序员进行桌上检查的目的是进行代码检查,主要检查项目包括:检查变量的交叉引用表、检查标号的交叉引用表检查子函数、宏、函数,等价性检查
17、,常量检查,标准检查,风格检查,比较控制流,选择、激活路径,补充文档等。由此可以看出只有选项 C 不在桌上检查的检查项目之中。11.若是软件企业内部测试团队开展的软件测试,最适合采用来组织测试_。AH 模型 BV 模型 CW 模型 DX 模型(分数:2.00)A. B.C.D.解析:解析 假如是软件企业内部测试团队开展的软件测试,由于软件测试介入较早,在测试开始时被测系统很可能是不完整的,会不断有新的系统模块加入到系统中,因此最适合采用 H 模型来组织测试,可以为每一个新增的系统模块设计一次系统测试。12.软件验证和确认理论是测试过程的理论依据,具中确认是检查我们是否在建成一个正确的产品,它强
18、调的是 _。A过程的正确性 B产品的正确性C测试的正确性 D规格说明的正确性(分数:2.00)A.B. C.D.解析:解析 验证是检查我们是否正在正确地建造一个产品,它强调的是过程的正确性;而确认是检查我们是否在建成一个正确的产品,它强调的是产品的正确性。13.下列测试方法中,不属于黑盒测试的是 _。A基本路径测试法 B等价类测试法C边界值分析法 D基于场景的测试方法(分数:2.00)A. B.C.D.解析:14.以下的叙述中不是单元测试目的的是A) 验证代码是否与设计相符合 B) 发现设计和需求中存在的缺陷C) 发现在编码过程中引入的错误 D) 检查用户接口是否满足客户的需求(分数:2.00
19、)A.B.C.D. 解析:解析 单元测试的目的不包含检查用户接口是否满足客户的需求。15.使程序中每个判定表达式的每个条件的可能取值至少执行一次的覆盖方式被称为_。(A) 逻辑覆盖(B) 语句覆盖(C) 判定覆盖或分支覆盖(D) 条件覆盖(分数:2.00)A.B.C.D. 解析:16.下列关于测试设计与开发的说法中,不正确的是_。A软件测试设计与开发活动是软件测试过程中对技术要求比较高的关键阶段B软件测试设计与开发主要包括测试技术方案的制定、测试用例设计C测试用例特定集合的设计、测试开发和测试环境的设计都是软件测试设计与开发的范畴D测试设计与开发活动对软件进行需求确定性估算(分数:2.00)A
20、.B.C.D. 解析:解析 软件测试设计与开发活动是软件测试过程中对技术要求比较高的关键阶段。软件测试设计与开发主要包括测试技术方案的制定、测试用例设计、测试用例特定集合的设计、测试开发和测试环境的设计都是软件测试设计与开发的范畴。而软件的需求确定性估算是在测试总结环节中应考虑的问题,而不是测试设计和开发阶段。17.软件可靠性测试的目的是_。A发现软件缺陷 B预测软件正式运行中的可靠性C控制测试过程 D修改软件缺陷(分数:2.00)A.B. C.D.解析:解析 与其他的软件测试不同,软件可靠性测试的目的不在于通过测试揭示软件中的缺陷并通过修改软件缺陷来提高软件可靠性,而是通过受控的软件测试过程
21、来预测软件在实际运行中的可靠性,即收集软件测试时揭示软件故障的情况,并对其进行整理,从而为分析和预测软件实际的可靠性提供帮助。18.按照数据库应用系统生命周期模型,在开发某数据库应用系统时,对系统采用的软硬件及技术方案等作出合理的评估并提出选择建议的工作属于_。A) 规划与分析阶段的系统规划与定义B) 规划与分析阶段的可行性分析C) 需求分析阶段的业务规则需求分析D) 系统设计阶段的总体设计(分数:2.00)A.B. C.D.解析:解析 技术可行性是根据用户提出的系统功能、性能及实现系统的各项约束条件,对系统软件、系统硬件、技术方案做出评估和选择建议,它属于规划与分析阶段的可行性分析。19.软
22、件可靠性预测的目的是_。(A) 根据软件在可靠性与测试揭示的故障情况来预测软件在正在运行时的故障和实效情况(B) 通过受控的软件测试过程来预测软件在实际运行中的可靠性(C) 通过软件测试揭示软件缺陷并通过修改缺陷来提高软件可靠性(D) 关注可能导致失效的事件及其实效概率,并计算出各种事件组合导致失效的概率(分数:2.00)A. B.C.D.解析:20.同行评审是一种通过作者的同行来确认缺陷和需要变更区域的检查方法。它主要分为管理评审、技术评审、过程评审和_。A) 误差评审 B) 项目评审 C) 文档评审 D) 组织体系评审(分数:2.00)A.B.C. D.解析:解析 同行评审是一种通过作者的
23、同行来确定缺陷和需要变更区域的检查方法。涉及的内容很多,主要可以分为管理评审、技术评审、文档评审和过程评审。21.对采用迭代或增量开发过程模型开发的产品进行集成测试时最适合采用的集成策略是_。A) 传统的集成测试策略 B) 基于使用的集成测试策略C) 基干集成测试策略 D) 高频集成测试策略(分数:2.00)A.B.C.D. 解析:解析 高频集成是指在软件开发过程中频繁地将新开发地代码与已有代码集成。最适用于采用迭代或增量开发过程模型开发的产品进行集成测试。22.下列构件测试方法中,允许不同的验证工具共同操作,可以消除冗余测试问题的是 _。A构件方法序列 B内置测试法C基于形式化的构件测试 D
24、基于构件交互图的方法(分数:2.00)A.B.C. D.解析:23.在测试日程表的制定中,预期完成日期与被测试系统投产、发布和部署的日期应该 _。A完全一致 B基本一致C有一定的时间间隔 D不确定(分数:2.00)A.B.C. D.解析:24.以下叙述中不属于软件产品质量要求的是A) 应满足客户的功能需求和性能要求B) 应具备一定的可扩展性和灵活性,以适应需求的变化C) 应能够有效地处理例外或异常情况D) 应保证数据库的完整性和安全性(分数:2.00)A.B.C.D. 解析:解析 软件产品质量要求包括:满足客户的功能需求;具备一定的可扩展性和灵活性,以适应一定程度的需求变化;能够有效地处理例外
25、或异常情况。25.下列关于面向对象测试问题的说法中,不正确的是A) 在面向对象软件测试时,设计每个类的测试用例时,不仅仅要考虑调用各个成员方法的输入参数,还需要考虑如何设计调用的序列B) 构造抽象类的驱动程序会比其他类的驱动程序复杂C) 类 B 继承自类 A,如果对 B 进行了严格的测试,就意味着不需要对类 A 进行测试D) 在存在多态的情况下,为了达到较高的测试充分性,应对所有可能的绑定都进行测试(分数:2.00)A.B.C. D.解析:解析 由于面向对象具有封装的特点,在设计类的测试用例时,不仅仅要考虑调用各个成员方法的输入参数,还需要考虑如何设计调用的序列。若类 B 继承自类 A,如果对
26、 B 进行了严格的测试,有些情况也许就可以不对类 A 进行测试,但由于继承的存在,就会导致类 A 的规格说明可能与类 B 不一致,此时就必须按照类 A 的规格说明对类 A 重新进行测试。多态是指对一个类的引用可以与多个类的实现绑定。抽象类足指只有一些成员方法而没有其实现的类,甚至有的抽象类中的所有成员方法都没有实现,在测试抽象类时,需要为抽象构造一个子类,并实现所有抽象类没有实现的成员方法,这也说明构造抽象类的驱动程序显然比构造其他类的驱动程序复杂。二、论述题(总题数:1,分数:28.00)针对以下 C 语言程序,请按要求回答问题。下面是一个简单的 C 语言程序:int funcl(int a
27、,b,c)int k=1; if(a0 | b0) k=k+a; else k=k+b; if(c0) k=k+c; return k; (分数:27.99)(1).画出该函数的程序流程图。(分数:9.33)_正确答案:(根据源程序易得流程图,如下图所示。)解析:(2).设计测试用例,分别使函数的各种逻辑覆盖率尽量达到 100%。如果认为该函数的某种逻辑覆盖率无法达到 100%,需要说明原因。(分数:9.33)_正确答案:(经过分析不难知,上面这个程序包含:1)5 个语句:每行一个语句;2)3 个条件:a0;b0;c0;3)4 个分支:有两个 if 语句,每个 if 语句有两个分支;4)6 个
28、条件组合:条件表达式(a0) | (b0)共有两个条件 a0 和 b0,故有 4 个条件组合;条件表达式(c0)只有一个条件 c0,故有两个条件组合。所以该程序共有 6 个条件组合;5)4 条路径:从程序的入口到出口的路径共有 4 条,分别是:Path1:123568Path2:123578Path3:124568Path4:124578)解析:(3).设计特殊的测试用例,说明各种逻辑覆盖之间的关系。(分数:9.33)_正确答案:(这个程序有 3 个输入:a、b、c,其输入数据组合是非常大的。下面对该程序分别应用不同的逻辑覆盖准则,设计测试用例。首先根据源程序画出程序流图比较容易,然后分析学过
29、的所有的逻辑覆盖(如语句覆盖,分支覆盖,路径覆盖等),分析针对每种逻辑覆盖的标准来设计测试用例。通过设计测试用例来体现各种逻辑覆盖之间的关系。1语句覆盖根据语句覆盖准则,只需要采用两个输入数据组合:(a,b,c)=(1,1,1)、(-1,1,1),便可以把该程序的所有 5 个语句执行一遍。2分支覆盖(判定覆盖)根据分支覆盖准则,只需要采用两个输入数据组合:(a,b,c)=(1,1,-1)、(-1,1,1),便可以把该程序的所有 4 个分支走遍。但未考虑 b0 的情况,故不满足条件覆盖。说明满足分支覆盖的测试用例未必满足条件覆盖。3条件覆盖根据条件覆盖准则,只需要采用两个输入数据组合:(a,b,
30、c)=(1,1,-1)、(-1,-1,1),便可以把该程序的 3 个条件的真假情况都覆盖到。由于表达式(a0)|(b0)的计算值都为真,不会执行 else 语句,即不满足分支覆盖和语句覆盖。说明满足条件覆盖的未必满足分支覆盖和语句覆盖。4条件组合覆盖根据条件组合的覆盖准则,只需要采用 4 个输入数据组合:(a,b,c)=(1,-1,1)、(1,1,1)、(-1,1,-1)、(-1,-1,-1),便可以把该程序的 6 个条件组合情况覆盖到。但执行的路径数只有 2 个,故不满足路径覆盖。说明满足条件组合的覆盖不一定满足路径覆盖。5路径覆盖根据路径覆盖的准则,只需要采用 4 个输入数据组合:(a,b,c)=(1,1,1)、(1,1,-1)、(-1,1,1)、(-1,1,-1),便可以把该程序的所有 4 条路径都覆盖。路径覆盖是最强的覆盖准则。)解析: