1、四级软件测试工程师-2 及答案解析(总分:67.00,做题时间:90 分钟)一、选择题(总题数:18,分数:35.00)1.敏感测试属于下面哪种测试_。(分数:1.50)A.容量测试B.压力测试C.备份测试D.安全性测试2.以下_技术不属于软件自动化测试的实现方法。(分数:2.00)A.测试过程捕获与回放B.测试管理技术C.代码自动统计D.代码的静态分析3.在面向对象软件的集成测试中,下列关于基干集成的叙述中,错误的是_。(分数:2.00)A.基于测试最大的优点是无须设计桩模块和驱动模块B.在嵌入式系统中,基干集成划分为两部分:内核部分(基干部分)和外围应用部分C.基干集成集中了传统集成的优点
2、,并对缺点进行了控制,更加适合大型复杂项目的集成D.基干集成的缺点是必须对系统的结构和相互依存性进行分析4.下列关于逻辑覆盖,说法错误的是(分数:2.00)A.满足条件覆盖并不一定满足判定覆盖B.满足条件组合覆盖的测试一定满足判定覆盖、条件覆盖和判定/条件覆盖C.满足路径覆盖也一定满足条件组合覆盖D.满足判定/条件覆盖同时满足判定覆盖和条件覆盖5.下列测试用例设计中既适用于失效恢复测试用例设计又适用于健壮性测试用例设计的方法为_。(分数:2.00)A.规范导出法B.错误猜测法C.基于故障的测试D.基于风险的测试6.编码阶段的测试目标是确定程序代码的质量,代码质量的确定依据是_。(分数:2.00
3、)A.设计规格说明可跟踪到程序相应的代码,程序代码可跟踪到设计需求B.分析程序接口并与接口文档相对照C.执行程序评估工作,分析程序是不是设计说明的正确翻译,是否与程序编码标准相符D.以上全部7.下列关于开始软件测试工作应具备的条件中,错误的是(分数:2.00)A.具有测试合同(或项目计划)B.软件测试文档齐全、符合规范C.所提交的被测软件受控D.软件源代码正确通过编译或汇编8.关于面向对象软件单元测试的说法,错误的是_。(分数:2.00)A.面向对象软件中可独立被测试的单元通常是一个类族B.面向对象软件中可独立被测试的单元也可能是一个独立的类C.面向对象的单元测试分为方法层次、类层次和类树层次
4、的测试D.面向对象的单元测试与面向过程的单元测试目的相同9.可跟踪性分析是一种重要的软件验证和确认方法。不属于可跟踪性分析的活动是_。(分数:2.00)A.正确标识在需求规格说明中的每项需求B.从需求规格开始的正向跟踪应确保完全支持需求规格C.每个当前阶段产品的规格或特性应确保被可跟踪的前驱规格所支持D.确保所有不同接口规格说明的完整性10.软件质量的判断绝不只限于程序中的错误,在_产生的错误会在整个软件开发过程中影响最大。(分数:2.00)A.编码阶段B.测试阶段C.概要设计D.详细设计11.同行评审是一种通过作者的同行来确认缺陷和需要变更区域的检查方法。它主要分为管理评审、技术评审、过程评
5、审和_。(分数:2.00)A.误差评审B.项目评审C.文档评审D.组织体系评审12.下列关于软件测试过程的几种抽象模型,说法正确的是(分数:2.00)A.H模型指出软件测试具有独立性,只要某个测试达到准备就绪点,测试执行活动就可以开展B.W模型强调在整个项目开发中需要经历的不同测试级别,指明测试的对象是程序C.软件测试过程与软件开发过程的不同之处是它不必遵循软件工程原理D.V模型强调测试的对象不仅仅是程序,需求、设计等同样需要测试13.下面不属于集成测试层次的是_。(分数:2.50)A.应用环境集成测试B.模块内集成测试C.子系统内集成测试D.子系统间集成测试14.下面有关测试设计的叙述中,说
6、法不正确的是(分数:2.00)A.测试用例的设计是一项技术性强、智力密集型的活动B.在测试用例设计时,只设计覆盖正常流程和操作的测试用例即可C.在开展测试用例设计前,必须将测试需求进行详细展开D.在一般的测试组织内,测试用例的评审可能不是正式的评审会15.软件生存周期的正确顺序是_。(分数:2.00)A.软件设计、系统与软件需求定义、制定计划、编码和单元测试、集成和系统测试、运行和维护B.系统与软件需求定义、软件设计、制定计划、编码和单元测试、集成和系统测试、运行和维护C.制定计划、软件设计、系统与软件需求定义、编码和单元测试、集成和系统测试、运行和维护D.制定计划、系统与软件需求定义、软件设
7、计、编码和单元测试、集成和系统测试、运行和维护16.下列关于测试团队规模说法错误的一项是_。(分数:2.00)A.操作系统类型的产品,对测试要求最高,测试人员和开发人员的比例为 2:1,如微软B.应用平台,支撑系统类型的产品,对测试要求比较高,测试人员和开发人员的比例以 1:1为宜C.对于特定应用系统类产品,由于用户对象清楚、范围小,测试人员和开发人员的比例保持在 1:2为宜D.为了保证测试效果,测试人员越多越好17.从已经发现故障的存在到找到准确的故障位置并确定故障的性质,这一过程称为(分数:2.00)A.错误检测B.故障排除C.测试D.调试18.系统测试与单元测试、集成测试的区别是_。(分
8、数:1.00)A.测试方法不同B.考察范围不同C.评估基准不同D.以上全部二、论述题(总题数:2,分数:32.00)以下是某“象棋中走马事件”应用程序的走马规则,请按要求回答问题。 以下是中国象棋中走马事件中的走马规则: 1)如果落点在棋盘外,则不移动棋子; 2)如果落点与起点不构成日字形,则不移动棋子; 3)如果落点处有己方棋子,则不移动棋子; 4)如果在落点方向的邻近交叉点有棋子(绊马腿),则不移动棋子; 5)如果不属于 1)4)条,且落点处无棋子,则移动棋子。 6)如果不属于 1)4)条,且落点处为对方棋子(非老将),则移动棋子并除去对方棋子; 7)如果不属于 1)4)条,且落点处为对方
9、老将,则移动棋子,并提示战胜对方,游戏结束。(分数:12.00)(1).画出该应用程序的因果图。(分数:6.00)_(2).对该软件进行基于因果图的方法设计测试用例。(分数:6.00)_以下是某 C语言程序段,其功能是计算输入数据是否为水仙花数,请仔细阅读程序并完成要求。 # includestdioh void main() int i,a,b,c; scanf(“%d“,i); a=i/100: b=i/10%10: c=i%10: if(i=a*a*a+b*b*b+c*c*c) printf(“%d/n“,i); (分数:20.00)(1).画出此程序主函数的控制流程图。(分数:10.0
10、0)_(2).设计一组测试用例,使该程序所有函数的语句覆盖率和分支覆盖率均能达到 100%。如果认为该程序的语句或分支覆盖率无法达到 100%,需说明为什么。(分数:10.00)_四级软件测试工程师-2 答案解析(总分:67.00,做题时间:90 分钟)一、选择题(总题数:18,分数:35.00)1.敏感测试属于下面哪种测试_。(分数:1.50)A.容量测试B.压力测试 C.备份测试D.安全性测试解析:解析 压力测试中,测试人员主要关注的是在有非正常资源占用的情况下系统的处理时间,它的一个变种就是敏感测试技术,即在某些情况,有效数据界限之内的一个很小范围的数据都可能会引起极端的甚至是错误的运行
11、,或者引起性能的急剧下降,这种情况与数学函数中的奇点很类似,敏感测试就是要发现在有效数据输入中的可能会引发不稳定或者错误处理的数据组合。2.以下_技术不属于软件自动化测试的实现方法。(分数:2.00)A.测试过程捕获与回放B.测试管理技术C.代码自动统计 D.代码的静态分析解析:解析 白盒测试的自动化技术主要包括直接对代码进行静态分析和自动化测试管理,而黑盒测试的自动化技术则包括对系统的动态分析、测试过程捕获与回放、测试脚本技术、虚拟用户技术和测试管理技术。3.在面向对象软件的集成测试中,下列关于基干集成的叙述中,错误的是_。(分数:2.00)A.基于测试最大的优点是无须设计桩模块和驱动模块
12、B.在嵌入式系统中,基干集成划分为两部分:内核部分(基干部分)和外围应用部分C.基干集成集中了传统集成的优点,并对缺点进行了控制,更加适合大型复杂项目的集成D.基干集成的缺点是必须对系统的结构和相互依存性进行分析解析:解析 基干测试必须对系统的结构和相互依存性进行分析,必须开发桩模块和驱动模块,由于局部采用一次性集成策略导致有些接口可能测试不完整。B、C、D 选项的陈述都是正确的,A 是错误的。4.下列关于逻辑覆盖,说法错误的是(分数:2.00)A.满足条件覆盖并不一定满足判定覆盖B.满足条件组合覆盖的测试一定满足判定覆盖、条件覆盖和判定/条件覆盖C.满足路径覆盖也一定满足条件组合覆盖 D.满
13、足判定/条件覆盖同时满足判定覆盖和条件覆盖解析:解析 考察各种逻辑覆盖的关系:条件组合覆盖判定覆盖语句覆盖(即如果达到条件组合覆盖,就达到判定覆盖和语句覆盖:如果达到判定覆盖,就达到语句覆盖,下面类似理解)。条件组合覆盖条件覆盖。条件覆盖不一定包含判定覆盖、语句覆盖。判定覆盖不一定包含条件覆盖。路径覆盖,判定覆盖语句。5.下列测试用例设计中既适用于失效恢复测试用例设计又适用于健壮性测试用例设计的方法为_。(分数:2.00)A.规范导出法B.错误猜测法 C.基于故障的测试D.基于风险的测试解析:解析 健壮性测试常用的测试用例设计方法有:故障插入测试、变异测试和错误猜测法。失效恢复测试常用的测试用
14、例设计方法有:规范导出法、错误猜测法、基于故障的测试和基于风险的测试。所以选择 B选项。6.编码阶段的测试目标是确定程序代码的质量,代码质量的确定依据是_。(分数:2.00)A.设计规格说明可跟踪到程序相应的代码,程序代码可跟踪到设计需求B.分析程序接口并与接口文档相对照C.执行程序评估工作,分析程序是不是设计说明的正确翻译,是否与程序编码标准相符D.以上全部 解析:7.下列关于开始软件测试工作应具备的条件中,错误的是(分数:2.00)A.具有测试合同(或项目计划)B.软件测试文档齐全、符合规范 C.所提交的被测软件受控D.软件源代码正确通过编译或汇编解析:解析 软件测试工作一般应具备的条件为
15、:具有测试合同(或项目计划);具有软件测试所需的各种文档;所提交的被测软件受控;软件源代码正确通过编译或汇编。8.关于面向对象软件单元测试的说法,错误的是_。(分数:2.00)A.面向对象软件中可独立被测试的单元通常是一个类族B.面向对象软件中可独立被测试的单元也可能是一个独立的类C.面向对象的单元测试分为方法层次、类层次和类树层次的测试D.面向对象的单元测试与面向过程的单元测试目的相同 解析:解析 A、B、C 选项中关于面向对象软件单元测试的陈述都是正确的,面向对象软件的测试主要包括两方面的内容,检查分析结果是否符合相应面向对象分析方法的要求;检查分析结果是否可以满足软件要求。与面向过程的测
16、试有着不同的测试目的。9.可跟踪性分析是一种重要的软件验证和确认方法。不属于可跟踪性分析的活动是_。(分数:2.00)A.正确标识在需求规格说明中的每项需求B.从需求规格开始的正向跟踪应确保完全支持需求规格C.每个当前阶段产品的规格或特性应确保被可跟踪的前驱规格所支持D.确保所有不同接口规格说明的完整性 解析:解析 可跟踪性分析是指标识原始需求和相应开发结果之间关系的能力。可跟踪性分析的目的是保证规格说明中的每项需求被正确标识,当前阶段与前后阶段之间跟踪是一致的。借助于向前和向后跟踪,可以建立高效的测试计划,并可验证覆盖了功能和设计需求/特性的测试用例的实测结果。每个跟踪按一致性、完整性和正确
17、性来分析,以便验证全部的软件需求是否在软件中得以实现以及是否与正确的设计、代码和测试信息相联系。10.软件质量的判断绝不只限于程序中的错误,在_产生的错误会在整个软件开发过程中影响最大。(分数:2.00)A.编码阶段B.测试阶段C.概要设计 D.详细设计解析:11.同行评审是一种通过作者的同行来确认缺陷和需要变更区域的检查方法。它主要分为管理评审、技术评审、过程评审和_。(分数:2.00)A.误差评审B.项目评审C.文档评审 D.组织体系评审解析:解析 同行评审是一种通过作者的同行来确定缺陷和需要变更区域的检查方法。涉及的内容很多,主要可以分为管理评审、技术评审、文档评审和过程评审。12.下列
18、关于软件测试过程的几种抽象模型,说法正确的是(分数:2.00)A.H模型指出软件测试具有独立性,只要某个测试达到准备就绪点,测试执行活动就可以开展 B.W模型强调在整个项目开发中需要经历的不同测试级别,指明测试的对象是程序C.软件测试过程与软件开发过程的不同之处是它不必遵循软件工程原理D.V模型强调测试的对象不仅仅是程序,需求、设计等同样需要测试解析:解析 软件测试过程体现了软件测试的流程和方法,与软件开发过程一样,都遵循软件工程原理,遵循管理学原理,故选项 C不正确。V 模型反映出测试活动与分析设计活动的关系,强调了在整个项目开发过程中需要经历的不同测试级别,忽视了测试的对象不应该仅仅是程序
19、,W 模型是对 V模型进行了补充,明确指出:测试的对象不仅仅是程序,需求、设计等同样需要进行测试,H 模型指出软件测试是一个独立的流程,只要某个测试达到准备就绪点,测试执行活动就可以开展,软件测试贯穿于产品的整个生命周期,与其他流程可以并发进行。13.下面不属于集成测试层次的是_。(分数:2.50)A.应用环境集成测试 B.模块内集成测试C.子系统内集成测试D.子系统间集成测试解析:解析 集成测试层次不包括应用环境集成测试。14.下面有关测试设计的叙述中,说法不正确的是(分数:2.00)A.测试用例的设计是一项技术性强、智力密集型的活动B.在测试用例设计时,只设计覆盖正常流程和操作的测试用例即
20、可 C.在开展测试用例设计前,必须将测试需求进行详细展开D.在一般的测试组织内,测试用例的评审可能不是正式的评审会解析:解析 在测试用例设计时,不能只设计覆盖正常流程和操作的测试用例,而必须强制覆盖错误输入处理、边界值处理等场景,以确保被测软件系统投入使用时具备较强的容错能力。15.软件生存周期的正确顺序是_。(分数:2.00)A.软件设计、系统与软件需求定义、制定计划、编码和单元测试、集成和系统测试、运行和维护B.系统与软件需求定义、软件设计、制定计划、编码和单元测试、集成和系统测试、运行和维护C.制定计划、软件设计、系统与软件需求定义、编码和单元测试、集成和系统测试、运行和维护D.制定计划
21、、系统与软件需求定义、软件设计、编码和单元测试、集成和系统测试、运行和维护 解析:16.下列关于测试团队规模说法错误的一项是_。(分数:2.00)A.操作系统类型的产品,对测试要求最高,测试人员和开发人员的比例为 2:1,如微软B.应用平台,支撑系统类型的产品,对测试要求比较高,测试人员和开发人员的比例以 1:1为宜C.对于特定应用系统类产品,由于用户对象清楚、范围小,测试人员和开发人员的比例保持在 1:2为宜D.为了保证测试效果,测试人员越多越好 解析:解析 测试人员并不是越多越好,需要根据实际情况进行合理的配比。17.从已经发现故障的存在到找到准确的故障位置并确定故障的性质,这一过程称为(
22、分数:2.00)A.错误检测B.故障排除C.测试D.调试 解析:解析 对已经发现的错误进行错误定位和确定出错性质,并改正这些错误,同时修改相关的文档,这一过程称为排错,也称调试。18.系统测试与单元测试、集成测试的区别是_。(分数:1.00)A.测试方法不同B.考察范围不同C.评估基准不同D.以上全部 解析:解析 系统测试与单元测试、集成测试的区别在于: (1)测试方法不同。系统测试主要是黑盒测试,而单元测试、集成测试主要属于白盒测试或灰盒测试的范畴。 (2)考察范围不同。单元测试主要测试模块内部接口、数据结构、逻辑、异常处理等对象;集成测试主要测试模块之间的接口和异常;系统测试主要测试整个系
23、统相对于用户的需求。 (3)评估基准不同。系统测试的评估基准是测试用例对需求规格说明的覆盖率,而单元测试和集成测试的评估主要是代码的覆盖率。二、论述题(总题数:2,分数:32.00)以下是某“象棋中走马事件”应用程序的走马规则,请按要求回答问题。 以下是中国象棋中走马事件中的走马规则: 1)如果落点在棋盘外,则不移动棋子; 2)如果落点与起点不构成日字形,则不移动棋子; 3)如果落点处有己方棋子,则不移动棋子; 4)如果在落点方向的邻近交叉点有棋子(绊马腿),则不移动棋子; 5)如果不属于 1)4)条,且落点处无棋子,则移动棋子。 6)如果不属于 1)4)条,且落点处为对方棋子(非老将),则移
24、动棋子并除去对方棋子; 7)如果不属于 1)4)条,且落点处为对方老将,则移动棋子,并提示战胜对方,游戏结束。(分数:12.00)(1).画出该应用程序的因果图。(分数:6.00)_正确答案:()解析:第一步,从中国象棋走马事件的走马规则的描述中,明确原因和结果。 原因: 1落点在棋盘上。 2落点与起点构成日字。 3落点处无己方棋子。 4落点方向的邻近交叉点无棋子。 5落点处有棋子。 6落点处为对方棋子(非老将)。 7落点处为对方老将。 结果: 21不移动棋子。 22移动棋子。 23移动棋子,并除去对方棋子。 24移动棋子,并提示战胜对方,结束游戏。 第二步,根据上面分析的原因和结果,结合题目
25、中二者的关系,建立因果图。 其因果图如下图所示,图中,结点 11是导出结果的讲一步原因。 (2).对该软件进行基于因果图的方法设计测试用例。(分数:6.00)_正确答案:()解析:根据上面的因果图,建立对应的判定表。 在该应用程序中,原因有 7个,一个完整的判定表应有 2 7 =128种情况。由于篇幅的限制,且考虑到5、6、7 原因只与中间结果 11有关,所以这里将完整的判定表拆分为两个子表,如表 1和表 2所示。对于结果 22、23、24,中间结果是原因,因此在表 2中,将 11作为原因。 表 1 判定表 1 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
26、 原因 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 2 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 3 0 0 0 0 0 0 0 0 1 1 1 l 1 l 1 1 4 0 0 0 0 0 0 0 0 1 1 1 1 1 l 1 1 中间结果 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 结果 21 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 测试用例 Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y 表 2 判定表 2 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14
27、 15 16 11 0 1 0 1 0 1 0 1 0 1 0 1 0 l 0 1 5 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 6 0 0 0 0 0 0 0 0 l 1 1 1 1 1 l 1 原因 7 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 l 结果 22 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 23 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 24 0 0 0 0 0 0 0 0 0 1 0 l 0 1 0 1 测试用例 Y Y Y Y Y Y Y 由表 1可知,当结点 11为 1时,结果 21为 0
28、。由于结果 21、22、23、24 受到 O约束的限制,不能同时为 0,所以在表 2中的 2列是不能出现的情况;同样受到 O约束的还有 8、12、14 和 16列;由于 E约束,第 7、8、11 到 16列也是不可能出现的情况。在表中用灰框表示。 最后根据判定表设计测试用例。如表 2所示,判定表中没有被划去的每一列就是一个测试用例。以下是某 C语言程序段,其功能是计算输入数据是否为水仙花数,请仔细阅读程序并完成要求。 # includestdioh void main() int i,a,b,c; scanf(“%d“,i); a=i/100: b=i/10%10: c=i%10: if(i=a*a*a+b*b*b+c*c*c) printf(“%d/n“,i); (分数:20.00)(1).画出此程序主函数的控制流程图。(分数:10.00)_正确答案:()解析:主函数的控制流程图如下: (2).设计一组测试用例,使该程序所有函数的语句覆盖率和分支覆盖率均能达到 100%。如果认为该程序的语句或分支覆盖率无法达到 100%,需说明为什么。(分数:10.00)_正确答案:()解析:此题测试用例的设计要覆盖两条路径,既有水仙花数,也不是水仙花数。153 和 123即可。