1、计算机四级软件测试工程师-75 及答案解析(总分:120.50,做题时间:90 分钟)一、选择题(总题数:25,分数:50.50)1.一般来说,大多数软件缺陷源于软件开发项目的 _ 阶段。A软件测试阶段 B程序编写和调试阶段C需求和设计阶段 D加班工作期间(分数:2.00)A.B.C.D.2.ANSI/IEEE STD729-1983 给出软件质量的定义:软件产品满足规定的和隐含的与需求能力有关的全部特征和特性。以下叙述中不属于这些质量特征和特性的是A) 产品功能 B) 效率 C) 可使用性 D) 项目成本和进度(分数:2.00)A.B.C.D.3.Web 应用软件的安全性主要通过以下哪个手段
2、实现_。A) 安全管理控制 B)接口检测C) 漏洞扫描 D) 安全策略(分数:2.00)A.B.C.D.4.下列通常不属于易用性测试的范围的内容是_。A) 安装与卸载测试 B) 系统故障频率C) 联机文档中断开的链接 D) 中文版与英文版的一致(分数:2.00)A.B.C.D.5.完成系统测试后,需要提交的文档有 _。A测试结果记录表格 B系统测试日志C全面的系统测试总结报告 D以上全部(分数:2.00)A.B.C.D.6.兼容性测试是指_。A) 针对软件对其运行环境的依赖进行测试,以验证软件是否能够在所有期望的环境中运行B) 测试本款软件与其他应用软件是否能在同一操作系统下同时执行C) 检测
3、软件与其他软件是否能正常进行信息的交流和传递D) 以上都不对(分数:2.00)A.B.C.D.7.下列关于软件测试成本管理中资源估算的说法,错误的是_。A) 估算主要通过分解技术、经验建模来实现B) 软件测试成本很重要的是人力资源成本C) 对人力资源来说,首先要进行工作量估算D) 分解技术是指根据经验导出的公式来预测工作量和时间(分数:2.00)A.B.C.D.8.以下分析技术中,哪一种技术不属于基于性能计数器的分析技术?_。A) 内存分析 B) 处理器分析C) 通信中断分析 D) 进程分析(分数:2.00)A.B.C.D.9.下列不属于关键模块具有的特性的是 _。A处于程序控制结构的底层B本
4、身是复杂的或是容易出错的C含有确定的性能需求D被频繁使用的模块(分数:2.00)A.B.C.D.10.软件缺陷的基本状态有_。A) 激活状态B) 已修正状态C) 关闭或非激活状态D) 以上全部(分数:2.50)A.B.C.D.11.在静态分析中,提供整个项目中的所有函数之间的调用关系图属于A) 程序结构分析 B) 可视化分析C) 程序数据流分析 D) 程序执行频度分析(分数:2.00)A.B.C.D.12.下面有关路径测试的叙述中,错误的是A) 路径覆盖是最强的覆盖测试,它不但能发现其他覆盖测试能发现的问题,还能发现其他覆盖测试不能发现的问题B) 测试员不可能对任何一个程序都完成 100%的路
5、径测试C) 不提倡用不同的数据重复测试同一条路径D) 即使每条路径都执行了一次,程序还是可能存在缺陷(分数:2.00)A.B.C.D.13.在面向对象软件的集成测试中,关于程序的系统测试,说法错误的是_。A) 面向对象系统测试的主要目标是测试开发出来的软件是否是问题空间的一个合理解B) 对于系统测试而言,面向对象软件与传统结构化软件并没有本质区别C) 面向对象软件测试技术主要有功能测试和其他系统测试D) 面向对象的系统测试,与传统的面向过程的结构化软件测试方法,在类与对象这一块有着本质的区别(分数:2.00)A.B.C.D.14.一般说来,对一个程序单元的测试应满足一些具体的技术要求,或达到一
6、定的技术指标。下面选项中属于单元测试相关的技术要求或指标的是A) 语句覆盖率达到 100% B) 局部变量的边界条件处理正确C) 逻辑比较和控制流处理正确 D) 以上全部(分数:2.00)A.B.C.D.15.关于 Web 应用软件的特点描述,错误的是_。A) 基于无连接协议B) 由内容驱动C) 开发周期较长,演变较慢D) 完全性要求较高(分数:2.00)A.B.C.D.16.下列产品不适合采用基于功能的集成测试策略的是 _。A关键功能具有较大风险的产品B控制结构比较清晰和稳定的产品C技术探索型项目,其功能的实现远比质量更关键D对于功能实现没有把握的产品(分数:2.00)A.B.C.D.17.
7、在面向对象软件的集成测试中,下列关于高频集成的叙述,不正确的是_。(A) 高频集成一般采用冒烟测试的方式(B) 高频集成不预测每个测试用例的预期效果,如果测试中未出现反常情况,就认为通过测试(C) 高频集成的优点:高效、可预测性、并行性、尽早查处错误、易进行错误定位但必须要桩模块(D) )高频集成的缺点:若测试包过于简单,可能难以发现问题;开始不能平稳集成;若没有建立适当标准可能会增加风险(分数:2.00)A.B.C.D.18.以下哪种测试属于面向对象程序集成测试考虑的范畴?_。A) 针对一个类的多个成员方法间协作的测试B) 针对一个成员方法的不同输入情况的测试C) 针对多个类的多个实例间协作
8、的测试D) 针对一个类树上多个类间继承的测试(分数:2.00)A.B.C.D.19.以下哪种方法根据输出对输入的依赖关系设计测试用例_。A) 路径测试 B) 等价类C) 因果图 D) 边界值(分数:2.00)A.B.C.D.20.在软件生存周期中占据时间最长的是A) 运行和维护阶段 B) 软件开发阶段C) 需求分析阶段 D) 软件设计阶段(分数:2.00)A.B.C.D.21.关于 Web 应用软件系统安全,说法正确的是_。A) Web 应用软件的安全性仅仅与 Web 应用软件本身的开发有关B) 系统的安全漏洞属于系统的缺陷,但安全漏洞的检测不属于测试的范畴C) 黑客的攻击主要是利用黑客本身发
9、现的新漏洞D) 以任何违反安全规定的方式使用系统都属于入侵(分数:2.00)A.B.C.D.22.以下选项中不属于协议一致性测试分析方法中的测试的是 _。A基本互联测试 B定向诊断测试C人员测试 D能力测试(分数:2.00)A.B.C.D.23.关于兼容性测试的内容陈述,下列说法错误的是_。A) 通常兼容性测试主要考虑硬件、软件和数据三个方面B) 硬件兼容性测试通常并不用把软件在各种不同的硬件环境下运行和测试C) 不同的硬件配置,可能影响软件的性能,因此需要有针对地进行硬件兼容性测试D) 数据兼容性仅仅包括不同版本之间的数据兼容性(分数:2.00)A.B.C.D.24.关于兼容性测试的内容陈述
10、,下列说法错误的是_。A) 通常兼容性测试主要考虑硬件、软件和数据三个方面B) 硬件兼容性测试通常并不用把软件在各种不同的硬件环境下运行和测试C) 不同的硬件配置,可能影响软件的性能,因此需要有针对地进行硬件兼容性测试D) 数据兼容性仅仅包括不同版本之间的数据兼容性(分数:2.00)A.B.C.D.25.下列关于面向对象程序的测试组织问题的说法中,正确的是A) 在面向对象程序测试中,通过执行程序代码完成的测试通常包括单元测试、集成测试和系统测试三个主要方面B) 在面向对象程序中的一个类可以作为被独立测试的单元C) 在面向对象程序测试中,很容易对一个类中的单个成员方法进行充分的单元测试D) 由于
11、集成测试目标相同,结构化程序的集成测试技术都适用于对类的测试(分数:2.00)A.B.C.D.二、论述题(总题数:2,分数:70.00)下面是一段 C 程序,其功能为计算 1 到所输入数值的逐步累加和,请阅读程序并完成要求。#includestdio.hint sum(int);void main()int num,k;printf(“Enter a number:“);seanf(“%d“,num);for(k=1;k=num;k+)printf(“1 to %d is %d/n“,k,sum(k);int sum(int n)int i,result=0;for(i=1;i=n;i+)re
12、sult+=i;return result;(分数:16.00)(1).请画出此程序各函数的控制流程图。(分数:8.00)_(2).设计一组测试用例,使该程序所有函数的语句覆盖率和分支覆盖率均能达到 100%。如果认为该程序的语句或分支覆盖率无法达到 100%,说明原因。(分数:8.00)_以下是学生选课系统中“学生成绩查询”交互行为的描述,请仔细阅读程序并完成要求。交互开始时,终端上显示首页,用户选择“查询”请求后,显示“请输入学号”。在用户输入学号后,系统核对学生学号:若输入的学号不正确,则显示“输入的学号不正确”,此次查询取消,回到首页;若输入的学号正确,则出现“请输入课程名称”。一旦输
13、入课程名,就开始核对课程名称:若输入的课程名称不正确,则显示“输入的课程名称不正确”,此次查询取消,回到首页;若输入的课程名称正确,则根据“学号”和“课程名”查询学生成绩。若查询学生成绩成功,则显示查询到的成绩,系统询问是否继续查询:当用户选择“继续查询”后回到“请输入学号”;当用户选择“结束查询”后回到首页。若查询失败,则显示“查询失败”后回到首页。(分数:54.00)(1).请画出该系统的控制流图。(分数:18.00)_(2).请给出该系统的基本路径集。(分数:18.00)_(3).请给出覆盖基本路径集的测试用例集合。(分数:18.00)_计算机四级软件测试工程师-75 答案解析(总分:1
14、20.50,做题时间:90 分钟)一、选择题(总题数:25,分数:50.50)1.一般来说,大多数软件缺陷源于软件开发项目的 _ 阶段。A软件测试阶段 B程序编写和调试阶段C需求和设计阶段 D加班工作期间(分数:2.00)A.B.C. D.解析:解析 通常来说,软件缺陷大多数是来自软件开发项目的需求和设计阶段的。2.ANSI/IEEE STD729-1983 给出软件质量的定义:软件产品满足规定的和隐含的与需求能力有关的全部特征和特性。以下叙述中不属于这些质量特征和特性的是A) 产品功能 B) 效率 C) 可使用性 D) 项目成本和进度(分数:2.00)A.B.C.D. 解析:3.Web 应用
15、软件的安全性主要通过以下哪个手段实现_。A) 安全管理控制 B)接口检测C) 漏洞扫描 D) 安全策略(分数:2.00)A.B. C.D.解析:解析 接口是一个软件和外部进行交互的通道,尤其 web 应用程序的安全性要受限于浏览器的网络环境。所以接口检测是 Web 应用软件安全性的主要实现手段。4.下列通常不属于易用性测试的范围的内容是_。A) 安装与卸载测试 B) 系统故障频率C) 联机文档中断开的链接 D) 中文版与英文版的一致(分数:2.00)A.B. C.D.解析:解析 易用性测试包括对用户文档的测试、易安装性测试、功能易用性测试和用户界面测试。选项 B,系统故障频率不属于易用性测试范
16、围。5.完成系统测试后,需要提交的文档有 _。A测试结果记录表格 B系统测试日志C全面的系统测试总结报告 D以上全部(分数:2.00)A.B.C.D. 解析:6.兼容性测试是指_。A) 针对软件对其运行环境的依赖进行测试,以验证软件是否能够在所有期望的环境中运行B) 测试本款软件与其他应用软件是否能在同一操作系统下同时执行C) 检测软件与其他软件是否能正常进行信息的交流和传递D) 以上都不对(分数:2.00)A. B.C.D.解析:解析 所谓兼容性测试,是指针对软件对其运行环境的依赖进行测试,以验证软件是否能够在所有期望的环境中运行。通常,兼容性测试主要考虑硬件、软件和数据三个方面。7.下列关
17、于软件测试成本管理中资源估算的说法,错误的是_。A) 估算主要通过分解技术、经验建模来实现B) 软件测试成本很重要的是人力资源成本C) 对人力资源来说,首先要进行工作量估算D) 分解技术是指根据经验导出的公式来预测工作量和时间(分数:2.00)A.B.C.D. 解析:解析 估算主要通过分解技术、经验建模来实现。软件测试成本很重要的部分是人力资源成本。对人力资源来说,首先要进行工作量估算,估算总是基于一些假定和定义。分解技术是指,划分出主要的软件功能,接着估算测试每一个功能所需的程序规模或人员数。经验技术是指,根据经验导出的公式来预测工作量和时间。不要把两者弄混淆。8.以下分析技术中,哪一种技术
18、不属于基于性能计数器的分析技术?_。A) 内存分析 B) 处理器分析C) 通信中断分析 D) 进程分析(分数:2.00)A.B.C. D.解析:解析 性能计数器是指与性能有关的资源利用率指标,基于性能计数器的分析技术有内存分析、处理器分析、磁盘 I/O 分析、进程分析。9.下列不属于关键模块具有的特性的是 _。A处于程序控制结构的底层B本身是复杂的或是容易出错的C含有确定的性能需求D被频繁使用的模块(分数:2.00)A. B.C.D.解析:10.软件缺陷的基本状态有_。A) 激活状态B) 已修正状态C) 关闭或非激活状态D) 以上全部(分数:2.50)A.B.C.D. 解析:解析 软件缺陷除了
19、严重性之外,还存在反映软件缺陷处于一种什么样的状态,便于跟踪和管理某个产品的缺陷,可以定义不同的缺陷状态。软件缺陷有 3 种基本状态:1激活状态(Active 或 Open)2已修正状态(Fixed 或 Resolved)3关闭或非激活状态(Close 或 Inactive)另外还有一些情况需要相应的状态来描述,如所报告的缺陷目前无法解决或是第三方产品引起的,可以置为“保留”状态;如果所报告的缺陷暂时不需要解决或在下一版本解决更好些,可以置为“不一致”状态。11.在静态分析中,提供整个项目中的所有函数之间的调用关系图属于A) 程序结构分析 B) 可视化分析C) 程序数据流分析 D) 程序执行频
20、度分析(分数:2.00)A. B.C.D.解析:解析 程序数据流分析主要指静态分析全局变量和局部变量的声明、赋值和使用的位置,动态跟踪变量值的编号情况;可视化分析是针对面向对象的软件,提供整个项目中的所有类之间的关系图;程序执行频度分析是统计所有条件分支、多出口跳转、多出口调用的各分支、出口执行关系图。故只有 A 选项符合要求。12.下面有关路径测试的叙述中,错误的是A) 路径覆盖是最强的覆盖测试,它不但能发现其他覆盖测试能发现的问题,还能发现其他覆盖测试不能发现的问题B) 测试员不可能对任何一个程序都完成 100%的路径测试C) 不提倡用不同的数据重复测试同一条路径D) 即使每条路径都执行了
21、一次,程序还是可能存在缺陷(分数:2.00)A. B.C.D.解析:解析 路径覆盖就是设计足够的测试用例,执行程序中所有可能的路径,尽管路径覆盖比判定/条件覆盖更强,但路径覆盖并不一定包含判定/条件覆盖。13.在面向对象软件的集成测试中,关于程序的系统测试,说法错误的是_。A) 面向对象系统测试的主要目标是测试开发出来的软件是否是问题空间的一个合理解B) 对于系统测试而言,面向对象软件与传统结构化软件并没有本质区别C) 面向对象软件测试技术主要有功能测试和其他系统测试D) 面向对象的系统测试,与传统的面向过程的结构化软件测试方法,在类与对象这一块有着本质的区别(分数:2.00)A.B.C.D.
22、 解析:解析 面向对象程序的系统测试的主要目标是测试开发出来的软件是否是问题空间的一个合理解,因此对于系统测试而言,面向对象软件与传统结构化软件并没有本质区别。14.一般说来,对一个程序单元的测试应满足一些具体的技术要求,或达到一定的技术指标。下面选项中属于单元测试相关的技术要求或指标的是A) 语句覆盖率达到 100% B) 局部变量的边界条件处理正确C) 逻辑比较和控制流处理正确 D) 以上全部(分数:2.00)A.B.C.D. 解析:解析 考察单元测试的技术指标,所有选项都是单元测试的指标,故选择 D。15.关于 Web 应用软件的特点描述,错误的是_。A) 基于无连接协议B) 由内容驱动
23、C) 开发周期较长,演变较慢D) 完全性要求较高(分数:2.00)A.B.C. D.解析:解析 所谓 Web 应用软件,就是 Browser/Server(B/S)结构的软件,其特点是基于无连接协议,内容驱动,开发周期短,演化频繁,安全性要求高,美观性要求较高。16.下列产品不适合采用基于功能的集成测试策略的是 _。A关键功能具有较大风险的产品B控制结构比较清晰和稳定的产品C技术探索型项目,其功能的实现远比质量更关键D对于功能实现没有把握的产品(分数:2.00)A.B. C.D.解析:17.在面向对象软件的集成测试中,下列关于高频集成的叙述,不正确的是_。(A) 高频集成一般采用冒烟测试的方式
24、(B) 高频集成不预测每个测试用例的预期效果,如果测试中未出现反常情况,就认为通过测试(C) 高频集成的优点:高效、可预测性、并行性、尽早查处错误、易进行错误定位但必须要桩模块(D) )高频集成的缺点:若测试包过于简单,可能难以发现问题;开始不能平稳集成;若没有建立适当标准可能会增加风险(分数:2.00)A.B.C. D.解析:18.以下哪种测试属于面向对象程序集成测试考虑的范畴?_。A) 针对一个类的多个成员方法间协作的测试B) 针对一个成员方法的不同输入情况的测试C) 针对多个类的多个实例间协作的测试D) 针对一个类树上多个类间继承的测试(分数:2.00)A.B.C. D.解析:解析 A、
25、B、D 都是面向对象中单元测试所考虑的范畴。集成策略需要关注如何充分测试类间的各种链接,C 属于集成测试考虑的范畴。19.以下哪种方法根据输出对输入的依赖关系设计测试用例_。A) 路径测试 B) 等价类C) 因果图 D) 边界值(分数:2.00)A.B.C. D.解析:解析 因果图是根据输出对输入的依赖关系来设计测试用例的。20.在软件生存周期中占据时间最长的是A) 运行和维护阶段 B) 软件开发阶段C) 需求分析阶段 D) 软件设计阶段(分数:2.00)A. B.C.D.解析:解析 由于很多复杂因素的影响,软件开发组织投入到软件产品上的费用以及大多数时间都花在了软件完成并交付使用后对它的维护
26、上,软件的运行和维护阶段可以说是软件生存周期中占据时间最长的阶段。21.关于 Web 应用软件系统安全,说法正确的是_。A) Web 应用软件的安全性仅仅与 Web 应用软件本身的开发有关B) 系统的安全漏洞属于系统的缺陷,但安全漏洞的检测不属于测试的范畴C) 黑客的攻击主要是利用黑客本身发现的新漏洞D) 以任何违反安全规定的方式使用系统都属于入侵(分数:2.00)A.B.C.D. 解析:解析 Web 应用软件的安全性不仅仅与 Web 应用软件本身的开发相关。系统的安全漏洞其实也算是系统的缺陷,所以安全漏洞的检测也属于测试的范畴。对于黑客来说,攻击更主要是利用系统的已知漏洞进行,而不是黑客本身
27、发现的新漏洞。狭义的入侵是指黑客进入或试图进入一个系统,而广义的入侵是指以任何违反安全规定的方式使用一个系统。22.以下选项中不属于协议一致性测试分析方法中的测试的是 _。A基本互联测试 B定向诊断测试C人员测试 D能力测试(分数:2.00)A.B.C. D.解析:23.关于兼容性测试的内容陈述,下列说法错误的是_。A) 通常兼容性测试主要考虑硬件、软件和数据三个方面B) 硬件兼容性测试通常并不用把软件在各种不同的硬件环境下运行和测试C) 不同的硬件配置,可能影响软件的性能,因此需要有针对地进行硬件兼容性测试D) 数据兼容性仅仅包括不同版本之间的数据兼容性(分数:2.00)A.B.C.D. 解
28、析:解析 A、B、C 三项的陈述都是正确的,D 选项中数据兼容性不仅仅包括不同版本之间的数据兼容性,还包括不同软件间的数据兼容性。24.关于兼容性测试的内容陈述,下列说法错误的是_。A) 通常兼容性测试主要考虑硬件、软件和数据三个方面B) 硬件兼容性测试通常并不用把软件在各种不同的硬件环境下运行和测试C) 不同的硬件配置,可能影响软件的性能,因此需要有针对地进行硬件兼容性测试D) 数据兼容性仅仅包括不同版本之间的数据兼容性(分数:2.00)A. B. C. D. 解析:25.下列关于面向对象程序的测试组织问题的说法中,正确的是A) 在面向对象程序测试中,通过执行程序代码完成的测试通常包括单元测
29、试、集成测试和系统测试三个主要方面B) 在面向对象程序中的一个类可以作为被独立测试的单元C) 在面向对象程序测试中,很容易对一个类中的单个成员方法进行充分的单元测试D) 由于集成测试目标相同,结构化程序的集成测试技术都适用于对类的测试(分数:2.00)A. B.C.D.解析:解析 在面向对象程序测试中,通过执行程序代码完成的测试通常包括单元测试、集成测试和系统测试三个主要方面。其中单元测试的基本要求是被测单元被独立地测试,而在测试面向对象程序时,由于一个类的各个成员方法通常是相互联系的,因而很难对一个类中的单个成员方法进行充分的单元测试。面向对象程序中的一个类甚至也不能作为被独立测试的单元,主
30、要原因一方面是由于继承的存在,一个类通常依赖于其父类和其他祖先类,另一方面由于面向对象程序经常出现多个类相互依赖也会导致每个类难以被独立的测试。集成测试是针对程序的集成结构进行,在面向对象程序中,许多集成机制在传统结构化程序中没有,因而结构化程序的集成测试技术难以适用于对类的测试。二、论述题(总题数:2,分数:70.00)下面是一段 C 程序,其功能为计算 1 到所输入数值的逐步累加和,请阅读程序并完成要求。#includestdio.hint sum(int);void main()int num,k;printf(“Enter a number:“);seanf(“%d“,num);for
31、(k=1;k=num;k+)printf(“1 to %d is %d/n“,k,sum(k);int sum(int n)int i,result=0;for(i=1;i=n;i+)result+=i;return result;(分数:16.00)(1).请画出此程序各函数的控制流程图。(分数:8.00)_正确答案:(sum 函数和主函数的流程图如下所示。)解析:(2).设计一组测试用例,使该程序所有函数的语句覆盖率和分支覆盖率均能达到 100%。如果认为该程序的语句或分支覆盖率无法达到 100%,说明原因。(分数:8.00)_正确答案:(语句覆盖和分支覆盖都达到 100%的覆盖率,就是要
32、设计测试用例,使其满足所有分支情况。本题较为简单,只要 num1 和 num1 就可以满足所有分支覆盖标准,所以测试用例选择为 num=100,-6。)解析:以下是学生选课系统中“学生成绩查询”交互行为的描述,请仔细阅读程序并完成要求。交互开始时,终端上显示首页,用户选择“查询”请求后,显示“请输入学号”。在用户输入学号后,系统核对学生学号:若输入的学号不正确,则显示“输入的学号不正确”,此次查询取消,回到首页;若输入的学号正确,则出现“请输入课程名称”。一旦输入课程名,就开始核对课程名称:若输入的课程名称不正确,则显示“输入的课程名称不正确”,此次查询取消,回到首页;若输入的课程名称正确,则
33、根据“学号”和“课程名”查询学生成绩。若查询学生成绩成功,则显示查询到的成绩,系统询问是否继续查询:当用户选择“继续查询”后回到“请输入学号”;当用户选择“结束查询”后回到首页。若查询失败,则显示“查询失败”后回到首页。(分数:54.00)(1).请画出该系统的控制流图。(分数:18.00)_正确答案:(控制流图如下:)解析:(2).请给出该系统的基本路径集。(分数:18.00)_正确答案:(由控制流图可以看出,该图的 V(G)=5(区域数),所以基本路径集共由 5 条路径组成。1-2-1-1-2-3-1-1-2-3-4-1-1-2-3-4-2-11-2-3-4-2-3-1)解析:(3).请给出覆盖基本路径集的测试用例集合。(分数:18.00)_正确答案:(首页-输入错误学号-回首页;首页-输入正确学号-输入错误课程号-回首页;首页-输入正确学号-输入正确课程号-给出学生成绩-结束返回首页;首页输入正确学号-输入正确课程号-给出学生成绩-继续输入学号-输入学号错误回首页;首页输入正确学号-输入正确课程号给出学生成绩-继续输入学号-输入课程号-输入错误课程号回首页。)解析: