1、计算机四级软件测试工程师-2 及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:25,分数:50.00)1.下列选项中,评审方法是按照正式化程度逐渐增强排列的是_。(分数:2.00)A.临时评审、轮查、结对评审、走查、正式审查B.临时评审、走查、结对评审、轮查、正式评审C.临时评审、走查、小组评审、结对评审、正式评审D.正式评审、小组评审、走杏、结对评审、临时评审2.下列关于测试方法,说法正确的是_。(分数:2.00)A.白盒测试不同于黑盒测试之处是它可以减少测试用例数量B.覆盖所有独立路径就能够覆盖所有分支C.在单元测试中不使用黑盒测试技术D.满足分支覆盖就满足
2、条件覆盖和语句覆盖3.下面有关测试设计的叙述,说法不正确的是_。(分数:2.00)A.测试用例的设计是一项技术性强、智力密集型的活动B.在测试用例设计时,只设计覆盖正常流程和操作的测试用例即可C.在开展测试用例设计前,必须将测试需求进行详细展开D.在一般的测试组织内,测试用例的评审可能不是正式的评审会4.下列测试类型中,不是针对软件产品的质量特性的是_。(分数:2.00)A.性能测试B.安全性测试C.易用性测试D.回归测试5.下列几种逻辑覆盖标准中,查错能力最强的是_(分数:2.00)A.语句覆盖B.条件覆盖C.判定覆盖D.条件组合覆盖6.测试项目实践中,测试策划活动的目标是_。(分数:2.0
3、0)A.确定测试范围B.划分测试任务C.编写测试计划文档D.组织测试团队7.为提高集成测试的效果,软件的集成工作最好由_来承担。(分数:2.00)A.该软件的设计人员B.该软件的编程人员C.该软件开发组的负责人D.不属于该软件开发组的软件设计人员8.传统的集成测试策略一般分为两种:一是非渐增式集成策略,二是渐增式集成策略。二者的区别是_。(分数:2.00)A.在集成测试中发现问题时,前者比后者更容易进行问题定位B.后者比前者更适合大规模应用系统的集成测试C.前者需要开发驱动模块和桩模块,而后者不需要D.前者不需要所有模块就绪,而后者需要9.下列关于测试策略,说法错误的是_。(分数:2.00)A
4、.自底向上测试的优点是随着上移,驱动模块逐步减少,测试开销小一些B.自顶向下测试的优点是较早的发现高层模块接口、控制等方面的问题C.自底向上测试的优点是比较容易设计测试用例D.自顶向下测试的优点是使得低层模块的错误较早发现10.等价类划分和边界值分析是常用的两种黑盒测试方法,采用这两种方法,可以大幅度减少测试用例的数量,那么,它们的局限性是_。(分数:2.00)A.在设计测试用例时不能将这两种方法结合在一起同时使用B.不同输入变量之间可能存在约束关系,它们不能处理这类约束关系C.不能用于大型信息系统的测试用例的设计D.不能用于单元测试和集成测试11.对于 Web 应用软件系统测试技术,下列不属
5、于功能测试的是_。(分数:2.00)A.表单测试B.并发测试C.链接测试D.Cookie 测试12.软件测试自动化是指利用好的测试工具以自动运行测试用例。软件测试自动化的好处在于_。(分数:2.00)A.比手工测试发现更多的软件缺陷B.可以自动产生测试计划C.使输入值组合的覆盖率达到 100%D.可以在较少的时间内运行更多的测试用例13.不需要运行程序,通过收集有关代码的结构信息来对程序进行的测试是_。(分数:2.00)A.性能测试B.黑盒测试C.白盒测试D.静态分析14.对采用迭代或增量开发过程模型开发的产品进行集成测试时最适合采用的集成策略是_。(分数:2.00)A.传统的集成测试策略B.
6、基于使用的集成测试策略C.基干集成测试策略D.高频集成测试策略15.在软件生存周期中占据时间最长的是_。(分数:2.00)A.运行和维护阶段B.软件开发阶段C.需求分析阶段D.软件设计阶段16.关于内置式合约测试(BICT),下列说法错误的是_。(分数:2.00)A.增加了测试器构件和测试处理器构件,使被测构件具有自测试能力B.该测试方法可用于动态、分布式系统C.该测试方法的提出扩展了基于构件的软件工程实践D.提出的模型驱动方法效率很高17.使用白盒测试方法时,确定测试数据应根据_和指定的覆盖标准。(分数:2.00)A.程序的复杂结构B.程序的内部逻辑C.使用说明书D.程序的功能18.下列关于
7、缺陷产生原因的叙述中,不属于技术问题的是_。(分数:2.00)A.文档错误,内容不正确或拼写错误B.系统结构不合理C.语法错误D.接口传递不匹配,导致模块集成出现问题19.通常测试人员判定一个运行结果中存在缺陷的准则是_。(分数:2.00)A.开发人员承认这个运行结果中存在缺陷B.测试人员可以从中找出缺陷的证据C.这个运行结果与测试案例中的预期结果不一致D.这个运行结果与测试人员预期的不一致20.下列关于面向对象集成测试的说法中,正确的是_。(分数:2.00)A.大突击集成是面向对象集成测试最常用且最有效的方法B.自底向上集成和自顶向下集成都需要为集成测试开发大量代码C.与自底向上集成和自顶向
8、下集成相比,协作集成是一种更充分的集成测试策略D.高频集成是以自底向上集成为基础,利用冒烟测试进行的集成测试21.下列属于 QESAT/C 的优点的是_。(分数:2.00)A.及早地发现程序中隐藏的错误B.快捷有效地理解程序结构C.帮助分析和测试程序D.以上全部22.下列关于软件性能测试的说法中,正确的是_。(分数:2.00)A.性能测试的目的不是为了发现软件缺陷B.压力测试与负载测试的目的都是为了探测软件在满足预定性能需求的情况下所能负担的最大压力C.性能测试通常要对测试结果进行分析才能获得测试结论D.在性能下降曲线上,最大建议用户数通常处于性能轻微下降区与性能急剧下降区的交界处23.关于兼
9、容性测试的内容陈述,下列说法错误的是_。(分数:2.00)A.通常兼容性测试主要考虑硬件、软件和数据三个方面B.硬件兼容性测试通常并不用把软件在各种不同的硬件环境下运行和测试C.不同的硬件配置,可能影响软件的性能,因此需要有针对地进行硬件兼容性测试D.数据兼容性仅仅包括不同版本之间的数据兼容性24.Myers 在 1979 年提出了一个重要观点,即软件测试的目的是为了_。(分数:2.00)A.证明程序正确B.查找程序错误C.改正程序错误D.验证程序无错误25.软件可靠性分析方法通常不依赖于概率统计的方法,下面属于软件可靠性分析方法的是_。(分数:2.00)A.失效模式影响分析法(FMEA 法)
10、B.故障树和事件树分析法C.潜在线路分析法D.以上全部二、B论述题/B(总题数:3,分数:50.00)以下是一软件规格说明,请按要求回答问题。软件规格说明:某工厂招工规定,报名者年龄应该在 16 周岁到 35 周岁之间(到 2011 年 12 月 31 日为止),即出生年月不在上述范围内的人员将不予接受,并显示“年龄不合格”的出错信息。(分数:20.00)(1).请根据规格说明,划分等价类。(分数:10.00)_(2).使用等价类划分方法为该软件设计测试用例。(分数:10.00)_以下是某“象棋中走马事件”应用程序的走马规则,请按要求回答问题。以下是中国象棋中走马事件中的走马规则:1)如果落点
11、在棋盘外,则不移动棋子;2)如果落点与起点不构成日字形,则不移动棋子;3)如果落点处有己方棋子,则不移动棋子;4)如果在落点方向的邻近交叉点有棋子(绊马腿),则不移动棋子;5)如果不属于 1)4)条,且落点处无棋子,则移动棋子。6)如果不属于 1)4)条,且落点处为对方棋子(非老将),则移动棋子并除去对方棋子;7)如果不属于 1)4)条,且落点处为对方老将,则移动棋子,并提示战胜对方,游戏结束。(分数:12.00)(1).画出该应用程序的因果图。(分数:6.00)_(2).对该软件进行基于因果图的方法设计测试用例。(分数:6.00)_针对以下 C 语言程序,请按要求回答问题。下面是一个程序段(
12、C 语言),试设计基本路径测试的测试用例,设计出的测试用例要保证每一个基本独立路径至少要执行一次。函数说明:当 i_flag=0;返回 i_count+100当 i_flag=1;返回 i_count*10否则返回 i count*20输入参数:int i_count int i_flag输出参数:int i_return程序代码如下:1 int Test(int i_count, int i_flag)2 3 int i_temp=0;4 while(i_count0)5 6 if(0=i_flag)7 8 i_temp=i_count+100;9 break; 10 11 else12 1
13、3 if(1=i_flag)14 15 i_temp=i_temp+10; 16 17 else18 19 i_temp=i_temp+20; 20 21 22 i_count-; 23 24 return i_temp;25 (分数:18.00)(1).画出该函数的控制流程图。(分数:9.00)_(2).采用基本路径测试法设计一组测试用例,保证每个基本独立路径都至少执行一次。(分数:9.00)_计算机四级软件测试工程师-2 答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:25,分数:50.00)1.下列选项中,评审方法是按照正式化程度逐渐增强排列的是_。(分数:
14、2.00)A.临时评审、轮查、结对评审、走查、正式审查 B.临时评审、走查、结对评审、轮查、正式评审C.临时评审、走查、小组评审、结对评审、正式评审D.正式评审、小组评审、走杏、结对评审、临时评审解析:解析 同行评审方法很多,基于正式化程度不同或其规则和灵活程度不同,可将同行评审进行分类。根据正式化程度不同,从非正式到十分严格依次为:临时评审、轮查、结对评审、走查、小组评审、正式审查。2.下列关于测试方法,说法正确的是_。(分数:2.00)A.白盒测试不同于黑盒测试之处是它可以减少测试用例数量B.覆盖所有独立路径就能够覆盖所有分支 C.在单元测试中不使用黑盒测试技术D.满足分支覆盖就满足条件覆
15、盖和语句覆盖解析:解析 白盒测试与黑盒测试的本质区别是对内部逻辑的理解,与测试用例数量无关。单元测试是以白盒测试为主,但有时也会用到黑盒测试技术。满足分支测试不一定满足条件测试。3.下面有关测试设计的叙述,说法不正确的是_。(分数:2.00)A.测试用例的设计是一项技术性强、智力密集型的活动B.在测试用例设计时,只设计覆盖正常流程和操作的测试用例即可 C.在开展测试用例设计前,必须将测试需求进行详细展开D.在一般的测试组织内,测试用例的评审可能不是正式的评审会解析:解析 在测试用例设计时,不能只设计覆盖正常流程和操作的测试用例,而必须强制覆盖错误输入处理,边界值处理等场景,以确保被测软件系统投
16、入使用时具备较强的容错能力。4.下列测试类型中,不是针对软件产品的质量特性的是_。(分数:2.00)A.性能测试B.安全性测试C.易用性测试D.回归测试 解析:解析 回归测试时针对软件产品的功能特性的。5.下列几种逻辑覆盖标准中,查错能力最强的是_(分数:2.00)A.语句覆盖B.条件覆盖C.判定覆盖D.条件组合覆盖 解析:解析 对于选项中的几种逻辑覆盖,查错能力从高到低依次为条件组合测试、条件测试/判定测试、语句测试。6.测试项目实践中,测试策划活动的目标是_。(分数:2.00)A.确定测试范围B.划分测试任务C.编写测试计划文档 D.组织测试团队解析:解析 在实际的测试项目实践中,测试策划
17、活动的目标是编写测试计划文档。7.为提高集成测试的效果,软件的集成工作最好由_来承担。(分数:2.00)A.该软件的设计人员B.该软件的编程人员C.该软件开发组的负责人D.不属于该软件开发组的软件设计人员 解析:解析 为提高集成测试的效果,软件的集成工作最好由不属于该软件开发组的软件设计人员承担。8.传统的集成测试策略一般分为两种:一是非渐增式集成策略,二是渐增式集成策略。二者的区别是_。(分数:2.00)A.在集成测试中发现问题时,前者比后者更容易进行问题定位B.后者比前者更适合大规模应用系统的集成测试 C.前者需要开发驱动模块和桩模块,而后者不需要D.前者不需要所有模块就绪,而后者需要解析
18、:解析 仅有 B 说法正确,是二者的区别。其他 3 个选项说法颠倒。9.下列关于测试策略,说法错误的是_。(分数:2.00)A.自底向上测试的优点是随着上移,驱动模块逐步减少,测试开销小一些B.自顶向下测试的优点是较早的发现高层模块接口、控制等方面的问题C.自底向上测试的优点是比较容易设计测试用例D.自顶向下测试的优点是使得低层模块的错误较早发现 解析:解析 自顶向下测试的优点应该是使得顶层模块的错误较早发现。10.等价类划分和边界值分析是常用的两种黑盒测试方法,采用这两种方法,可以大幅度减少测试用例的数量,那么,它们的局限性是_。(分数:2.00)A.在设计测试用例时不能将这两种方法结合在一
19、起同时使用B.不同输入变量之间可能存在约束关系,它们不能处理这类约束关系 C.不能用于大型信息系统的测试用例的设计D.不能用于单元测试和集成测试解析:解析 等价类划分和边界值分析的局限性表述正确的就是选项 B,不同输入变量之间可能存在约束关系,它们不能处理这类约束关系。11.对于 Web 应用软件系统测试技术,下列不属于功能测试的是_。(分数:2.00)A.表单测试B.并发测试 C.链接测试D.Cookie 测试解析:解析 Web 应用软件的系统测试技术除了功能测试外还包括性能测试、易用性测试、内容测试、安全性测试和接口测试等。由于 web 应用软件的特殊性,在按照测试大纲对 Web 应用软件
20、进行系统测试前通常要进行几个方面的功能测试,主要包括:链接测试;表单测试;Cookie 测试。12.软件测试自动化是指利用好的测试工具以自动运行测试用例。软件测试自动化的好处在于_。(分数:2.00)A.比手工测试发现更多的软件缺陷B.可以自动产生测试计划C.使输入值组合的覆盖率达到 100%D.可以在较少的时间内运行更多的测试用例 解析:解析 软件测试自动化的主要特点就是可以在较少的时间内运行更多的测试用例,这也是使用它的好处。13.不需要运行程序,通过收集有关代码的结构信息来对程序进行的测试是_。(分数:2.00)A.性能测试B.黑盒测试C.白盒测试D.静态分析 解析:解析 软件测试的分类
21、方法比较多,针对测试时是否要运行程序分为静态测试和动态测试,其中静态测试也称静态分析,是不必运行程序目的仅仅是收集程序代码的结构信息而不用查错,相反动态测试则是要执行程序,查出程序的错误非单纯收集代码结构信息。针对测试人员是否要清楚程序的内部逻辑,将测试分为白盒测试和黑盒测试,同时这两种测试方法都要对程序进行查错,从这一角度,白盒测试和黑盒测试都应属于动态测试。由此选项 D 静态分析最恰当。14.对采用迭代或增量开发过程模型开发的产品进行集成测试时最适合采用的集成策略是_。(分数:2.00)A.传统的集成测试策略B.基于使用的集成测试策略C.基干集成测试策略D.高频集成测试策略 解析:解析 高
22、频集成是指在软件开发过程中频繁地将新开发地代码与已有代码集成。最适用于采用迭代或增量开发过程模型开发的产品进行集成测试。15.在软件生存周期中占据时间最长的是_。(分数:2.00)A.运行和维护阶段 B.软件开发阶段C.需求分析阶段D.软件设计阶段解析:解析 由于很多复杂因素的影响,软件开发组织投入到软件产品上的费用以及大多数时间都花在了软件完成并交付使用后对它的维护上,软件的运行和维护阶段可以说是软件生存周期中占据时间最长的阶段。16.关于内置式合约测试(BICT),下列说法错误的是_。(分数:2.00)A.增加了测试器构件和测试处理器构件,使被测构件具有自测试能力B.该测试方法可用于动态、
23、分布式系统C.该测试方法的提出扩展了基于构件的软件工程实践D.提出的模型驱动方法效率很高 解析:解析 内置式合约测试(BICT)可用于动态、分布式系统,扩展了基于构件的软件工程实践,但是它提出的模型驱动的方法需要构件的源代码,其效率目前还是未知的。17.使用白盒测试方法时,确定测试数据应根据_和指定的覆盖标准。(分数:2.00)A.程序的复杂结构B.程序的内部逻辑 C.使用说明书D.程序的功能解析:解析 使用白盒测试方法时,确定测试数据应根据程序的内部逻辑和指定的覆盖标准。18.下列关于缺陷产生原因的叙述中,不属于技术问题的是_。(分数:2.00)A.文档错误,内容不正确或拼写错误B.系统结构
24、不合理 C.语法错误D.接口传递不匹配,导致模块集成出现问题解析:解析 软件缺陷产生的原因大的方面讲主要有技术问题,团队合作,软件本身。该题考查大方面中的小问题,即对三方面划分的理解,显然选项 A 中文档的问题应该是属于软件本身的,而非技术问题。19.通常测试人员判定一个运行结果中存在缺陷的准则是_。(分数:2.00)A.开发人员承认这个运行结果中存在缺陷B.测试人员可以从中找出缺陷的证据C.这个运行结果与测试案例中的预期结果不一致 D.这个运行结果与测试人员预期的不一致解析:解析 通常测试人员判定一个运行结果中存在缺陷的准则是这个运行结果与测试案例中的预期结果不一致。20.下列关于面向对象集
25、成测试的说法中,正确的是_。(分数:2.00)A.大突击集成是面向对象集成测试最常用且最有效的方法B.自底向上集成和自顶向下集成都需要为集成测试开发大量代码 C.与自底向上集成和自顶向下集成相比,协作集成是一种更充分的集成测试策略D.高频集成是以自底向上集成为基础,利用冒烟测试进行的集成测试解析:解析 大突击集成就是将系统的所有组成成分都集成在一起进行测试,通常只有在整个软件的可靠性有了基本的保障时,大突击集成测试才是一种合理的选择。自底向上集成主要缺点是需要开发大量的测试驱动代码,自顶向下集成则需要为集成测试开发大量桩代码,总之,两者都要为集成测试开发大量代码。选项 C 说法过于绝对,因为只
26、有当类间的主要协作关系可以明确辨识,且每个功能只需要少数类协作就可以完成时,采用协作集成方式才是一个不错的选择。高频集成并不是一个具体的集成策略,它是指在软件开发过程中频繁地将新开发出来的代码与已有代码集成,一般采用冒烟的方式,但并不是以自底向上集成为基础。21.下列属于 QESAT/C 的优点的是_。(分数:2.00)A.及早地发现程序中隐藏的错误B.快捷有效地理解程序结构C.帮助分析和测试程序D.以上全部 解析:解析 QESAT/C 的优点是:能帮助分析和测试程序,快捷有效地理解程序结构,及早地发现程序中隐藏的错误,从而提高软件的质量。22.下列关于软件性能测试的说法中,正确的是_。(分数
27、:2.00)A.性能测试的目的不是为了发现软件缺陷B.压力测试与负载测试的目的都是为了探测软件在满足预定性能需求的情况下所能负担的最大压力C.性能测试通常要对测试结果进行分析才能获得测试结论 D.在性能下降曲线上,最大建议用户数通常处于性能轻微下降区与性能急剧下降区的交界处解析:解析 性能测试通用模型(PTGM 模型)的最后一步就是测试结果分析,说明性能测试通常要对测试结果进行分析才能获得测试结论,故 C 正确。软件的性能是软件的一种非功能特性。软件性能测试包括以下几方面的目标:发现性能缺陷;性能调优;能力检验和规划。其中性能测试的首要目标应该就是发现软件性能缺陷,说明 A 说法不正确。压力测
28、试与负载测试虽然都是要对软件施加业务压力,但其根本目的完全不同,负载测试的目的是为了探测软件在满足预定性能需求的情况下所能负担的最大压力但压力测试的目的是利用压力来揭示软件中存在的潜在缺陷,故 B 说法不正确。在性能下降曲线上,最大建议用户数通常处于平坦区和性能轻微下降区的交界处,所以 D 说法错误。23.关于兼容性测试的内容陈述,下列说法错误的是_。(分数:2.00)A.通常兼容性测试主要考虑硬件、软件和数据三个方面B.硬件兼容性测试通常并不用把软件在各种不同的硬件环境下运行和测试C.不同的硬件配置,可能影响软件的性能,因此需要有针对地进行硬件兼容性测试D.数据兼容性仅仅包括不同版本之间的数
29、据兼容性 解析:解析 A、B、C 三项的陈述都是正确的,D 选项中数据兼容性不仅仅包括不同版本之间的数据兼容性,还包括不同软件间的数据兼容性。24.Myers 在 1979 年提出了一个重要观点,即软件测试的目的是为了_。(分数:2.00)A.证明程序正确B.查找程序错误 C.改正程序错误D.验证程序无错误解析:解析 Glenford JMyers 于 1979 年给出测试的定义为:软件测试是为发现错误而执行的一个程序或者系统的过程。同时他给出了 3 个关于测试的重要观点: 测试是为了证明程序有错,而不是证明程序正确; 一个好的测试用例在于它能发现以前未发现的错误; 一个成功的测试是发现了以前
30、未发现的错误的测试。25.软件可靠性分析方法通常不依赖于概率统计的方法,下面属于软件可靠性分析方法的是_。(分数:2.00)A.失效模式影响分析法(FMEA 法)B.故障树和事件树分析法C.潜在线路分析法D.以上全部 解析:解析 目前主要的软件可靠性分析方法有失效模式影响分析法、严酷度分析法、故障树分析法、事件树分析法、潜在线路分析法。二、B论述题/B(总题数:3,分数:50.00)以下是一软件规格说明,请按要求回答问题。软件规格说明:某工厂招工规定,报名者年龄应该在 16 周岁到 35 周岁之间(到 2011 年 12 月 31 日为止),即出生年月不在上述范围内的人员将不予接受,并显示“年
31、龄不合格”的出错信息。(分数:20.00)(1).请根据规格说明,划分等价类。(分数:10.00)_正确答案:()解析:根据题意,划分等价类。 假定已知出生年月由 6 位数字字符表示,前 4 位代表年,后两位代表月,则可以划分 3 个有效等价类和 7 个无效等价类。具体如下: 有效等价类: 出生年月: (1)6 位数字 对应数值: (5)197603199512 月份对应数值: (8)在 112 之间 无效等价类: 出生年月: (2)含非数字字符 (3)少于 6 个数字字符 (4)多于 6 个数字字符 对应数值: (6)小于 197003 (7)大于 198912 月份对应数值: (9)小于
32、0 (10)大于 12(2).使用等价类划分方法为该软件设计测试用例。(分数:10.00)_正确答案:()解析:根据上述等价类划分,设计测试用例。有效等价类的测试用例,如下表 11 所示。 表11 有效等价类测试数据期望结果覆盖范围197703显示有效输入(1)、(2)、(8)无效等价类的测试用例,如表 12 所示。 表12 无效等价类测试数据期望结果覆盖范围ZHU#12显示无效输入(2)19823显示无效输入(3)1982012显示无效输入(4)195503年龄不合格(6)199112年龄不合格(7)1977显示无效(9)00输入197732显示无效输入(10)解析 首先分析程序的规则说明和
33、被测程序的功能,将其输入情况划分为有效等价类和无效等价类,然后按照等价类设计测试用例的方法设计有效的测试用例和无效的测试用例。以下是某“象棋中走马事件”应用程序的走马规则,请按要求回答问题。以下是中国象棋中走马事件中的走马规则:1)如果落点在棋盘外,则不移动棋子;2)如果落点与起点不构成日字形,则不移动棋子;3)如果落点处有己方棋子,则不移动棋子;4)如果在落点方向的邻近交叉点有棋子(绊马腿),则不移动棋子;5)如果不属于 1)4)条,且落点处无棋子,则移动棋子。6)如果不属于 1)4)条,且落点处为对方棋子(非老将),则移动棋子并除去对方棋子;7)如果不属于 1)4)条,且落点处为对方老将,
34、则移动棋子,并提示战胜对方,游戏结束。(分数:12.00)(1).画出该应用程序的因果图。(分数:6.00)_正确答案:()解析:第一步,从中国象棋走马事件的走马规则的描述中,明确原因和结果。 原因: 1落点在棋盘上。2落点与起点构成日字。 3落点处无己方棋子。 4落点方向的邻近交叉点无棋子。 5落点处有棋子。 6落点处为对方棋子(非老将)。 7落点处为对方老将。 结果: 21不移动棋子。 22移动棋子。 23移动棋子,并除去对方棋子。 24移动棋子,并提示战胜对方,结束游戏。 第二步,根据上面分析的原因和结果,结合题目中二者的关系,建立因果图。 其因果图如下图所示,图中,结点 11 是导出结
35、果的进一步原因。 (2).对该软件进行基于因果图的方法设计测试用例。(分数:6.00)_正确答案:()解析:根据上面的因果图,建立对应的判定表。在该应用程序中,原因有 7 个,一个完整的判定表应有 27=128 种情况。由于篇幅的限制,且考虑到5、6、7 原因只与中间结果 11 有关,所以这里将完整的判定表拆分为两个子表,如表 13 和表 14 所示。对于结果 22、23、24,中间结果是原因,因此在表 14 中,将 11 作为原因。 表13 判定表 1序号 1234567891011231451610101010101010101201010101300001111原因400001111中间
36、结果1100000000结果21111111011测试用例YYYYYYYY表14 判定表 2序号 1234567891011231415161101010101010101015010100 1 0 1 600001111原因7000011112200100100100123000101000101结果24000001010101测试用例YYYY由表 13 可知,当结点 11 为 1 时,结果 21 为 0。由于结果 21、22、23、24 受到 O 约束的限制,不能同时为 0,所以在表 14 中的 2 列是不能出现的情况;同样受到 O 约束的还有 8、12、14 和 16 列;由于 E 约束
37、,第 7、8、11 到 16 列也是不可能出现的情况。在表中用灰框表示。最后根据判定表设计测试用例。如表 14 所示,判定表中没有被划去的每一列就是一个测试用例。解析 首先分析走马规则,找出所有的原因以及所有可能的结果,结合题目中找出二者的联系,按照因果图的画法规则,画出因果图。然后按照基于因果图的方法设计测试用例。针对以下 C 语言程序,请按要求回答问题。下面是一个程序段(C 语言),试设计基本路径测试的测试用例,设计出的测试用例要保证每一个基本独立路径至少要执行一次。函数说明:当 i_flag=0;返回 i_count+100当 i_flag=1;返回 i_count*10否则返回 i c
38、ount*20输入参数:int i_count int i_flag输出参数:int i_return程序代码如下:1 int Test(int i_count, int i_flag)2 3 int i_temp=0;4 while(i_count0)5 6 if(0=i_flag)7 8 i_temp=i_count+100;9 break; 10 11 else12 13 if(1=i_flag)14 15 i_temp=i_temp+10; 16 17 else18 19 i_temp=i_temp+20; 20 21 22 i_count-; 23 24 return i_temp;
39、25 (分数:18.00)(1).画出该函数的控制流程图。(分数:9.00)_正确答案:()解析:根据程序的源代码,容易画出对应的控制流图,如下图所示(其中圈中的数字代表的是语句的行号)。(2).采用基本路径测试法设计一组测试用例,保证每个基本独立路径都至少执行一次。(分数:9.00)_正确答案:()解析:第一步,根据上述控制流图计算该程序的环路复杂性。 由图可以看出,判定结点数为 3,边数为10,结点总数为 8,故 V(G)=10-8+2=4 或 V(G)=3+1=4 第二步,根据环路复杂度为 4,可确定 4 条基本独立路径。 Path1:424 Path2:46824 Path3:4613
40、1522424 Path4:4613 一1922424。 第三步,设计测试用例。 根据上面 4 条基本独立路径,可以设计测试用例如下: 测试用例 1: 输入数据:i_count=0,或者是 i_count0 的某个值。 预期输出结果:i_temp=0。 测试用例2: 输入数据:i_count=1,i_flag=0。 预期输出结果:i_temp=101。 测试用例 3: 输入数据:i_count=1,i_flag=1。 预期输出结果:i_temp=10。 测试用例 4: 输入数据:i_count=1,i_flag=2。 预期输出结果:i_temp=20。 但这些测试用例是可以简化的,由于路径 path1 是 path4 的真子集,所以path1 是可以不要的。故针对该程序最少的测试用例数为 3,即上述测试用例 2,测试用例 3,测试用例4。 解析 首先根据程序的源代码,画出控制流图。然后通过控制流图可以计算出该程序的复杂度,找出所有的独立路径,根据基本路径测试法设计测试用例。