1、计算机四级软件测试工程师-37 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:25,分数:50.00)1.对于 Web 应用软件系统测试技术,下列不属于功能测试的是(分数:2.00)A.表单测试B.并发测试C.链接测试D.Cookie 测试2.一个好的脚本是易于使用和易于维护的,所以在编写时需遵循的原则有(分数:2.00)A.提供适当的注释B.功能C.结构和文档D.以上全邵3.下列活动不是在测试汁划文档中规定的是(分数:2.00)A.被测试的特征B.被测试的项C.选择的测试方法D.应完成的测试任务4.对测试用例进行管理,可以依据测试用例编写过程的属性、组织过程的属性
2、和(分数:2.00)A.创建过程的属性B.测试过程的属性C.执行过程的属性D.管理过程的属性5.软件过程管理最起码的要求是(分数:2.00)A.管理好软件缺陷报告B.管理好软件测试用例C.管理好测试过程工具D.管理好测试说明文档6.下列不属于浏览器兼容性测试考虑的问题的是(分数:2.00)A.软件是否可以在不同的 J2EE 中运行B.不同的浏览器是否可以提供合适的安全设置C.脚本和插件是否适用于不同的浏览器D.符合最新 HTML 版本的页面能否在浏览器中正确显示7.通常走查小组中,程序编写者占(分数:2.00)A.0 个B.1 个C.2 个D.不确定8.如果一个判定中的复合条件表达式为(A=0
3、)or(B=7),则为了达到 100%的判定覆盖率,至少需要设计多少个测试用例(分数:2.00)A.1 个B.2 个C.3 个D.4 个9.下列叙述中,说法错误的是(分数:2.00)A.不应该采用模块化方法开发自动测试脚本B.自动测试一般要求被测试的应用系统相对稳定C.应尽量使单元测试自动化D.自动测试脚本可能包含错误,也需要进行维护10.下列选项中属于专用的应用服务器的是(分数:2.00)A.IBM 公司开发的 WebSpereB.微软公司开发的 MTS(Microsoft Transaction Server)C.BEA 公司开发的 WebLogicD.Oracle 公司开发的 Oracl
4、e 9i Application Server11.在模块测试的过程中,采用自底向上的测试比自顶向下的测试(分数:2.00)A.好B.差C.一样D.不确定12.测试整个应用系统是否满足用户需求,这种测试是(分数:2.00)A.集成测试B.系统测试C.单元测试D.配置项测试13.以下哪种软件测试不属于软件性能测试的范畴(分数:2.00)A.接口测试B.并发测试C.压力测试D.配置测试14.下面与软件呵靠性有关的概念中,理解不正确的是(分数:2.00)A.软件错误不仅包括程序代码的错误,软件开发过程中所有制品的错误及软件的文档、手册中的错误都可以归为软件错误B.软件故障是指软件代码中的错误C.在软
5、件的一次运行期间,软件故障一定会导致软件失效D.通常修改软件故障可以降低软件发生失效的概率,从而提高软件可靠性15.不需要运行程序,通过收集有关代码的结构信息来对程序进行的测试是(分数:2.00)A.性能测试B.黑盒测试C.白盒测试D.静态分析16.下列兼容性不属于软件兼容性的考虑范畴的是(分数:2.00)A.与外设的兼容性B.与不同类软件的兼容性C.与浏览器的兼容性D.与中间件的兼容性17.在 QESAT/C 中,下列属于动态测试过程的步骤的是(分数:2.00)A.设定待测试的配置、编译相关的源程序B.设定需插装的函数C.运行源程序、合并动态运行的结果D.以上全部18.下面有关测试设计的叙述
6、中,说法不正确的是(分数:2.00)A.测试用例的设计是一项技术性强、智力密集型的活动B.在测试用例设计时,只设计覆盖正常流程和操作的测试用例即可C.在开展测试用例设计前,必须将测试需求进行详细展开D.在一般的测试组织内,测试用例的评审可能不是正式的评审会19.在软件性能测试中,下列指标叶 J 哪个不是软件性能的指标(分数:2.00)A.响应时间B.吞吐量C.资源利用率D.并发进程数20.构件本身的特性为构件化软件和构件测试带来新的挑战,下面不属于给测试构件软件带来的困难的是(分数:2.00)A.异构性B.演化性C.源代码的可得性D.测试的充分性21.在单元测试用例的设计中,使用白盒测试应达到
7、的覆盖率目标是(分数:2.00)A.语句覆盖率达到 100%B.分支覆盖率达到 100%C.覆盖程序中的主要路径D.以上全部22.通常,测试人员判定一个运行结果中存在缺陷的准则是(分数:2.00)A.测试人员可以从中找出缺陷的证据B.开发人员承认这个运行结果中存在缺陷C.这个运行结果与测试案例中的预期结果不一致D.这个运行结果与测试人员预期的不一致23.以下选项中不属于 ISO 软件质量模型的是(分数:2.00)A.外部质量模型B.使用质量模型C.维护质量模型D.内部质量模型24.Myers 在 1979 年提出了一个重要观点,即软件测试的目的是为了(分数:2.00)A.证明程序正确B.查找程
8、序错误C.改正程序错误D.验证程序无错误25.一般说来,对一个程序单元的测试应满足一些具体的技术要求,或达到一定的技术指标。下面选项中属于单元测试相关的技术要求或指标的是(分数:2.00)A.语句覆盖率达到 100%B.局部变量的边界条件处理正确C.逻辑比较和控制流处理正确D.以上全部二、论述题(总题数:3,分数:50.00)以下是某应用程序的规格描述,请按要求回答问题。程序规则:实现某城市的电话号码,该电话号码由三部分组成。它的说明如下:区号空白或 3 位数字;前缀非“0”或“1”开头的 3 位数字;后缀 4 位数字。(分数:20.00)(1).请分析该程序的规则说明和被测程序的功能。(分数
9、:10.00)_(2).采用等价类划分方法设计测试用例。(分数:10.00)_26.一套完整的测试应该由哪些阶段组成?分别阐述一下各个阶段。(分数:12.00)_简单谈一下你对穷举测试的理解,并按要求回答问题(分数:18.00)(1).穷举测试的方法对于所有项日程序都是可行的吗?(分数:9.00)_(2).若是针对小型的程序,穷举测试是可能的吗?若是,说明此时采用穷举测试能否保证程序是百分之百正确呢?(分数:9.00)_计算机四级软件测试工程师-37 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:25,分数:50.00)1.对于 Web 应用软件系统测试技术,下列不属
10、于功能测试的是(分数:2.00)A.表单测试B.并发测试 C.链接测试D.Cookie 测试解析:解析 Web 应用软件的系统测试技术除了功能测试外还包括性能测试、易用性测试、内容测试、安全性测试和接口测试等。由于 Web 应用软件的特殊性,在按照测试大纲对 Web 应用软件进行系统测试前通常要进行几个方面的功能测试,主要包括:链接测试,表单测试,Cookie 测试。而由于 Web 应用软件常用的性能指标是并发用户数,所以在性能测试中主要围绕这个指标进行测试,故并发测试应是属于性能测试中的,另外性能测试还包括负载测试和压力测试,配置测试和性能调优。2.一个好的脚本是易于使用和易于维护的,所以在
11、编写时需遵循的原则有(分数:2.00)A.提供适当的注释B.功能C.结构和文档D.以上全邵 解析:解析 脚本是测试体系的关键部分,所以保证脚本质量很重要,一个好的脚本应是易于使用和易于维护的。编写好的脚本需遵循的编写原则有:注释,为用户和管理者提供帮助;功能,执行单个任务且可以重用。结构,应易读、易理解和易维护;文档,有助于复用和维护。3.下列活动不是在测试汁划文档中规定的是(分数:2.00)A.被测试的特征B.被测试的项C.选择的测试方法 D.应完成的测试任务解析:解析 测试计划文档中描述了活动的范围、方法、资源和进度。它规定了被测试的项、被测试的特征、应完成的测试任务、负责各项工作的人员及
12、与本计划有关的风险等。选项 C 中测试方法的选择应在测试说明文档中给予规定和描述。4.对测试用例进行管理,可以依据测试用例编写过程的属性、组织过程的属性和(分数:2.00)A.创建过程的属性B.测试过程的属性C.执行过程的属性 D.管理过程的属性解析:解析 测试用例要经过创建、修改和不断完善的过程。测试用例的属性有:优先次序、目标性、所属的范围、关联性、阶段性、状态性、时效性、所有者、日期等特性。根据测试用例的属性及编号等可对测试用例进行基于数据库方式的良好管理,另外也可以依据测试用例编写过程的属性、组织过程的属性和执行过程的属性来对测试用例进行有效管理。5.软件过程管理最起码的要求是(分数:
13、2.00)A.管理好软件缺陷报告 B.管理好软件测试用例C.管理好测试过程工具D.管理好测试说明文档解析:解析 软件缺陷报告是软件测试过程中的核心测试产品之一,也是重要的测试产品,因此管理好软件缺陷报告是软件过程管理最起码的要求。6.下列不属于浏览器兼容性测试考虑的问题的是(分数:2.00)A.软件是否可以在不同的 J2EE 中运行 B.不同的浏览器是否可以提供合适的安全设置C.脚本和插件是否适用于不同的浏览器D.符合最新 HTML 版本的页面能否在浏览器中正确显示解析:解析 软件兼容性的测试问题包括:符合最新 HTML 版本的页面能否在浏览器中正确显示;脚本和插件是否适用于不同的浏览器,某些
14、脚本和插件只适用于特定的浏览器,如 Active x,只有 IE 浏览器支持;不同的浏览器对于安全性的设置各有不同,需要测试不同浏览器是否可以为使用该 Web 应用提供合适的安全设置。7.通常走查小组中,程序编写者占(分数:2.00)A.0 个B.1 个 C.2 个D.不确定解析:解析 走查是以小组为单位进行,是一系列规程和错误检查技术的集合,参加走查小组的人员有限制,通常仅有一人是程序编写者。8.如果一个判定中的复合条件表达式为(A=0)or(B=7),则为了达到 100%的判定覆盖率,至少需要设计多少个测试用例(分数:2.00)A.1 个B.2 个 C.3 个D.4 个解析:解析 题目要求
15、达到 100%的判定覆盖率,即要求所有的判定真假都至少执行一次,故我们取定(A=12,B=7)和(A=7,B=10)两组测试用例,即可满足题目要求。9.下列叙述中,说法错误的是(分数:2.00)A.不应该采用模块化方法开发自动测试脚本 B.自动测试一般要求被测试的应用系统相对稳定C.应尽量使单元测试自动化D.自动测试脚本可能包含错误,也需要进行维护解析:解析 自动测试脚本最好采用模块化方法。10.下列选项中属于专用的应用服务器的是(分数:2.00)A.IBM 公司开发的 WebSpereB.微软公司开发的 MTS(Microsoft Transaction Server) C.BEA 公司开发
16、的 WebLogicD.Oracle 公司开发的 Oracle 9i Application Server解析:解析 应用服务器的分类目前还没有一个被广泛认可的标准,若从面向的领域角度划分,应用服务器可分为通用的应用服务器和专用的应用服务器,其中通用的应用服务器是指能够提供多方面的服务,从而支持多个领域应用的开发与运行的应用服务器,专用的应用服务器是指为特定领域的应用提供特定的一组服务的应用服务器。目前的通用服务器主要有 BEA 公司开发的 Tuxedo 和 WebLogic,IBM 公司开发的WebSpere,Oracle 公司开发的 Oracle 9i Application Server
17、 Macromedia 公司开发的 JRUN 等,专用的应用服务器有微软公司开发的 MTs(Microsoft Transaction Server)。11.在模块测试的过程中,采用自底向上的测试比自顶向下的测试(分数:2.00)A.好 B.差C.一样D.不确定解析:解析 自底向上测试和自顶向下测试都是增量式的测试方法,在自底向上测试中,首先测试最底层的模块,利用辅助的驱动模块调用,然后测试高层次的模块。而白顶向下测试则刚好相反,它是首先测试顶层模块,无需编写驱动模块,但要使用桩模块,然后测试下一层模块。二者各有优缺点,但权衡来看,自底向上测试的方法要优于自顶向下测试方法。12.测试整个应用系
18、统是否满足用户需求,这种测试是(分数:2.00)A.集成测试B.系统测试 C.单元测试D.配置项测试解析:解析 通过执行程序代码完成的测试通常包括:单元测试、集成测试和系统测试。其中单元测试是指针对完成单一功能的函数的测试,集成测试是指针对程序中的集成结构的测试,而系统测试是指测试整个应用系统是否满足用户需求。13.以下哪种软件测试不属于软件性能测试的范畴(分数:2.00)A.接口测试 B.并发测试C.压力测试D.配置测试解析:解析 依据测试目的的不同,可以把软件性能测试及与性能有关的其他测试分为以下几类:性能测试(Perforomance Testing);并发测试(Concurrency
19、Testing);压力测试(stress Testing);可靠性测试(Reliability Testing);负载测试(Load Testing);配置测试(Configuration Testing);失效恢复测试(Recovery Testing)。14.下面与软件呵靠性有关的概念中,理解不正确的是(分数:2.00)A.软件错误不仅包括程序代码的错误,软件开发过程中所有制品的错误及软件的文档、手册中的错误都可以归为软件错误B.软件故障是指软件代码中的错误C.在软件的一次运行期间,软件故障一定会导致软件失效 D.通常修改软件故障可以降低软件发生失效的概率,从而提高软件可靠性解析:解析 软
20、件故障是指软件代码中的错误,软件失效则是指由软件故障引起的在软件运行期间出现的错误,一般来说在软件的一次运行期间,软件故障可能会导致软件失效,也可能不引起软件失效。15.不需要运行程序,通过收集有关代码的结构信息来对程序进行的测试是(分数:2.00)A.性能测试B.黑盒测试C.白盒测试D.静态分析 解析:解析 软件测试的分类方法比较多,针对测试时是否要运行程序分为静态测试和动态测试,其中静态测试也称静态分析,是不必运行程序的,仅仅是收集程序代码的结构信息而不用查错,相反动态测试则是要执行程序,查出程序的错误非单纯收集代码结构信息。针对测试人员是否要清楚程序的内部逻辑,将测试分为白盒测试和黑盒测
21、试,同时这两种测试方法都是要对程序进行查错,从这一角度考虑,白盒测试和黑盒测试都应属于动态测试。由此本题 D 选项静态分析最恰当。16.下列兼容性不属于软件兼容性的考虑范畴的是(分数:2.00)A.与外设的兼容性 B.与不同类软件的兼容性C.与浏览器的兼容性D.与中间件的兼容性解析:解析 一般软件兼容性测试主要考虑:与操作系统的兼容性,与数据库的兼容性,与浏览器的兼容性,与中间件的兼容性,与其他软件的兼容性,这里包括与其他支撑软件的兼容性、与其他同类软件的兼容性、与不同类软件的兼容性三种情况,与平台软件的兼容性。选项 A 中与外设的兼容性属于硬件兼容性的考虑范畴。17.在 QESAT/C 中,
22、下列属于动态测试过程的步骤的是(分数:2.00)A.设定待测试的配置、编译相关的源程序B.设定需插装的函数C.运行源程序、合并动态运行的结果D.以上全部 解析:解析 动态测试信息足指:将被测程序运行后才能获得的测试信息。做动态测试之前必须先通过静态分析,动态测试过程的步骤如下:设定待测试的配置,设定需插装的函数,编译相关的源程序,运行源程序,合并动态运行的结果。18.下面有关测试设计的叙述中,说法不正确的是(分数:2.00)A.测试用例的设计是一项技术性强、智力密集型的活动B.在测试用例设计时,只设计覆盖正常流程和操作的测试用例即可 C.在开展测试用例设计前,必须将测试需求进行详细展开D.在一
23、般的测试组织内,测试用例的评审可能不是正式的评审会解析:解析 在测试用例设计时,不能只设计覆盖正常流程和操作的测试用例,而必须强制覆盖错误输入处理、边界值处理等场景,以确保被测软件系统投入使用时具备较强的容错能力。19.在软件性能测试中,下列指标叶 J 哪个不是软件性能的指标(分数:2.00)A.响应时间B.吞吐量C.资源利用率D.并发进程数 解析:解析 软件的性能是软件的一种非功能特性。它关注的不是软件是否能够完成特定的功能而是在完成该功能时展现出来的及时性。为了能够客观地度量软件的性能,人们定义了一系列性能指标,以便于能够在不同情况下度量软件的性能。通常合理的软件性能指标有响应时间、系统响
24、应时间和应用延迟时间、吞吐量、并发用户数、资源利用率五种,而题目选项 D 中“并发进程数”不能作为性能指标,故答案为D。20.构件本身的特性为构件化软件和构件测试带来新的挑战,下面不属于给测试构件软件带来的困难的是(分数:2.00)A.异构性B.演化性C.源代码的可得性D.测试的充分性 解析:解析 由于构件本身的特性为构件化软件和构件测试带来新的挑战,测试构件化软件与测试传统的软件不同,主要带来的困难有:异构性,由于系统的构件可以使用不同的编程语言实现,运行在不同的平台上,此性质提供了高度的可扩展性和灵活性,但对构件的互操作性提出较高的要求,所以测试时要考虑异构性带来的软件错误。源代码的可得性
25、,由于 COTS(Commercial.Off.The.Shelf,商业现成产品)构件通常以二进制形式交付,不包括源代码。演化性,基于构件系统的即插即用特性要求构件无需再编译或再配置就可以动态升级,构件升级或增加新构件会经常发生,每次变化都会带来潜在的新问题。21.在单元测试用例的设计中,使用白盒测试应达到的覆盖率目标是(分数:2.00)A.语句覆盖率达到 100%B.分支覆盖率达到 100%C.覆盖程序中的主要路径D.以上全部 解析:解析 单元测试中设计测试用例可以使用白盒测试也可以使用黑盒测试,但以白盒测试为主。为了度量的完整性,通常要求测试达到一定的覆盖率要求,通过覆盖率的统计可以知道测
26、试是否充分。在白盒测试方面可以使用语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、路径覆盖等技术,白盒测试应达到的覆盖率目标是语句覆盖率达到 100%;分支覆盖率达到 100%;覆盖程序中的主要路径,即覆盖完成需求和设计功能的代码所在的路径和程序异常处理执行到的路径。22.通常,测试人员判定一个运行结果中存在缺陷的准则是(分数:2.00)A.测试人员可以从中找出缺陷的证据B.开发人员承认这个运行结果中存在缺陷C.这个运行结果与测试案例中的预期结果不一致 D.这个运行结果与测试人员预期的不一致解析:解析 通常测试人员判定一个运行结果中存在缺陷的准则是这个运行结果与测试案例中的预期结果不一致。23.
27、以下选项中不属于 ISO 软件质量模型的是(分数:2.00)A.外部质量模型B.使用质量模型C.维护质量模型 D.内部质量模型解析:解析 按照 ISO/IEC:91261:2001,软件质量模型可以分为内部质量模型、外部质量模型和使用质量模型三种,故该题不属于 ISO 软件质量模型的是选项 C。24.Myers 在 1979 年提出了一个重要观点,即软件测试的目的是为了(分数:2.00)A.证明程序正确B.查找程序错误 C.改正程序错误D.验证程序无错误解析:解析 Myers 于 1979 年给出测试的定义为:软件测试是为发现错误而执行的一个程序或者系统的过程。同时他给出了三个关于测试的重要观
28、点:测试是为了证明程序有错,而不是证明程序正确。一个好的测试用例在于它能发现以前未发现的错误。一个成功的测试是发现了以前未发现的错误的测试。25.一般说来,对一个程序单元的测试应满足一些具体的技术要求,或达到一定的技术指标。下面选项中属于单元测试相关的技术要求或指标的是(分数:2.00)A.语句覆盖率达到 100%B.局部变量的边界条件处理正确C.逻辑比较和控制流处理正确D.以上全部 解析:解析 考察单元测试的技术指标,所有选项都是单元测试的指标,故选择 D。二、论述题(总题数:3,分数:50.00)以下是某应用程序的规格描述,请按要求回答问题。程序规则:实现某城市的电话号码,该电话号码由三部
29、分组成。它的说明如下:区号空白或 3 位数字;前缀非“0”或“1”开头的 3 位数字;后缀 4 位数字。(分数:20.00)(1).请分析该程序的规则说明和被测程序的功能。(分数:10.00)_正确答案:(首先分析程序的规则说明和被测程序的功能,将其划分等价类并编号,如下:有效等价类输入:(1)区号:空白;(2)区号:3 位数字;(3)前缀:从 100999 的 3 位数字;(4)后缀:4 位数字。无效等价类输入:(5)区号:有非数字字符;(6)区号:少于 3 位数字:(7)区号:多于 3 位数字;(8)前缀:有非数字字符;(9)前缀:起始位为0;(10)前缀:少于 3 位数字;(11)前缀:
30、多于 3 位数字;(12)后缀:有非数字字符;(13)后缀:少于 4 位数字;(14)后缀:多于 4 位数字。)解析:(2).采用等价类划分方法设计测试用例。(分数:10.00)_正确答案:(根据上述等价类的划分,设计测试用例,如下表所示。测试数据 期望结果 覆盖范围()2762345 显示有效输入 1,2,3(635)8059321 显示有效输入 2,3,4无效的测试用例输入,如下表所示。 测试数据 期望结果 覆盖范围(20A)1234567 显示无效输入 5(24)1234567 显示无效输入 6(6428)1234567 显示无效输入 7(245)123B4567 显示无效输人 8(52
31、4)0234567 显示无效输入 9(824)23k4567 显示无效输入 10(824)23274567 显示无效输入 11(824)2364A67 显示无效输入 12(824)236567 显示无效输入 13(824)27345678 显示无效输入 14)解析:解析 首先分析程序的规则说明和被测程序的功能,将其输入情况划分为有效等价类和无效等价类然后按照等价类设计测试用例的方法设计有效的测试用例和无效的测试用例。26.一套完整的测试应该由哪些阶段组成?分别阐述一下各个阶段。(分数:12.00)_正确答案:(分为计划阶段、设计阶段、白盒单元、白盒集成、黑盒单元、黑盒集成、系统测试、回归测试、
32、验收测试。一套完整的测试应该由五个阶段组成:(1)测试计划:首先,根据用户需求报告中关于功能要求和性能指标的规格说明书,定义相应的测试需求报告,即制订黑盒测试的最高标准。以后所有的测试工作都将围绕着测试需求来进行,符合测试需求的应用程序即是合格的,反之即是不合格的;同时,还要适当选择测试内容,合理安排测试人员、测试时间及测试资源等。(2)测试设计:将测试计划阶段制订的测试需求分解、细化为若干个可执行的测试过程,并为每个测试过程选择适当的测试用例(测试用例选择的好坏将直接影响测试结果的有效性)。(3)测试开发:建立可重复使用的自动测试过程。(4)测试执行:执行测试开发阶段建立的自动测试过程,并对
33、所发现的缺陷进行跟踪管理,测试执行一般由单元测试、组合测试、集成测试、系统测试及回归测试等步骤组成,测试人员应本着科学负责的态度,一步一个脚印地进行测试。(5)测试评估:结合量化的测试覆盖域及缺陷跟踪报告,对于应用软件的质量和开发团队的工作进度及工作效率进行综合评价。)解析:简单谈一下你对穷举测试的理解,并按要求回答问题(分数:18.00)(1).穷举测试的方法对于所有项日程序都是可行的吗?(分数:9.00)_正确答案:(不是。穷举测试的方法并不是对所有程序都可以实现。)解析:(2).若是针对小型的程序,穷举测试是可能的吗?若是,说明此时采用穷举测试能否保证程序是百分之百正确呢?(分数:9.00)_正确答案:(对小程序进行穷举测试,也不见得能保证程序百分之百正确。所谓穷举测试是拿所有可能的输入数据来作为测试用例(黑盒测试),或覆盖程序中所有可能的路径(白盒测试)。对于小程序来说,实际上并不能真正做到穷举测试。)解析:解析 在黑盒测试中,测试数据完全来源于软件的规格说明,即不需要了解程序的内部结构。若要用这种方法来发现程序中的所有错误,可行的途径就是穷举测试。但在实际情况下,该方法仅对一些小型简单的程序适用,而对于一些大型或稍微复杂的程序都是不可能实现的。