1、四级软件测试工程师-21 及答案解析(总分:65.00,做题时间:90 分钟)一、选择题(总题数:23,分数:45.00)1.以下关于面向对象软件测试的说法中,正确的是(分数:2.00)A.等价类测试是面向对象软件白盒测试的常用手段B.数据流测试是面向对象软件黑盒测试的常用手段C.面向对象软件的可靠性测试需要考虑继承的影响D.面向对象软件的覆盖率测试需要考虑多态的影响2.下面的逻辑测试覆盖中,测试覆盖最弱的是 _。(分数:1.00)A.条件覆盖B.条件组合覆盖C.语句覆盖D.判定/条件覆盖3.下列关于软件测试过程的几种抽象模型,说法正确的是_。(分数:2.00)A.H 模型指出软件测试具有独立
2、性,只要某个测试达到准备就绪点,测试执行活动就可以开展B.W 模型强调在整个项目开发中需要经历的不同测试级别,指明测试的对象是程序C.软件测试过程与软件开发过程不同的是,它不必遵循软件工程原理D.V 模型强调测试的对象不仅仅是程序,需求、设计等同样需要测试4.失效回复测试(Recovery Testing),其目标是_。(分数:2.00)A.测试各种资源在超负荷的情况下的运行情况B.检测系统可以处理目标内确定的数据容量C.度量系统的性能和预先定义的目标有多大差距D.验证系统从软件或者硬件失效中恢复的能力5.下面 Web 应用软件的测试策略中,不属于表示层的测试内容的是_。(分数:2.00)A.
3、链接结构的测试B.浏览器兼容性的测试C.排版结构的测试D.服务器端程序的测试6.在面向对象软件的集成测试中,关于程序的系统测试,说法错误的是_。(分数:2.00)A.面向对象系统测试的主要目标是测试开发出来的软件是否是问题空间的一个合理解B.对于系统测试而言,面向对象软件与传统结构化软件并没有本质区别C.面向对象软件测试技术主要有功能测试和其他系统测试D.面向对象的系统测试,与传统的面向过程的结构化软件测试方法,在类与对象这一块有着本质的区别7.一个好的程序实现是要考虑各种可能出错的条件,并进行适当的出错处理,即预设各种出错处理的_。(分数:2.00)A.现象B.策略C.通路D.场景8.下列关
4、于覆盖率的使用原则,描述错误的是(分数:2.00)A.覆盖率不是目的,只是一种手段B.只考虑一种覆盖率指标是不恰当的C.应该追求绝对 100%的覆盖率D.不可能针对所有的覆盖率指标去进行测试9.下面有关渐增式集成和非渐增式集成测试的说法中错误的是 _。(分数:2.00)A.非渐增式集成测试方法把单元测试和集成测试分为两个不同的阶段,而渐增式集成测试方法往往把单元测试和集成测试合在一起同时完成B.渐增式集成需要较多的工作量,而非渐增式集成需要的工作量较少C.渐增式集成可以较早的发现接口错误,非渐增式集成直到最后组装时才能发现接口上的问题D.渐增式集成有利于排错,发现的错误往往和最后加入的模块有关
5、。而非渐增式集成发现接口错误较迟且很难判断是哪一部分接口出错10.关于易用性测试,说法错误的是 _。(分数:1.00)A.用户界面测试是软件易用性测试最重要的一项内容B.对软件功能的动态关联进行测试可以通过检查菜单完成C.使用软件的目的就是减少重复输入,减轻人工劳动,提高工作效率D.检查和评估软件安装手册的正确性和易用性是安装性测试的重要内容11.在面向对象程序系统测试中,最常用的测试技术是 _。(分数:2.00)A.基于用例的测试B.基于大纲的测试C.性能测试D.可靠性测试12.关于同行评审说法正确的是_。(分数:3.00)A.同行评审是对程序进行模拟,一步步地展示程序如何处理测试数据B.同
6、行评审虽然可以缩减工作时间,但同时也增加了大量的成本C.在软件开发过程中进行同行评审会浪费时间,减缓项目的进度D.同行评审的目的就是发现产品的缺陷,因此在评审上的投入可以减少大量的后期返工13.关于软件可靠性测试的目的,下列说法错误的是_。(分数:2.00)A.通过受控的软件测试过程来实现B.预测软件在实际运行中的可靠性C.不通过测试揭示该软件缺陷D.通过修改缺陷来提高软件的可靠性14.下面有关测试原则的说法中正确的是(分数:2.00)A.测试用例应由测试的输入数据和预期的输出结果两部分组成B.测试用例只需选取合理的输入数据C.程序最好由编写该程序的程序员自己来测试D.使用测试用例进行测试是为
7、了检查程序是否做了它该做的事15.下列不属于内部设计的是_。(分数:3.00)A.数据设计B.逻辑设计C.界面设计D.结构设计16.下列活动不是在测试计划文档中规定的是(分数:2.00)A.被测试的特征B.选择的测试方法C.被测试的项D.应完成的测试任务17.失效回复测试(Recovery Testing),其目标是_。(分数:2.00)A.测试各种资源在超负荷的情况下的运行情况B.检测系统可以处理目标内确定的数据容量C.度量系统的性能和预先定义的目标有多大差距D.验证系统从软件或者硬件失效中恢复的能力18.关于 Web 应用软件的特点描述,错误的是_。(分数:2.00)A.基于无连接协议B.
8、由内容驱动C.开发周期较长,演变较慢D.完全性要求较高19.软件设计是将软件需求转换为软件表示的过程,主要描绘出系统结构、详细的处理过程和 _。(分数:2.00)A.软件模式B.数据模式C.数据库管理模式D.数据库模式20.阅读以下程序:采用逻辑覆盖进行测试,下列测试用例(a,b,c)的输入值,可以达到条件覆盖的是_。 Int func(int a,b,c) Int k=1; If(a0)|(b0)|(a+c0) k=k+a; Else k=k+b; If(c0) k=k+c; Return k“ (分数:2.00)A.(1,1,1),(-1,1,1)B.(1,1,1),(-1,-1,-1)C
9、.(1,1,-1),(1,1,1)D.(1,1,-1),(1,1,1)21.下列叙述中正确的是(分数:2.00)A.测试配置是软件配置的一个子集B.软件测试仅是在编程之后进行的测试C.错误发现的越晚,改正的代价就越大,这个代价是呈现接近线性增长的趋势D.需求规格说明、概要设计规格说明、详细设计规格说明、源程序这些并不全是软件测试的对象22.在程序设计过程中,要为程序调试做好准备,主要体现在 _。(分数:1.00)A.采用模块化、结构化的设计方法设计程序B.根据程序调试的需要,选择并安排适当的中间结果输出必要的断点C.编写程序时要为调试提供足够的灵活性D.以上全部23.以下关于 Web 应用软件
10、测试的说法中错误的是_。(分数:2.00)A.数据完整性测试是 Web 应用软件数据层测试的一项重要内容B.内容测试是 Web 应用软件易用性测试的一项重要内容C.表单测试是 Web 应用软件功能测试的一项重要内容D.客户端内容安全性的测试是 Web 应用软件安全性测试的一项重要内容二、论述题(总题数:2,分数:20.00)24.简述类树层次的测试。 (分数:10.00)_25.简述如何测试分布式系统。 (分数:10.00)_四级软件测试工程师-21 答案解析(总分:65.00,做题时间:90 分钟)一、选择题(总题数:23,分数:45.00)1.以下关于面向对象软件测试的说法中,正确的是(分
11、数:2.00)A.等价类测试是面向对象软件白盒测试的常用手段B.数据流测试是面向对象软件黑盒测试的常用手段C.面向对象软件的可靠性测试需要考虑继承的影响D.面向对象软件的覆盖率测试需要考虑多态的影响 解析:解析 等价类测试属于黑盒测试,数据流属于白盒测试。面向对象软件有封装、继承、多态、继承与多态的复合等特点。由于一个引用可以绑定多个实现,而具体绑定哪个实现需要在运行时刻才能决定,而且不同的输入会导致在运行时刻绑定不同的实现,即一个引用根据不同的输入调用不同的实现。从语句的覆盖角度,仅仅覆盖该引用所在的语句并不意味完全覆盖各种不同的实现,只有覆盖了该引用调用各种实现的情况才算完全覆盖。所以面向
12、对象软件覆盖率需要考虑多态。2.下面的逻辑测试覆盖中,测试覆盖最弱的是 _。(分数:1.00)A.条件覆盖B.条件组合覆盖C.语句覆盖 D.判定/条件覆盖解析:解析 在逻辑覆盖中,测试覆盖最弱的是语句覆盖。3.下列关于软件测试过程的几种抽象模型,说法正确的是_。(分数:2.00)A.H 模型指出软件测试具有独立性,只要某个测试达到准备就绪点,测试执行活动就可以开展 B.W 模型强调在整个项目开发中需要经历的不同测试级别,指明测试的对象是程序C.软件测试过程与软件开发过程不同的是,它不必遵循软件工程原理D.V 模型强调测试的对象不仅仅是程序,需求、设计等同样需要测试解析:解析 软件测试过程体现了
13、软件测试的流程和方法,与软件开发过程一样,都遵循软件工程原理,遵循管理学原理,故选项 C 不正确。V 模型反映出测试活动与分析设计活动的关系,强调了在整个项目开发过程中需要经历的不同测试级别,忽视了测试的对象不应该仅仅是程序,W 模型是对 V 模型进行了补充,明确指出:测试的对象不仅仅是程序,需求、设计等同样需要进行测试,H 模型指出软件测试是一个独立的流程,只要某个测试达到准备就绪点,测试执行活动就可以开展,软件测试贯穿于产品的整个生命周期,与其他流程可以并发进行。4.失效回复测试(Recovery Testing),其目标是_。(分数:2.00)A.测试各种资源在超负荷的情况下的运行情况B
14、.检测系统可以处理目标内确定的数据容量C.度量系统的性能和预先定义的目标有多大差距D.验证系统从软件或者硬件失效中恢复的能力 解析:解析 失效恢复测试的目标就是验证系统从软件或者硬件失效中恢复的能力。失效回复测试采用各种人为干预的方式使软件出错,造成人为的系统失效,进而检查系统的恢复能力。5.下面 Web 应用软件的测试策略中,不属于表示层的测试内容的是_。(分数:2.00)A.链接结构的测试B.浏览器兼容性的测试C.排版结构的测试D.服务器端程序的测试 解析:解析 通常 Web 应用软件的测试分为 3 层:表示层、业务层和数据层。其中表示层的测试主要集中在客户端,测试内容主要包括:排版结构的
15、测试;链接结构的测试;客户端程序的测试;浏览器兼容性测试。6.在面向对象软件的集成测试中,关于程序的系统测试,说法错误的是_。(分数:2.00)A.面向对象系统测试的主要目标是测试开发出来的软件是否是问题空间的一个合理解B.对于系统测试而言,面向对象软件与传统结构化软件并没有本质区别C.面向对象软件测试技术主要有功能测试和其他系统测试D.面向对象的系统测试,与传统的面向过程的结构化软件测试方法,在类与对象这一块有着本质的区别解析:解析 面向对象程序的系统测试的主要目标是测试开发出来的软件是否是问题空间的一个合理解,因此对于系统测试而言,面向对象软件与传统结构化软件并没有本质区别。7.一个好的程
16、序实现是要考虑各种可能出错的条件,并进行适当的出错处理,即预设各种出错处理的_。(分数:2.00)A.现象B.策略C.通路 D.场景解析:解析 一个好的设计应能预见各种出错条件,并进行适当的出错处理,即预设各种出错处理通路。出错处理是模块功能的一部分,这种带有预见性的机制保证了在程序出错时,对出错部分及时修补,保证其逻辑上的正确性。因此,出错处理同样需要认真测试。8.下列关于覆盖率的使用原则,描述错误的是(分数:2.00)A.覆盖率不是目的,只是一种手段B.只考虑一种覆盖率指标是不恰当的C.应该追求绝对 100%的覆盖率 D.不可能针对所有的覆盖率指标去进行测试解析:解析 覆盖率的使用原则包括
17、: 覆盖率不是目的,只是一种手段。因为测试的主要目的还是尽可能地去发现错误。 不可能针对所有的覆盖率指标去进行测试,相反,如果只考虑一种覆盖率指标也是不恰当的。 不要追求绝对 100%的覆盖率。9.下面有关渐增式集成和非渐增式集成测试的说法中错误的是 _。(分数:2.00)A.非渐增式集成测试方法把单元测试和集成测试分为两个不同的阶段,而渐增式集成测试方法往往把单元测试和集成测试合在一起同时完成B.渐增式集成需要较多的工作量,而非渐增式集成需要的工作量较少 C.渐增式集成可以较早的发现接口错误,非渐增式集成直到最后组装时才能发现接口上的问题D.渐增式集成有利于排错,发现的错误往往和最后加入的模
18、块有关。而非渐增式集成发现接口错误较迟且很难判断是哪一部分接口出错解析:10.关于易用性测试,说法错误的是 _。(分数:1.00)A.用户界面测试是软件易用性测试最重要的一项内容B.对软件功能的动态关联进行测试可以通过检查菜单完成 C.使用软件的目的就是减少重复输入,减轻人工劳动,提高工作效率D.检查和评估软件安装手册的正确性和易用性是安装性测试的重要内容解析:解析 对软件功能的关联包括静态关联和动态关联两方面,其中对于静态关联的测试可以通过检查菜单完成,而对于动态关联的测试需要针对各项任务设计测试用例,以检查软件能否合理引导用户使用下一步的功能,故选项 B 说法不正确。11.在面向对象程序系
19、统测试中,最常用的测试技术是 _。(分数:2.00)A.基于用例的测试B.基于大纲的测试 C.性能测试D.可靠性测试解析:12.关于同行评审说法正确的是_。(分数:3.00)A.同行评审是对程序进行模拟,一步步地展示程序如何处理测试数据B.同行评审虽然可以缩减工作时间,但同时也增加了大量的成本C.在软件开发过程中进行同行评审会浪费时间,减缓项目的进度D.同行评审的目的就是发现产品的缺陷,因此在评审上的投入可以减少大量的后期返工 解析:解析 同行评审是一种通过作者的同行来确定缺陷和需要变更区域的检查方法。在软件开发过程中,管理者、开发人员、客户有时都反对评审,因为他们认为评审会浪费时间,减缓项目
20、的进度。而实际上,真正造成项目进度缓慢的是各种各样的产品缺陷,评审的重要目的就是在评审中发现产品的缺陷,因此在评审上的投入便可以减少大量的后期返工。通过评审还可将问题记下来,具有历史可追溯性,另外很多事实证明了评审在缩减工作时间的同时还可以节约大量成本。13.关于软件可靠性测试的目的,下列说法错误的是_。(分数:2.00)A.通过受控的软件测试过程来实现B.预测软件在实际运行中的可靠性C.不通过测试揭示该软件缺陷D.通过修改缺陷来提高软件的可靠性 解析:解析 软件的可靠性测试目的:通过受控的软件测试过程来预测软件在实际运行中的可靠性,而不是通过测试来揭示软件缺陷并通过修改缺陷来提高软件的可靠性
21、。14.下面有关测试原则的说法中正确的是(分数:2.00)A.测试用例应由测试的输入数据和预期的输出结果两部分组成 B.测试用例只需选取合理的输入数据C.程序最好由编写该程序的程序员自己来测试D.使用测试用例进行测试是为了检查程序是否做了它该做的事解析:解析 由测试原则第 3 条“程序员应避免测试自己的程序”和第 4 条“在设计测试用例时,应该包括合理的和不合理的输入条件”可知,B 和 C 显然不对。又由测试的目的是找错而不是证明程序正确可知,D 也不正确,所以排除法得选项 A 正确。15.下列不属于内部设计的是_。(分数:3.00)A.数据设计B.逻辑设计C.界面设计 D.结构设计解析:解析
22、 软件设计分为内部设计和外部设计,而外部设计主要是从用户的角度对产品进行描述,主要是设计用户界面,最后会产生文档形式的外部设计规格说明;内部设计则主要描述产品的内部工作机制,具体又可以细分为结构设计、数据设计和逻辑设计。16.下列活动不是在测试计划文档中规定的是(分数:2.00)A.被测试的特征B.选择的测试方法 C.被测试的项D.应完成的测试任务解析:解析 选择的测试方法应在测试说明文档中给予规定和描述,而非测试计划文档中。17.失效回复测试(Recovery Testing),其目标是_。(分数:2.00)A.测试各种资源在超负荷的情况下的运行情况B.检测系统可以处理目标内确定的数据容量C
23、.度量系统的性能和预先定义的目标有多大差距D.验证系统从软件或者硬件失效中恢复的能力 解析:解析 失效恢复测试的目标就是验证系统从软件或者硬件失效中恢复的能力。失效回复测试采用各种人为干预的方式使软件出错,造成人为的系统失效,进而检查系统的恢复能力。18.关于 Web 应用软件的特点描述,错误的是_。(分数:2.00)A.基于无连接协议B.由内容驱动C.开发周期较长,演变较慢 D.完全性要求较高解析:解析 所谓 Web 应用软件,就是 Browser/Server(B/S)结构的软件,其特点是基于无连接协议,内容驱动,开发周期短,演化频繁,安全性要求高,美观性要求较高。19.软件设计是将软件需
24、求转换为软件表示的过程,主要描绘出系统结构、详细的处理过程和 _。(分数:2.00)A.软件模式B.数据模式C.数据库管理模式D.数据库模式 解析:20.阅读以下程序:采用逻辑覆盖进行测试,下列测试用例(a,b,c)的输入值,可以达到条件覆盖的是_。 Int func(int a,b,c) Int k=1; If(a0)|(b0)|(a+c0) k=k+a; Else k=k+b; If(c0) k=k+c; Return k“ (分数:2.00)A.(1,1,1),(-1,1,1)B.(1,1,1),(-1,-1,-1) C.(1,1,-1),(1,1,1)D.(1,1,-1),(1,1,1
25、)解析:21.下列叙述中正确的是(分数:2.00)A.测试配置是软件配置的一个子集 B.软件测试仅是在编程之后进行的测试C.错误发现的越晚,改正的代价就越大,这个代价是呈现接近线性增长的趋势D.需求规格说明、概要设计规格说明、详细设计规格说明、源程序这些并不全是软件测试的对象解析:解析 软件测试应坚持全过程测试,因此 B、D 选项错误,C 选项代价与发现的时间呈现指数增长的趋势。故本题选 A。22.在程序设计过程中,要为程序调试做好准备,主要体现在 _。(分数:1.00)A.采用模块化、结构化的设计方法设计程序B.根据程序调试的需要,选择并安排适当的中间结果输出必要的断点C.编写程序时要为调试
26、提供足够的灵活性D.以上全部 解析:解析 在程序设计过程中,要为程序调试做好准备,主要体现在:采用模块化、结构化的设计方法设计程序;根据程序调试的需要,选择并安排适当的中间结果输出必要的断点;编写程序时要为调试提供足够的灵活性。23.以下关于 Web 应用软件测试的说法中错误的是_。(分数:2.00)A.数据完整性测试是 Web 应用软件数据层测试的一项重要内容B.内容测试是 Web 应用软件易用性测试的一项重要内容 C.表单测试是 Web 应用软件功能测试的一项重要内容D.客户端内容安全性的测试是 Web 应用软件安全性测试的一项重要内容解析:解析 数据完整性和大数据量数据库性能测试是 We
27、b 应用软件数据层测试的内容之一,A 说法正确;Web 应用的测试策略包括内容测试和易用性测试,但这两种测试是独立的,B 说法不正确;链接测试、表单测试和 Cookie 测试是 Web 功能测试的 3 个方面,C 说法正确;Web 应用软件安全性测试包括服务器端的内容安全性、客户端的内容安全性和 Cookie 安全性 3 个方面,D 说法正确。二、论述题(总题数:2,分数:20.00)24.简述类树层次的测试。 (分数:10.00)_正确答案:()解析:面向对象软件的继承性与多态性使得子类的测试不仅要考虑其自身的成员变量与成员方法,还应考虑其父类和祖先类的影响。类树层次的测试主要包括: (1)
28、多态服务测试。在对子类进行测试时,从其父类测试用例集(如果已存在)中选取涉及多态方法的测试用例,并把子类的实例当做父类的实例进行测试。 (2)展平测试。将子类自身定义的成员方法和成员变量,以及从父类和祖先类继承来的成员方法和成员变量组成一个新类,并对其进行测试。25.简述如何测试分布式系统。 (分数:10.00)_正确答案:()解析:对于没有专门的服务器层、由许多并发运行且没有专门控制轨迹的构件所组成的分布式系统,可采用分布式集成测试策略,用于测试松耦合的同级构件的交互关系。常用的集成顺序有以下几种: (1)风险驱动。 (2)反风险驱动。 (3)依赖性驱动。 (4)优先级驱动。 分布式集成的优缺点:类似于 C/S 集成。 分布式集成的适用范围:分布式软件系统。