1、计算机四级软件测试工程师-111 (1)及答案解析(总分:88.00,做题时间:90 分钟)一、B选择题/B(总题数:25,分数:50.00)1.以下活动中,哪个不属于测试计划的内容?_。 A. 为测试各项活动制定一个实现可行的综合的计划 B. 确定测试过程中每个测试阶段的测试完成标准 C. 识别测试活动中各种风险,并给出风险应对措施 D. 分析测试需求,并制定测试方案(分数:2.00)A.B.C.D.2.单元测试的目的是 _。 A.检查每个软件单元能否正确实现功能 B.检查软件单元的性能能否达到要求 C.发现软件单元中可能存在的错误 D.以上全部(分数:2.00)A.B.C.D.3.下列属于
2、基于大纲的系统测试步骤的是 _。 A.根据软件需求文档开发测试大纲 B.确定每个功能点的执行频率 C.开发测试用例 D.以上全部(分数:2.00)A.B.C.D.4.以下哪一项属于数据兼容性测试关注的范畴?_。 A. 软件在异常退出时是否会破坏正在处理的文件 B. 软件是否可以在不同的 J2EE 应用服务器上运行 C. 软件同类功能的使用风格是否一致 D. 软件是否能打开以前版本保存的文件(分数:2.00)A.B.C.D.5.逻辑路径覆盖法式白盒测试用例的重要设计方法,其中语句覆盖法是较为常用的方法。针对下面的句段,采用语句覆盖法完成测试 的设计。测试用例见下表,对表中的空缺页(TRUE 或者
3、 FALSE),正确的选择是_。语句段:If(AElse x=0; 用例表: 用例 1 用例 2A TRUE FALSEB (1) FALSEC TRUE (2)D (3) FALSE A. (1)TRUE(2)FALSE(3)TRUE B. (1)TRUE(2)FALSE(3)FALSE C. (1)FALSE(2)FALSE(3)TRUE D. (1)TRUE(2)TRUE(3)FALSE(分数:2.00)A.B.C.D.6.面向对象的基本单位是 _。 A.类 B.对象 C.成员变量 D.组件(分数:2.00)A.B.C.D.7.健壮性测试又称容错测试,其一般的测试方法是软件故障插入测试,
4、在软件故障插入测试技术中,不需要关注的内容为_。 A. 故障类型 B. 插入故障的方法 C. 目标系统 D. 测试系统(分数:2.00)A.B.C.D.8.下面不属于协议测试的类型的是 A. 一致性测试 B. 互操作性测试 C. 性能测试 D. 压力测试(分数:2.00)A.B.C.D.9.一个测试团队中,负责项目的管理、测试技术的制定、项目文档的审查、测试用例的设计和审查等的角色应是 _。 A.测试组长 B.内审员 C.QA/测试经理 D.测试设计人员(分数:2.00)A.B.C.D.10.测试管理工具提供从测试设计到测试运行的全过程支持。这个工具的主要用途是 A. 自动抓取屏幕上的系统运行
5、界面 B. 基于需求规格说明书自动生成测试数据、测试用例 C. 测试用例管理、软件缺陷管理、软件测试度量 D. 辅助管理软件产品的各组成部分,使它们保持一致(分数:2.00)A.B.C.D.11.以下程序的路径数为_。If(a8)If(b0)Result=a*b;If(c8)result+=1; A. 3 B. 6 C. 8 D. 12(分数:2.00)A.B.C.D.12.下列关于测试方法的叙述中不正确的是_。 A.从某种角度上讲,白盒测试与黑盒测试都属于动态测试 B.功能测试属于黑盒测试 C.对功能的测试通常是要考虑程序的内部结构的 D.结构测试属于白盒测试(分数:2.00)A.B.C.D
6、.13.以下哪一项不属于 Web 应用软件表示层测试关注的范畴是_。 A. 排版结构的测试 B. 链接结构的测试 C. 客户端兼容性的测试 D. 数据完整性测试(分数:2.00)A.B.C.D.14.代码检查小组的人员_。 A.越多越好 B.越少越好 C.12 人 D.47 人(分数:2.00)A.B.C.D.15.兼容性测试是指 A. 检测软件与其他软件是否能正常进行信息的交流和传递 B. 测试本款软件与其他应用软件是否能在同一操作系统下运行 C. 针对软件对其运行环境的依赖进行测试,以验证软件是否能够在所有期望的环境中进行 D. 以上都不对(分数:2.00)A.B.C.D.16.没有正确修
7、复的缺陷,需要进一步修复的状态应该是 _。 A.New B.Open C.Fixed D.Reopen(分数:2.00)A.B.C.D.17.下列有关测试过程管理的基本原则,哪个是错误的?_。 A. 测试过程管理应该首先建立测试计划 B. 测试需求在测试过程中可以是模糊的、非完整的 C. 在测试任务较多的情况下,应该建立测试任务的优先级来优化处理 D. 整个测试过程应该具有良好的可测性和可跟踪性,强调以数据说话(分数:2.00)A.B.C.D.18.下面 Web 应用软件的测试策略中,不属于表示层的测试内容的是_。 A. 链接结构的测试 B. 浏览器兼容性的测试 C. 排版结构的测试 D. 服
8、务器端程序的测试(分数: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.下列不属于测试计划要达到的目标的一项是_。 A.为测试各项活动制定一个切实可行的、综合的计划,包括每项测试活动的对象、范围、方法、进度和预期结果 B.为项目实施建立一个组织模型,并定义测试项目中每个角色的责任和工作内容 C.为测
9、试执行活动设计测试方案,编制测试用例 D.确定测试需要的时间和资源,以保证其可获得性和有效性(分数:2.00)A.B.C.D.22.下列关于 Web 应用软件的系统安全检测与防护说法不正确的是 A. 对系统安全漏洞的检测同样也属于测试的范畴 B. Web 应用软件的安全性仅与 Wcb 应用欺件本身的开发相关 C. 系统安全检测与防护应当作一个系统工程来完成,仅仅经过入侵检测和漏洞扫描是不够的,其中最重要的应该是建立完善的安全策略 D. 访问安全是指控制外界对主机的访问,从而减少甚至避免非法的访问和使用(分数:2.00)A.B.C.D.23.下列关于软件质量模型的说法中正确的是_。 A. 外部质
10、量是表征软件产品在规定条件下使用时,决定其满足规定的和隐含的要求的能力 B. 容错性,通用性,结构性和通信性不全属于软件的质量特性 C. 内部质量是表征软件产品在规定条件下使用时,满足规定的和隐含的要求的程度 D. 使用质量是软件产品在规定的使用环境中,规定的用户能实现规定目标的要求(分数:2.00)A.B.C.D.24.以下关于面向对象软件测试的说法中,错误的是 A. 测试动态绑定是类树测试的一个重要目标 B. 面向对象软件协作集成测试是指对一个类的多个实例间协作进行的测试 C. 面向对象软件的自底向上集成测试需要为集成测试开发相应代码 D. 面向对象软件的单元测试需要考虑对一个类中单个方法
11、的测试(分数:2.00)A.B.C.D.25.测试的复用包括_。 A. 测试用例的复用 B. 软件缺陷报告的复用 C. 软件过程信息的复用 D. 以上全是(分数:2.00)A.B.C.D.二、B论述题/B(总题数:3,分数:38.00)26.采用等价类划分方法为某保险公司计算保费率的程序设计测试用例。某保险公司的人寿保险的保费计算方式为:投保额保险费率。其中,保险费率按点数不同而有区别,10点及 10 点以上,保险费率为 0.6%;10 点以下,保险费率为 0.1%;而点数又是由投保人的年龄、性别、婚姻状况和抚养人数来决定的,具体规则如下表所示。 年龄 性别 婚姻 抚养人数2039 4059
12、其他 M F 已婚 未婚6 点 4 点 2 点 5 点 3 点 3 点 5 点1 人扣 0.5 点,最多扣 3 点(四舍五入)(分数:10.00)_27.简述如何测试分布式系统。(分数:10.00)_28.论述题 3:针对以下 C 语言程序,请按要求回答问题 下面是一个程序段(C 语言),试设计基本路径测试的测试用例,设计出的测试用例要保证每一个基本独立路径至少要执行一次。 函数说明:当 i flag=0;返回 i count+100 当 i flag=l;返回 i count*10 否则 返回 i count*20 输入参数:int i count int i flag 输出参数:int i
13、 retum 程序代码如下: (分数:18.00)_计算机四级软件测试工程师-111 (1)答案解析(总分:88.00,做题时间:90 分钟)一、B选择题/B(总题数:25,分数:50.00)1.以下活动中,哪个不属于测试计划的内容?_。 A. 为测试各项活动制定一个实现可行的综合的计划 B. 确定测试过程中每个测试阶段的测试完成标准 C. 识别测试活动中各种风险,并给出风险应对措施 D. 分析测试需求,并制定测试方案(分数:2.00)A.B.C.D. 解析:解析 制定测试计划,要达到的目标有:为测试各项活动制定一个现实可行的综合的计划;建立一个组织模型;开发有效的测试模型;确定测试所需要的时
14、间和资源;确定测试过程中每个测试阶段的测试完成标准和要实现的目标;标识出测试活动中各种风险,并给出风险应对措施。2.单元测试的目的是 _。 A.检查每个软件单元能否正确实现功能 B.检查软件单元的性能能否达到要求 C.发现软件单元中可能存在的错误 D.以上全部(分数:2.00)A.B.C.D. 解析:3.下列属于基于大纲的系统测试步骤的是 _。 A.根据软件需求文档开发测试大纲 B.确定每个功能点的执行频率 C.开发测试用例 D.以上全部(分数:2.00)A.B.C.D. 解析:4.以下哪一项属于数据兼容性测试关注的范畴?_。 A. 软件在异常退出时是否会破坏正在处理的文件 B. 软件是否可以
15、在不同的 J2EE 应用服务器上运行 C. 软件同类功能的使用风格是否一致 D. 软件是否能打开以前版本保存的文件(分数:2.00)A. B.C.D.解析:解析 常用的数据兼容性主要包括两类: 不同版本间的数据兼容性。B、C 都属于这一类。 不同软件间的数据兼容性。D 属于这一类。 A 不属于数据兼容性测试关注的范畴。5.逻辑路径覆盖法式白盒测试用例的重要设计方法,其中语句覆盖法是较为常用的方法。针对下面的句段,采用语句覆盖法完成测试 的设计。测试用例见下表,对表中的空缺页(TRUE 或者 FALSE),正确的选择是_。语句段:If(AElse x=0; 用例表: 用例 1 用例 2A TRU
16、E FALSEB (1) FALSEC TRUE (2)D (3) FALSE A. (1)TRUE(2)FALSE(3)TRUE B. (1)TRUE(2)FALSE(3)FALSE C. (1)FALSE(2)FALSE(3)TRUE D. (1)TRUE(2)TRUE(3)FALSE(分数:2.00)A.B.C. D.解析:6.面向对象的基本单位是 _。 A.类 B.对象 C.成员变量 D.组件(分数:2.00)A. B.C.D.解析:7.健壮性测试又称容错测试,其一般的测试方法是软件故障插入测试,在软件故障插入测试技术中,不需要关注的内容为_。 A. 故障类型 B. 插入故障的方法 C
17、. 目标系统 D. 测试系统(分数:2.00)A.B.C.D. 解析:解析 性能测试主要用于实时系统和嵌入式系统,性能测试是指测试软件在集成系统中的运行性能。其目标是度量系统的性能和预先定义的目标有多大差距。8.下面不属于协议测试的类型的是 A. 一致性测试 B. 互操作性测试 C. 性能测试 D. 压力测试(分数:2.00)A.B.C.D. 解析:解析 由于各种通信协议是使用自然语言描述的,不同的人理解问题的角度不同,对协议的认识也会存在差异,因而协议实现者有可能因为理解错误而错误实现了协议,因此要对协议进行测试,以保证开发的系统可以正确工作,通常包括以下类型的协议测试:协议一致性测试、协议
18、性能测试、协议互操作性测试和协议健壮性测试四种。9.一个测试团队中,负责项目的管理、测试技术的制定、项目文档的审查、测试用例的设计和审查等的角色应是 _。 A.测试组长 B.内审员 C.QA/测试经理 D.测试设计人员(分数:2.00)A. B.C.D.解析:10.测试管理工具提供从测试设计到测试运行的全过程支持。这个工具的主要用途是 A. 自动抓取屏幕上的系统运行界面 B. 基于需求规格说明书自动生成测试数据、测试用例 C. 测试用例管理、软件缺陷管理、软件测试度量 D. 辅助管理软件产品的各组成部分,使它们保持一致(分数:2.00)A.B.C. D.解析:解析 测试管理工具主要用于进行测试
19、用例管理、软件缺陷管理、软件测试度量。11.以下程序的路径数为_。If(a8)If(b0)Result=a*b;If(c8)result+=1; A. 3 B. 6 C. 8 D. 12(分数:2.00)A.B. C.D.解析:解析 上面程序可以看做一个嵌套的判定与一个普通判定串接,嵌套型的路径数为 n+1,所以整个代码可以看做一个 3 路径判定和一个 2 路径判定的串接,所以总路径数为 3*2=6 条。12.下列关于测试方法的叙述中不正确的是_。 A.从某种角度上讲,白盒测试与黑盒测试都属于动态测试 B.功能测试属于黑盒测试 C.对功能的测试通常是要考虑程序的内部结构的 D.结构测试属于白盒
20、测试(分数:2.00)A.B.C. D.解析:解析 白盒测试是程序员十分了解程序的前提下,对程序的逻辑结构进行的测试。而黑盒测试则将程序视为一个黑盒子,仅仅是测试人员提供数人数据,观察输出数据,并不了解程序是如何运行的,结构测试属于白盒测试,关注的是如何选择合适的程序或子程序路径来执行有效的检查。功能测试则属于黑盒测试,对功能的测试通常通过提供输入数据,检查实际输出的结果,很少考虑程序的内部结构。13.以下哪一项不属于 Web 应用软件表示层测试关注的范畴是_。 A. 排版结构的测试 B. 链接结构的测试 C. 客户端兼容性的测试 D. 数据完整性测试(分数:2.00)A.B.C.D. 解析:
21、解析 Web 应用软件表示层的测试主要集中在客户端,测试的内容包括: (1)排版结构的测试; (2)链接结构的测试; (3)客户端程序的测试; (4)浏览器兼容性测试。14.代码检查小组的人员_。 A.越多越好 B.越少越好 C.12 人 D.47 人(分数:2.00)A.B.C.D. 解析:解析 一般来说,代码检查小组的人员 47 人为最好。人太少则工作量大,质量难以把握;人太多则交流起来有困难,工作效率不高。15.兼容性测试是指 A. 检测软件与其他软件是否能正常进行信息的交流和传递 B. 测试本款软件与其他应用软件是否能在同一操作系统下运行 C. 针对软件对其运行环境的依赖进行测试,以验
22、证软件是否能够在所有期望的环境中进行 D. 以上都不对(分数:2.00)A.B.C. D.解析:解析 兼容性测试是指针对软件对其运行环境的依赖进行测试,以验证软件是否能够在所有期望的环境中运行。通常兼容性测试主要需要考虑硬件、软件和数据三个方面。16.没有正确修复的缺陷,需要进一步修复的状态应该是 _。 A.New B.Open C.Fixed D.Reopen(分数:2.00)A.B.C.D. 解析:17.下列有关测试过程管理的基本原则,哪个是错误的?_。 A. 测试过程管理应该首先建立测试计划 B. 测试需求在测试过程中可以是模糊的、非完整的 C. 在测试任务较多的情况下,应该建立测试任务
23、的优先级来优化处理 D. 整个测试过程应该具有良好的可测性和可跟踪性,强调以数据说话(分数:2.00)A.B. C.D.解析:解析 软件测试过程管理的原则有八个:有关测试需求;测试计划先行;建立任务优先级;建立客观的评估标准;尽早测试;全面测试;全过程测试;独立的、迭代的测试。18.下面 Web 应用软件的测试策略中,不属于表示层的测试内容的是_。 A. 链接结构的测试 B. 浏览器兼容性的测试 C. 排版结构的测试 D. 服务器端程序的测试(分数:2.00)A.B.C.D. 解析:解析 通常 Web 应用软件的测试分为 3 层:表示层、业务层和数据层。其中表示层的测试主要集中在客户端,测试内
24、容主要包括:排版结构的测试;链接结构的测试;客户端程序的测试;浏览器兼容性测试。19.不需要运行程序,通过收集有关代码的结构信息来对程序进行的测试是_。 A. 性能测试 B. 黑盒测试 C. 白盒测试 D. 静态分析(分数:2.00)A.B.C.D. 解析:解析 软件测试的分类方法比较多,针对测试时是否要运行程序分为静态测试和动态测试,其中静态测试也称静态分析,是不必运行程序目的仅仅是收集程序代码的结构信息而不用查错,相反动态测试则是要执行程序,查出程序的错误非单纯收集代码结构信息。针对测试人员是否要清楚程序的内部逻辑,将测试分为白盒测试和黑盒测试,同时这两种测试方法都要对程序进行查错,从这一
25、角度,白盒测试和黑盒测试都应属于动态测试。由此选项 D 静态分析最恰当。20.用于代替被测模块调用的子模块的模块被称作_。 A. 桩模块 B. 数据模块 C. 接口模块 D. 驱动模块(分数:2.00)A. B.C.D.解析:解析 若被测模块调用了其他模块,程序员必须编写一个桩模块,用来代替被调用的模块,桩模块可以进行少量的数据操作,不需要实现子模块的所有功能,但要根据需要来实现或代替子模块的一部分功能。21.下列不属于测试计划要达到的目标的一项是_。 A.为测试各项活动制定一个切实可行的、综合的计划,包括每项测试活动的对象、范围、方法、进度和预期结果 B.为项目实施建立一个组织模型,并定义测
26、试项目中每个角色的责任和工作内容 C.为测试执行活动设计测试方案,编制测试用例 D.确定测试需要的时间和资源,以保证其可获得性和有效性(分数:2.00)A.B.C. D.解析:解析 从考试角度分析,用排除法,编制测试用例很明显是属于测试设计与实现活动,因此 C 肯定不属于计划的范畴。22.下列关于 Web 应用软件的系统安全检测与防护说法不正确的是 A. 对系统安全漏洞的检测同样也属于测试的范畴 B. Web 应用软件的安全性仅与 Wcb 应用欺件本身的开发相关 C. 系统安全检测与防护应当作一个系统工程来完成,仅仅经过入侵检测和漏洞扫描是不够的,其中最重要的应该是建立完善的安全策略 D. 访
27、问安全是指控制外界对主机的访问,从而减少甚至避免非法的访问和使用(分数:2.00)A.B. C.D.解析:解析 系统的安全漏洞其实也算是系统的缺陷,所以安全漏洞的检测也属于测试的范畴,但普通的测试一般难以揭示安全漏洞,因为能够攻击安全漏洞的输入实际上只是整个输入空间很小的一部分,对于测试来说不能代表典型的输入,然而由于 Web 应用软件通常要对公众开发,其安全性对整个系统来说是至关重要的。实际上,Web 应用软件的安全性不仅仅与 Web 应用软件本身的开发相关。入侵检测和漏洞扫描是系统安全检测与防护的两个重要方面,但对于实际的安全检测与防护,仅注意这两个方面是不够的,而应该把系统安全检测与防护
28、当作一个系统工程来完成,而这其中最重要的是建立完善的安全策略,通常安全策略可分为四个层次:物理安全策略、访问安全策略、信息加密策略和安全管理策略。其中访问安全就是指控制外界对主机的访问,从而减少甚至避免非法的访问和使用,因此访问安全策略又称为访问控制策略。23.下列关于软件质量模型的说法中正确的是_。 A. 外部质量是表征软件产品在规定条件下使用时,决定其满足规定的和隐含的要求的能力 B. 容错性,通用性,结构性和通信性不全属于软件的质量特性 C. 内部质量是表征软件产品在规定条件下使用时,满足规定的和隐含的要求的程度 D. 使用质量是软件产品在规定的使用环境中,规定的用户能实现规定目标的要求
29、(分数:2.00)A.B.C.D. 解析:解析 外部质量是针对要求的满足程度而言的,是表征软件产品在规定条件下使用时,满足规定的和隐含的要求的程度,而内部质量则主要是根据软件产品的情况给出的,内部质量是表征软件产品在规定条件下使用时,决定其满足规定的和隐含的要求的能力的产品属性的全体。故选项 A 和 C 叙述刚好颠倒,选项 B 中的性质都是属于软件的质量特性的,而选项 D 中关于使用质量的叙述是完全正确的。24.以下关于面向对象软件测试的说法中,错误的是 A. 测试动态绑定是类树测试的一个重要目标 B. 面向对象软件协作集成测试是指对一个类的多个实例间协作进行的测试 C. 面向对象软件的自底向
30、上集成测试需要为集成测试开发相应代码 D. 面向对象软件的单元测试需要考虑对一个类中单个方法的测试(分数:2.00)A.B. C.D.解析:25.测试的复用包括_。 A. 测试用例的复用 B. 软件缺陷报告的复用 C. 软件过程信息的复用 D. 以上全是(分数:2.00)A.B.C.D. 解析:解析 测试的复用包括测试用例、软件缺陷报告和软件过程信息的复用。测试用例和软件缺陷报告是项目宝贵的财富,在一个新的项目或者新的测试阶段中对其进行复用是其价值的体现。但是复用之前一定要整理。测试的复用主要体现在测试用例的复用上。组织和编写良好的测试用例具有很强的复用性;可以用在回归测试或者用在下一个版本的
31、测试中。二、B论述题/B(总题数:3,分数:38.00)26.采用等价类划分方法为某保险公司计算保费率的程序设计测试用例。某保险公司的人寿保险的保费计算方式为:投保额保险费率。其中,保险费率按点数不同而有区别,10点及 10 点以上,保险费率为 0.6%;10 点以下,保险费率为 0.1%;而点数又是由投保人的年龄、性别、婚姻状况和抚养人数来决定的,具体规则如下表所示。 年龄 性别 婚姻抚养人数20394059其他 M F已婚未婚6点4点2点 5 点 3 点 3 点 5 点1 人扣0.5点,最多扣3 点(四舍五入)(分数:10.00)_正确答案:(分析程序规格说明中给出和隐含的对输入条件的要求
32、,列出等价类表如下:(1)年龄:一位或两位非零整数,有效范围为 199。(2)性别:一位英文字符,只能取“M”或“F”。(3)婚姻:字符,只能取“已婚”或“未婚”。(4)抚养人数:空白或一位非零整数,取值的范围为 19。 输入条件有效等价类编号无效等价类编号2039 岁14059 岁2小于 112年龄 16 岁6099 岁3 大于9913性 单 4 非 14英文字符个英文字符 非单个英文字符15M 5别F 6除M和F之外的其他单个字符16已婚 7婚姻 未婚 8除“已婚”和“未婚”之外的其他字符17抚养人数空白 9除空白和18数字之外的其他字符16 人 10小于 11969 人 11大于 920
33、根据上表中的等价类,设计测试用例如下表所示 输入数据测试用例编号年龄性别婚姻抚养人数预期输出保险费率1 27F未婚 空白 0.6%2 50M已婚 20.6%3 70F已婚 70.1%4 0M未婚 空白无法推算5100F已婚 3无法推算6 99男 已婚 4无法推算7 1Chi未婚空白无法推ld算8 45N已婚 5无法推算9 38F离婚 1无法推算10 62M已婚 没有无法推算11 18F未婚 0无法推算12 40M未婚 10无法推算)解析:27.简述如何测试分布式系统。(分数:10.00)_正确答案:(对于没有专门的服务器层、由许多并发运行且没有专门控制轨迹的构件所组成的分布式系统,可采用分布式
34、集成测试策略,用于测试松耦合的同级构件的交互关系。常用的集成顺序有以下几种: (1)风险驱动。 (2)反风险驱动。 (3)依赖性驱动。 (4)优先级驱动。 分布式集成的优缺点:类似于 C/S 集成。 分布式集成的适用范围:分布式软件系统。)解析:28.论述题 3:针对以下 C 语言程序,请按要求回答问题 下面是一个程序段(C 语言),试设计基本路径测试的测试用例,设计出的测试用例要保证每一个基本独立路径至少要执行一次。 函数说明:当 i flag=0;返回 i count+100 当 i flag=l;返回 i count*10 否则 返回 i count*20 输入参数:int i coun
35、t int i flag 输出参数:int i retum 程序代码如下: (分数:18.00)_正确答案:(问题 1: 解答: 根据程序的源代码,容易画出对应的控制流图,如图 17-4 所示。 (其中圈中的数字代表的是语句的行号) * 问题 2: 解答: 第一步,根据上述控制流图计算该程序的环路复杂性。 由图可以看出,判定节点数为 3,边数为 10,节点总数为 8,故 V(G)=10-8+2=4 或 V(G)=3+1=4 第二步,根据环路复杂度为 4,可确定 4 条基本独立路径。 Path1:424 Path2:46824 Path3:46131522424 Path4:4613192242
36、4 第三步,设计测试用例 根据上面4 条基本独立路径,可以设计测试用例如下: 测试用例 1 输入数据:i_flag=0,或者是 i_flag0 的某个值。 预期输出结果: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。)解析:解析 首先根据程序的源代码,画出控制流图。然后通过控制流图可以计算出该程序的复杂度,找出所有的独立路径,根据基本路径测试法设计测试用例。