1、计算机四级软件测试工程师-69 及答案解析(总分:73.00,做题时间:90 分钟)一、选择题(总题数:25,分数:49.00)1.在结构化测试用例设计中,有语句覆盖、条件覆盖、判定覆盖(也称分支覆盖)、路径覆盖等,其中 _ 是最强的覆盖准则。A语句覆盖 B条件覆盖C判定覆盖 D路径覆盖(分数:2.00)A.B.C.D.2.对应单元调用图的每一个边建立并执行一个集成测试会话,这种集成测试方法是A) 相邻集成测试 B) 基于进度的集成测试C) 基于分解的集成测试 D) 成对集成测试(分数:2.00)A.B.C.D.3.“成熟度”这一概念来源于美国 Carnegie Mellon 大学软件工程研究
2、所的软件能力成熟度模型(SW-CMM),在测试支持度模型(Testability Support Model)中,分为三个级别。下列哪项不属于此级别分类_。A) 弱(weak) B) 基本(basic)C) 正常(normal) D) 强(strong)(分数:2.00)A.B.C.D.4.下列不属于安全性测试的范畴的是 _。A数据库内容安全性 B客户端内容安全性C服务器端内容安全性 D日志功能(分数:2.00)A.B.C.D.5.以下哪一项属于数据兼容性测试关注的范畴?_。A) 软件在异常退出时是否会破坏正在处理的文件B) 软件是否可以在不同的 J2EE 应用服务器上运行C) 软件同类功能的
3、使用风格是否一致D) 软件是否能打开以前版本保存的文件(分数:2.00)A.B.C.D.6.针对程序段 if(x10)and(y20)then w=w/a,对于(x,y)的取值,以下哪组测试用例能够满足判定覆盖的要求_。A) (30,15),(40,10)B) (3,0),(30,30)C) (5,25),(10,20)D) (20,10),(1,100)(分数:2.00)A.B.C.D.7.不是测试计划的整体目标的是A) 确定测试的任务 B) 确定所需的各种资源和投入C) 发现并改正出现的问题 D) 指导测试的执行(分数:2.00)A.B.C.D.8.以下关于软件测试的说法中,正确的是A)
4、通过软件可靠性测试是软件交付使用的必要条件B) 软件可靠性测试的主要目的是度量软件在实际使用中的可靠性C) 软件可靠性测试通常针对软件中的每个单元进行D) 软件可靠性测试是发现软件安全性问题的主要手段(分数:2.00)A.B.C.D.9.下列关于应用服务器的分类,叙述错误的是_。A) 从面向的领域看,应用服务器可以分为两类:通用的应用服务器和专用的应用服务器B) 通用的应用服务器能提供多方面服务,支持多个领域的开发和运行C) 早前出现的 Tuxedo 和 MTS 遵循 J2EE 规范D) 从遵循的规范角度来看,应用服务器可以分为两类:遵循 J2EE 规范的应用服务器和其他服务器(分数:2.00
5、)A.B.C.D.10.一般说来,对一个程序单元的测试应满足一些具体的技术要求,或达到一定的技术指标。下面选项中属于单元测试相关的技术要求或指标的是_。A) 语句覆盖率达到 100% B) 局部变量的边界条件处理正确C) 逻辑比较和控制流处理正确 D) 以上全部(分数:2.00)A.B.C.D.11.下列测试不是系统测试用户层关注的是_。A) 数据安全性测试 B) 可维护性测试 C) 并发性能测试 D) 可操作性测试(分数:2.00)A.B.C.D.12.逻辑路径覆盖法是白盒测试用例的重要设计方法,其中语句覆盖法是较为常用的方法。针对下面的句段,采用语句覆盖法完成测试的设计。测试用例见下表,对
6、表中的空缺页(TRUE 或者 FALSE)正确的选择是_。语句段:If(A(B|C)x=1;Else x=0;用例表:用例 1 用例 2A TRUE FALSEB FALSEC TRUE A(BllC) FALSEATRUEFALSETRUE BTRUEFALSEFALSECFALSEFALSETRUE DTRUETRUEFALSE(分数:2.00)A.B.C.D.13.在面向对象软件的基干集成测试策略中,将基干中的模块形成基干子系统使用的集成方式是_。A) 大突击集成方式 B) 自底向上集成方式C) 自顶向下集成方式 D) 综合集成方式(分数:2.00)A.B.C.D.14.下面面向对象程序
7、单元测试中,模态类测试是基于 _ 图生成测试用例。A用例图 B顺序图C协作图 D状态转换图(分数:2.00)A.B.C.D.15.下列关于软件性能测试的说法中,正确的是_。A) 性能测试的目的不是为了发现软件缺陷B) 压力测试与负载测试的目的都是为了探测软件在满足预定性能需求的情况下所能负担的最大压力C) 性能测试通常要对测试结果进行分析才能获得测试结论D) 在性能下降曲线上,最大建议用户数通常处于性能轻微下降区与性能急剧下降区的交界处(分数:2.00)A.B.C.D.16.自顶向下单元测试的策略是首先对模块调用哪一层模块进行测试A) 最底层 B) 下一层C) 最高层 D) 上一层(分数:2.
8、00)A.B.C.D.17.以下哪种应用服务器不遵循 J2EE 规范_。A) Oracle 9i Application ServerB) PKUASC) WebLogicD) Tuxedo(分数:2.00)A.B.C.D.18.下面 Web 应用软件的测试策略中,不属于表示层的测试内容的是 _。A链接结构的测试 B浏览器兼容性的测试C排版结构的测试 D服务器端程序的测试(分数:1.00)A.B.C.D.19.面向对象集成测试的目的是_。A) 测试系统的各个组成部分放在一起是否能够协调一致B) 检查测试用例生成,测试用例执行,测试结果判断是否正确C) 选择哪些实体集成D) 确定每个类及其实例是
9、否能正常工作(分数:2.00)A.B.C.D.20.在北京某个银行的人事信息管理软件中,系统允许用户输入 8 位数字的北京市电话号码。若使用等价类划分法设计测试用例,获得输入等价类,那么从保证测试效果的角度来看,下面最佳的测试用例选择应为A) 62570007,80603805,100080,39103825 B) 62570007,80603805C) 62570007,39103825,8253324,空值,h D) 39103825,8253324,1391092300(分数:2.00)A.B.C.D.21.一个多用户的应用系统通常有用户管理功能,允许增加新的用户。用户信息一般包括用户名
10、,假设规定用户名必须是以字母开头的、不超过 8 个字符的字母数字串,那么,下面哪组值均属于用户名的无效等价类A) 1i1111111,Glenford Mvers,1238123B) LinYie,Linfeng,空值,linyfeiC) linyifei,空值,Mycrs G,genfordD) linyifei,linfen,a111111,genford(分数:2.00)A.B.C.D.22.在程序设汁过程中,要为程序调试做好准备,主要体现在A) 采用模块化、结构化的设计方法设计程序B) 根据程序调试的需要,选择并安排适当的中间结果输出必要的断点C) 编写程序时要为调试提供足够的灵活性D
11、) 以上全部(分数: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.以下测试用例哪一组能够满足判定一条件覆盖_。A(a=2,b=0,x=6)、(a=1,b=1,x=1) B(a=8,b=7,x=114)、(a=33,b=50,x=32)C(a=29,b=2
12、0,x=25)、(a=3,b=9,x=36) D(a=21,b=20,x=62)、(a=22,b=40,x=24)(分数:2.00)A.B.C.D.二、论述题(总题数:2,分数:24.00)以下是某 C 程序段,其功能是计算出某一天是一年中的第几天,请仔细阅读程序并完成要求。# includestdiohstruct daysint year;int month;int date;day;void main()struct days *P;int nun=0,i;int met3=0,31,28,31,30,31,30,31,31,30,31,30,31;P=Else x=0;用例表:用例 1
13、 用例 2A TRUE FALSEB FALSEC TRUE A(BllC) FALSEATRUEFALSETRUE BTRUEFALSEFALSECFALSEFALSETRUE DTRUETRUEFALSE(分数:2.00)A.B.C. D.解析:解析 语句覆盖就是设计若干个测试用例,运行被测程序,使得每一个可执行语句至少执行一次。这里的“若干个”意味着越少越好。语句覆盖率的公式可以表示如下:语句覆盖率=被执行到得语句数量/可执行的语句总数+100%13.在面向对象软件的基干集成测试策略中,将基干中的模块形成基干子系统使用的集成方式是_。A) 大突击集成方式 B) 自底向上集成方式C) 自顶
14、向下集成方式 D) 综合集成方式(分数:2.00)A. B.C.D.解析:解析 面向对象软件的基干集成测试策略的具体测试步骤为:对基干中的每个模块进行孤立的、充分的测试;对基干中的所有模块进行一次性集成,形成基干子系统,并使用一个驱动模块检查使用经过一次性集成的基干,此时采用的是大突击集成方式;对应用的控制子系统进行自顶向下的集成;集成基干和控制子系统,重新构造控制子系统;对各应用子系统采用自底向上的集成策略;集成基干子系统、控制子系统和各应用子系统,形成整个系统。基干集成的优点是集成了自底向上集成、自顶向下集成和大突击集成三者的优点,而对三者的缺点也进行了控制,更适合于大型复杂项目的集成。1
15、4.下面面向对象程序单元测试中,模态类测试是基于 _ 图生成测试用例。A用例图 B顺序图C协作图 D状态转换图(分数:2.00)A.B.C.D. 解析:15.下列关于软件性能测试的说法中,正确的是_。A) 性能测试的目的不是为了发现软件缺陷B) 压力测试与负载测试的目的都是为了探测软件在满足预定性能需求的情况下所能负担的最大压力C) 性能测试通常要对测试结果进行分析才能获得测试结论D) 在性能下降曲线上,最大建议用户数通常处于性能轻微下降区与性能急剧下降区的交界处(分数:2.00)A.B.C. D.解析:解析 性能测试通用模型(PTGM 模型)的最后一步就是测试结果分析,说明性能测试通常要对测
16、试结果进行分析才能获得测试结论,故 C 正确。16.自顶向下单元测试的策略是首先对模块调用哪一层模块进行测试A) 最底层 B) 下一层C) 最高层 D) 上一层(分数:2.00)A.B.C. D.解析:解析 自底向上测试与自顶向下测试策略都是增量式的测试,软件是分层设计的,主模块调用子模块,子模块又依次调用更低层次的模块,依此类推。在自底向上单元测试的策略中,应首先测试最底层的模块,利用辅助的测试驱动模块调用它们并传递测试数据,然后再测试更高层次的模块,在较高层次的模块测试中可以直接调用已测试过的较低层次的模块。在自顶向下测试中,首先测试的则是顶层模块,_无须编写驱动模块,但要使用桩模块,当顶
17、层模块被证明无误后,再测试下一个高层次的模块。17.以下哪种应用服务器不遵循 J2EE 规范_。A) Oracle 9i Application ServerB) PKUASC) WebLogicD) Tuxedo(分数:2.00)A.B.C.D. 解析:解析 从遵循的规范角度看,应用服务器可以分为两类:遵循 J2EE 规范的应用服务器和其他服务器,大多数服务器都遵循 J2EE 规范,但是早前出现的 Tuxedo 和 MTS 不遵循 J2EE 规范。18.下面 Web 应用软件的测试策略中,不属于表示层的测试内容的是 _。A链接结构的测试 B浏览器兼容性的测试C排版结构的测试 D服务器端程序的
18、测试(分数:1.00)A.B.C.D. 解析:解析 通常 Web 应用软件的测试分为三层:表示层、业务层和数据层。其中表示层的测试主要集中在客户端,测试内容主要包括:排版结构的测试,链接结构的测试,客户端程序的测试,浏览器兼容性测试。19.面向对象集成测试的目的是_。A) 测试系统的各个组成部分放在一起是否能够协调一致B) 检查测试用例生成,测试用例执行,测试结果判断是否正确C) 选择哪些实体集成D) 确定每个类及其实例是否能正常工作(分数:2.00)A. B.C.D.解析:解析 在单元测试的基础上,集成测试的目的是测试系统的各个组成部分放在一起是否能够协调一致。20.在北京某个银行的人事信息
19、管理软件中,系统允许用户输入 8 位数字的北京市电话号码。若使用等价类划分法设计测试用例,获得输入等价类,那么从保证测试效果的角度来看,下面最佳的测试用例选择应为A) 62570007,80603805,100080,39103825 B) 62570007,80603805C) 62570007,39103825,8253324,空值,h D) 39103825,8253324,1391092300(分数:2.00)A.B.C. D.解析:解析 根据等价类划分法设计测试用例的原则。21.一个多用户的应用系统通常有用户管理功能,允许增加新的用户。用户信息一般包括用户名,假设规定用户名必须是以字
20、母开头的、不超过 8 个字符的字母数字串,那么,下面哪组值均属于用户名的无效等价类A) 1i1111111,Glenford Mvers,1238123B) LinYie,Linfeng,空值,linyfeiC) linyifei,空值,Mycrs G,genfordD) linyifei,linfen,a111111,genford(分数:2.00)A. B.C.D.解析:解析 考察黑盒测试中的等价类划分测试。22.在程序设汁过程中,要为程序调试做好准备,主要体现在A) 采用模块化、结构化的设计方法设计程序B) 根据程序调试的需要,选择并安排适当的中间结果输出必要的断点C) 编写程序时要为调
21、试提供足够的灵活性D) 以上全部(分数:2.00)A.B.C.D. 解析:解析 在程序设计过程中,要为程序调试做好准备,主要体现在采用模块化、结构化的设计方法设计程序、根据程序调试的需要,选择并安排适当的中问结果输出必要的断点、编写程序时要为调试提供足够的灵活性。23.软件性能测试的目标不仅仅是发现性能缺陷,具体软件性能测试不包括下述中的_。A) 发现缺陷 B) 性能调优 C) 能力检测与规划 D) 安全入侵检测(分数:2.00)A.B.C.D. 解析:解析 软件性能测试的目标不仅仅是发现(和改正)性能缺陷(Perform-ance Bug),还包括探索和规划软件的实际性能。具体软件性能测试以
22、下目标:发现缺陷,性能调优,能力检验与规划。24.在极限测试过程中,贯穿始终的是_。A) 单元测试和集成测试 B) 单元测试和系统测试C) 集成测试和系统测试 D) 集成测试和验收测试(分数:2.00)A.B.C.D. 解析:解析 极限编程采用的是一种频繁迭代的开发方式,整个软件项目由一系列增量式开发组成。而极限测试本质上就是为了满足极限编程的思想和流程而设计的一套测试策略和流程,从极限测试流程图中,我们可以看出,单元测试和验收测试是贯穿始终的关键步骤。25.以下测试用例哪一组能够满足判定一条件覆盖_。A(a=2,b=0,x=6)、(a=1,b=1,x=1) B(a=8,b=7,x=114)、
23、(a=33,b=50,x=32)C(a=29,b=20,x=25)、(a=3,b=9,x=36) D(a=21,b=20,x=62)、(a=22,b=40,x=24)(分数:2.00)A. B.C.D.解析:解析 判定一条件覆盖是指选取足够多的测试数据,使得判定表达式中的每个条件的所有可能取值至少执行一次,而且每个判定表达式的所有可能的判定结果至少执行一次。第(6)题中 A 选项的测试用例的执行路径分别为 1356、1246。两条判定语句的真假取值分别为 T1、T2、T3、T4,F1、F2、F3、F4,所以既满足条件覆盖又满足判定覆盖。其他选项的分析雷同。二、论述题(总题数:2,分数:24.0
24、0)以下是某 C 程序段,其功能是计算出某一天是一年中的第几天,请仔细阅读程序并完成要求。# includestdiohstruct daysint year;int month;int date;day;void main()struct days *P;int nun=0,i;int met3=0,31,28,31,30,31,30,31,31,30,31,30,31;P=&day;printf(“please input the day:/n“);scanf(“%d%d%d“,(P-year),(P-month),(P-date);for(i=0;i(p-month);i+)num+=m
25、i;hum+=(p-date);if(p-year)%4=0&(P-year)%i00 1=0|(p-year)%400=0)if(p-month)2)num+:printf(“This day is%d day in the year/n“,hum);(分数:14.00)(1).画出此程序主函数的控制流程图。(分数:7.00)_正确答案:(主函数的控制流程图如下:)解析:(2).设计一组测试用例,使该程序所有函数的语句覆盖率和分支覆盖率均能达到 100%。如果认为该程序的语句或分支覆盖率无法达到 100%,需说明为什么。(分数:7.00)_正确答案:(为了达到 100%的语句覆盖率,要设计测
26、试用例,使其为闰年且月份大于 2,另外不满足此条件。由于此程序不包含输入出错处理,所以我们特意定义一个 month 小于 0 的情况。用例编号yearmonthdate num1 2000 3 1 5 752 2003 -5 36 36)解析:26.QESuite Web Version 1.0 中,已知某认证网关系统测试项目的部分信息如下:测试版本:总计 4 个测试版本,按日期排序分别为SAG2.0_110209,SAG2.0_110225,SAG2.0_1110303,SAG2.0_110309。功能分类视图中部分待测区域及人员分配定义如下表所示:功能区域 功能区域 测试人员 开发人员安装
27、 安装更新 李晓军 王蒙身份认证与访问控制 张丽 郑君白名单管理 张丽 郑君 功能Web 配置 郭畅达 郑君性能 网关传输延迟 刘晖 王小林 下表是功能区域“性能/网关传输延迟”下某一个软件问题的操作历史信息,请依据 QESuite Wet,Version 1.0 的软件问题生命周期定义和题中提供的相关人员分配和测试版本信息,且假设已知“执行操作”均正确,请找出下表中的错误并说明理由。 操作序号 操作者 执行操作 操作后的问题状态 测试版本1 张丽 新建 打开 SAG2.0_1102092 郑君 校验/再现 打开/再现 SAG2.0_1102093 王小林 修复/不修复 待验/修复 SAG2.
28、0_1102254 刘晖 验证/同意 解决/修复 SAG2.0_1102255 刘晖 重新打开/再现 打开/修复 SAG2.0_1103036 王小林 修复/修复 待验/修复 SAG2.0_1103037 刘晖 验证/不同意 打开/再现 SAG2.0_110309(分数:10.00)_正确答案:(修改后的表如下:操作序号 操作者 执行操作 操作后的问题状态 测试版本1 张丽 新建 打开 SAG2.0_1102092 郑君 校验/再现 打开/再现 SAG2.0_1102093 王小林 修复/不修复 待验/不修复 SAG2.0_1102254 刘晖 验证/同意 解决/不修复 SAG2.0_1102
29、255 刘晖 重新打开/再现 打开/修复 SAG2.0_1103036 王小林 修复/修复 待验/修复 SAG2.0_1103037 刘晖 验证/不同意 打开/再现 SAG2.0_110309理由如下(1)操作序号 3:根据软件问题处理流程中,开发工程师查询状态为“打开”的软件问题,如果确认不是软件问题,则设置状态为“关闭”,如果是软件问题,则进行修复工作,在修复集成到新版本后设置状态“待验”,因此,操作序号 3 中操作后状态应为“待验/不修复”。(2)操作序号 4:测试人员查询状态为“待验”的软件问题,验证是否修复,如果已修复,则设置软件问题状态为“解决”,如果没有解决,则置状态为“打开”,因此,操作序号 4 中操作后状态应为“解决/不修复”。)解析: