软件工程—软件测试概述_第1页
软件工程—软件测试概述_第2页
软件工程—软件测试概述_第3页
软件工程—软件测试概述_第4页
软件工程—软件测试概述_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件工程软件工程软件测试概述软件测试概述第七章第七章软件测试软件测试 概论概论在本章中,我们将研究:在本章中,我们将研究:1、错误类型和如何分类错误、错误类型和如何分类错误 2、 测试的目的测试的目的3、单元测试、单元测试 4、 集成测试策略集成测试策略5、测试计划、测试计划 6、 何时停止测试何时停止测试n有许多种测试方法,这里将为你介绍几种测试方法,它有许多种测试方法,这里将为你介绍几种测试方法,它们能够使你为用户发布一个高质量的系统。们能够使你为用户发布一个高质量的系统。n在开发过程中怎样在需求和设计的复查中帮助我们探索在开发过程中怎样在需求和设计的复查中帮助我们探索错误。错误。n但是测

2、试是以发现错误为核心但是测试是以发现错误为核心,有许多种方法使我们在有许多种方法使我们在测试上下的功夫更有效率更有效果测试上下的功夫更有效率更有效果。概论概论nJones广泛地研究了程序员的生产力,包括错误的查找广泛地研究了程序员的生产力,包括错误的查找和修正的本性。查阅了历史上一千万行的代码,他发现和修正的本性。查阅了历史上一千万行的代码,他发现代码检查纠除了代码检查纠除了85%多的错误。多的错误。nJones调查了建议典型的准备时间和会议时间。调查了建议典型的准备时间和会议时间。典型的准备时间和会议时间典型的准备时间和会议时间开发产品开发产品准备时间准备时间 会议时间会议时间需求文档需求文

3、档每小时每小时25页页 每小时每小时12页页功能描述功能描述每小时每小时45页页 每小时每小时15页页逻辑描述逻辑描述每小时每小时50页页 每小时每小时20页页源代码源代码每小时每小时150行代码行代码 每小时每小时75行代码行代码用户手册用户手册每小时每小时35页页 每小时每小时20页页概论概论n韦勒韦勒( 1993) 在公牛信息系统在公牛信息系统3 年检查数据。年检查数据。 来自几乎来自几乎7,000 个检查会议的尺度包括大约个检查会议的尺度包括大约11557 个错误信息个错误信息和和14677 页的设计文献。他发现小组的有效性和效率页的设计文献。他发现小组的有效性和效率取决于他们对产品的

4、熟悉:取决于他们对产品的熟悉: 越熟悉,越好。越熟悉,越好。n另一方面,韦勒发现在一项另一方面,韦勒发现在一项12000 行行C语言的工程上语言的工程上,需求和设计没被复查;,需求和设计没被复查; 检查仅从代码开始。检查仅从代码开始。 n比较代码检查数据和测试数据,韦勒发现代码检查主比较代码检查数据和测试数据,韦勒发现代码检查主要鉴定编码或者低水平设计错误。要鉴定编码或者低水平设计错误。n测试测试 还要发现需求和结构的错误。因此,代码检查的还要发现需求和结构的错误。因此,代码检查的结果没代表真实的系统质量。结果没代表真实的系统质量。测试中发现的错误(测试中发现的错误(Jones )测试活动测试

5、活动每千行代码发现的错误每千行代码发现的错误 需求复查需求复查2.5 设计复查设计复查5.0代码检查代码检查10.0 集成测试集成测试3.0 验收测试验收测试2.0概论概论nGrady在惠普解释到,为代码检查做计划一般在惠普解释到,为代码检查做计划一般需要需要2个小时,接着个小时,接着30分钟的小组会议。然后个分钟的小组会议。然后个人准备人准备2个小时发现错误和个小时发现错误和90分钟汇报错误。小分钟汇报错误。小组花费组花费30分钟集体讨论错误的发现并推荐采取分钟集体讨论错误的发现并推荐采取的措施。当错误修正后,代码检查会议的主持的措施。当错误修正后,代码检查会议的主持人再花费半个小时书写和发

6、布摘要文档。人再花费半个小时书写和发布摘要文档。nJones总结了他的工程信息的数据,画了一个不总结了他的工程信息的数据,画了一个不同的图,比较复查,检查和其他发现方法的不同的图,比较复查,检查和其他发现方法的不同。同。 代码检查善于发现代码错误,但是原型系统更代码检查善于发现代码错误,但是原型系统更容易鉴别需求的错误。容易鉴别需求的错误。nFagan在在IBM发布检查代码的方针后,许多其发布检查代码的方针后,许多其它的组织机构,包括惠普,它的组织机构,包括惠普,ITT和和AT&T都采纳都采纳了代码检测作为推荐或标准实施。了代码检测作为推荐或标准实施。概论概论n假想你已经编完你的组件,自己检查

7、完毕,小假想你已经编完你的组件,自己检查完毕,小组复查完毕。下一步测试是,以更加结构化的组复查完毕。下一步测试是,以更加结构化的方式详细审查确保它的正确性。方式详细审查确保它的正确性。n一个程序是正确的,当它正确实现设计中说明一个程序是正确的,当它正确实现设计中说明的功能和数据和它与其它组件正确接口。的功能和数据和它与其它组件正确接口。n一种研究程序的正确性方式是把代码看成语句一种研究程序的正确性方式是把代码看成语句的逻辑流。如果我们能够用正式的逻辑系统复的逻辑流。如果我们能够用正式的逻辑系统复写程序,就能测试语句的正确性。写程序,就能测试语句的正确性。n公式证明技巧。按照一系列步骤转换代码为

8、逻公式证明技巧。按照一系列步骤转换代码为逻辑副本,表达遵循数学逻辑的规则。辑副本,表达遵循数学逻辑的规则。7.1 7.1 基本概念基本概念软件产品最大的开发成本是软件产品最大的开发成本是检测软件错误、修正软件检测软件错误、修正软件错误的成本。错误的成本。在整个软件开发中:在整个软件开发中:测试工作量测试工作量50%50%软件质量问题软件质量问题以软件测试为中心的软件质量保障技术以软件测试为中心的软件质量保障技术软件软件 静态测试技术静态测试技术质量质量动态测试技术动态测试技术控制控制配置管理技术配置管理技术技术技术修改控制与管理技术修改控制与管理技术 软件测试是保证软件质量软件测试是保证软件质

9、量, ,提高提高软件可靠性的关键软件可靠性的关键软件测试的目标软件测试的目标 (1)(1)预防错误预防错误: : 几乎不可实现几乎不可实现(2)(2)发现错误发现错误: : 软件测试目的软件测试目的找错7.1.1 测试的目的与地位测试的目的与地位nG.J.Myers在在中认为中认为:n “程序测试是为了发现错误而执行程序的过程程序测试是为了发现错误而执行程序的过程.” E.W.Dijkstra E.W.Dijkstra 指出指出: : “程序测试能证明错误的存在程序测试能证明错误的存在, ,但不能证明错误不存在但不能证明错误不存在。” 测试的目的是发现程序中的错误测试的目的是发现程序中的错误,

10、 ,是为了证明程序有是为了证明程序有错错, ,而不是证明程序无错。而不是证明程序无错。成功的测试在于发现了迄今尚未发现的缺陷。所以成功的测试在于发现了迄今尚未发现的缺陷。所以测试人员的职责是设计这样的测试用例,它能有效测试人员的职责是设计这样的测试用例,它能有效地揭示潜伏在软件里的缺陷。地揭示潜伏在软件里的缺陷。 千万不要将千万不要将“测试测试”与与“演示演示”混为一谈。混为一谈。 把证明程序无错当作测试目的不仅是把证明程序无错当作测试目的不仅是不正确的不正确的, , 完全做不到的,而且对做好测完全做不到的,而且对做好测试没有任何益处,甚至是十分有害的试没有任何益处,甚至是十分有害的. . 软

11、件测试要设法使软件发生故障软件测试要设法使软件发生故障, ,暴暴露软件错误露软件错误 测试的测试的“成功成功”与与“失败失败” 能够发现错误的测试是成功的测试,能够发现错误的测试是成功的测试,否则是失败的测试。否则是失败的测试。 “测试的目的是说明程序正确地执行它测试的目的是说明程序正确地执行它应有的功能应有的功能”也是错误的也是错误的. .例:程序例:程序TriangleTriangle,输入三个整数,表示,输入三个整数,表示一个三角形的三个边长,该程序产生一个一个三角形的三个边长,该程序产生一个结果,指出该三角形是等边三角形、等腰结果,指出该三角形是等边三角形、等腰三角形还是不等边三角形。

12、三角形还是不等边三角形。 为说明其能正确执行它的功能,可使为说明其能正确执行它的功能,可使用用“测试用例测试用例” (3,4,5),(5,5,6),(6,6,6), (3,4,5),(5,5,6),(6,6,6), 程序都能给出正确结果,是否就可认为程程序都能给出正确结果,是否就可认为程序是正确的?序是正确的? 测试测试 (test) (test) 调试调试 (debug) (debug)以已知条件开始以已知条件开始, ,使用预先定义的程序使用预先定义的程序, ,有预知的结果有预知的结果以不可知内部条件以不可知内部条件开始开始, ,结果一般很难结果一般很难预见预见有计划有计划被动的被动的由独立

13、的测试组,在由独立的测试组,在不了解软件设计的条不了解软件设计的条件下完成件下完成由程序作者进行由程序作者进行发现错误发现错误找出错误位置,排除找出错误位置,排除测试与调试测试与调试( (排错排错) ) 程序中的问题根源程序中的问题根源可能可能在开发前期的各阶段,解在开发前期的各阶段,解决、纠正错误也必须追溯决、纠正错误也必须追溯到前期工作。到前期工作。测测试试与与开开发发前前期期工工作作的的关关系系决定软件与系统的配合关系决定软件与系统的配合关系需求分析需求分析概要设计概要设计详细设计详细设计 编编 码码单元测试单元测试集成测试集成测试确认测试确认测试系统测试系统测试测试阶段工作步骤测试阶段

14、工作步骤F单元测试单元测试: : 检验每个模块能否单独检验每个模块能否单独 工作工作. .F集成测试集成测试: : 检验概要设计中模块接检验概要设计中模块接 口设计问题口设计问题F系统测试系统测试: : 结合系统硬软件综合检验结合系统硬软件综合检验F确认测试确认测试: : 以需求规格说明书为检以需求规格说明书为检 验尺度验尺度F测试可视为分析、设计、编码三个阶段测试可视为分析、设计、编码三个阶段的最终复审的最终复审, ,以保证软件质量以保证软件质量. .开发前期出现错误的扩开发前期出现错误的扩展展计划计划需求需求分析分析设设计计编编码码测测试试A A AB B软件生存期各阶段间需保持的正确性软

15、件生存期各阶段间需保持的正确性用户要求用户要求用户用户: :我要什么我要什么? ?运行结果运行结果计算机计算机: :程序运行得程序运行得到的结果到的结果源程序源程序程序员程序员: :我要让计算我要让计算机什么做机什么做? ?设计说明书设计说明书设计员设计员: :我要让软件我要让软件做什么做什么? ?需求说明书需求说明书分析员分析员: :我可以提我可以提供什么供什么? ?12345理解正确性理解正确性表达正确性表达正确性理解正确性理解正确性设计正确性设计正确性表达正确性表达正确性理解正确性理解正确性编码正确性编码正确性运行正确性运行正确性输入正确性输入正确性相符吗相符吗? ? 软件测试的对象软件

16、测试的对象 软件测试不等于程序测试软件测试不等于程序测试 软件测试应贯穿于软件定义与开发的整软件测试应贯穿于软件定义与开发的整个期间;个期间; 据美国一家公司统计,查出的软件错误据美国一家公司统计,查出的软件错误中,属于需求分析和软件设计的错误中,属于需求分析和软件设计的错误约占约占 64% 64%,属于程序编写的错误仅占,属于程序编写的错误仅占 36%36%。程序编写的许多错误是。程序编写的许多错误是“先天的先天的”。 7.1.2 7.1.2 测试的基本原则测试的基本原则 “测试用例测试用例”要求要求 测试用的一组输入数据、环境平台和运行条件。测试用的一组输入数据、环境平台和运行条件。 测试

17、的基本原则测试的基本原则(1)(1)开发和测试队伍分别建立开发和测试队伍分别建立(2)(2)测试用例应由输入数据和预期的输出结果两部分组成测试用例应由输入数据和预期的输出结果两部分组成(3)(3)兼顾合理的输入和不合理的输入数据兼顾合理的输入和不合理的输入数据(4)(4)应检查程序是否作了不该做的事应检查程序是否作了不该做的事(5)(5)程序修改后要回归测试程序修改后要回归测试(6)(6)应长期保留测试用例,直至系统废弃。应长期保留测试用例,直至系统废弃。程序测试举例程序测试举例例:程序例:程序 Triangle Triangle, 输入三个整输入三个整 数,表示一个三角形的三个边数,表示一个

18、三角形的三个边 长,该程序产生一个结果,指长,该程序产生一个结果,指 出该三角形是等边三角形、等出该三角形是等边三角形、等 腰三角形还是不等边三角形。腰三角形还是不等边三角形。判断三角型的测试用例设计判断三角型的测试用例设计: : 输入数据输入数据 预期结果预期结果(1) 6;6;6 (1) 6;6;6 等边等边(2) 8;8;4 (2) 8;8;4 等腰等腰(3) 4;5;6 (3) 4;5;6 一般一般 还应输入非法数据:还应输入非法数据: 0; 7; 90; 7; 9 -7;3; 5 -7;3; 5 a; 2; 7 a; 2; 7 等等软件错误分类软件错误分类F 功能错功能错( (需求分

19、析错误需求分析错误) )F 软件结构错软件结构错F 数据错数据错F 编码错编码错F 软件集成错软件集成错F 测试定义与测试执行错误测试定义与测试执行错误 7.1.37.1.3 软件测试信息流软件测试信息流测试过程需要三类输入:测试过程需要三类输入:软件配置软件配置: :需求规格说明书需求规格说明书 软件设计说明书软件设计说明书 被测源程序被测源程序测试配置测试配置: :测试计划测试计划 测试用例测试用例( (测试数据测试数据) ) 测试驱动程序测试驱动程序测试工具:如测试工具:如loadrunnerloadrunner7.1.37.1.3 软件测试信息流软件测试信息流软件软件配置配置测试测试测

20、试测试配置配置测试测试工具工具结果结果分析分析排错排错可靠性可靠性 分析分析测试测试结果结果错误错误预期预期结果结果出错率出错率 改正改正的软件的软件预测预测的可的可靠性靠性7.1.4 7.1.4 测试的方法与技术测试的方法与技术软件测试的软件测试的策略和方法策略和方法静态测静态测试方法试方法动态测动态测试方法试方法人工测试方法人工测试方法计算机辅助静计算机辅助静态分析方法态分析方法白盒测试方法白盒测试方法黑盒测试方法黑盒测试方法穷举测试方法穷举测试方法静态测试:静态测试:基本特征是在对软件进行基本特征是在对软件进行 分析、检查和测试,不实分析、检查和测试,不实 际运行被测试的软件。际运行被测

21、试的软件。 静态测试约可找出静态测试约可找出303070%70%的逻辑设的逻辑设计错误计错误. . 对需求规格说明书、软件设计说明对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、书、源程序做结构分析、流程图分析、符号执行来找错符号执行来找错. . 动态测试:动态测试: 通过运行软件来检验软件的动通过运行软件来检验软件的动态行为和运行结果的正确性态行为和运行结果的正确性动态测试的两个基本要素:动态测试的两个基本要素:u 被测试程序被测试程序u 测试数据(测试用例)测试数据(测试用例)动态测试方法动态测试方法(1)(1)选取定义域有效值选取定义域有效值, ,或定义或定义域外无效值域

22、外无效值. .(2)(2)对已选取值决定对已选取值决定预期的结果预期的结果(3)(3)用选取值执行程序用选取值执行程序(4)(4)执行结果执行结果 与与(2)(2)结果相比结果相比, , 不吻合程序有错不吻合程序有错. .n每个开发人员应当测试自己的程序(份每个开发人员应当测试自己的程序(份内之事),但是不能作为该程序已经通内之事),但是不能作为该程序已经通过测试的依据(所以项目需要独立测试过测试的依据(所以项目需要独立测试人员)。人员)。n测试应当循序渐进,不要企图一次测试应当循序渐进,不要企图一次性干完,注意性干完,注意“欲速则不达欲速则不达”。 测试的分类与比较测试的分类与比较n测试方式

23、测试方式白盒测试:关心软件内部设计和程序白盒测试:关心软件内部设计和程序实现,主要测试依据是设计文档实现,主要测试依据是设计文档黑盒测试:不关心软件内部,只关心黑盒测试:不关心软件内部,只关心输入输出,主要测试依据是需求文档输入输出,主要测试依据是需求文档n测试阶段测试阶段 单元测试、集成测试、单元测试、集成测试、系统测试、系统测试、验收测试。是验收测试。是“从小到大从小到大”、“由内至外由内至外”、“循序渐进循序渐进”的的测试过程,体现了测试过程,体现了“分而治之分而治之”的思想。的思想。 单元测试的粒度最小,一般由开发小组采用白盒单元测试的粒度最小,一般由开发小组采用白盒方式来测试,主要测

24、试单元是否符合方式来测试,主要测试单元是否符合“设计设计”。 集成测试界于单元测试和系统测试之间,起到集成测试界于单元测试和系统测试之间,起到“桥梁作用桥梁作用”,一般由开发小组采用白盒加黑盒的,一般由开发小组采用白盒加黑盒的方式来测试,既要验证方式来测试,既要验证“设计设计”又要验证又要验证“需求需求”。 系统测试的粒度最大,一般由独立测试小组采用系统测试的粒度最大,一般由独立测试小组采用黑盒方式来测试,主要测试系统是否符合黑盒方式来测试,主要测试系统是否符合“需求需求规格说明书规格说明书”。 验收测试与系统测试非常相似,主要区别是测试验收测试与系统测试非常相似,主要区别是测试人员不同,验收

25、测试由用户执行人员不同,验收测试由用户执行。 7.2 7.2 两种类型的测试两种类型的测试“彻底地测试彻底地测试”难以成为现实,要考虑时间、难以成为现实,要考虑时间、费用等限制,不允许无休止地测试。费用等限制,不允许无休止地测试。7.2.1 7.2.1 黑盒测试黑盒测试 又称又称: :功能测试功能测试 数据驱动测试数据驱动测试 基于规格说明书的测试基于规格说明书的测试7.2.2 7.2.2 白盒测试白盒测试 又称又称: :结构测试结构测试 玻璃盒测试玻璃盒测试 基于覆盖的测试基于覆盖的测试 根据被测程序的逻辑结构设计根据被测程序的逻辑结构设计测试用例测试用例 力求提高测试覆盖率力求提高测试覆盖

26、率黑盒测试与白盒测试比较黑盒测试与白盒测试比较 黑盒测试是从用户观点,按黑盒测试是从用户观点,按规格说明书要求的输入数据与输规格说明书要求的输入数据与输出数据的对应关系设计测试用例出数据的对应关系设计测试用例, ,是根据程序外部特征进行测试。是根据程序外部特征进行测试。 白盒测试是根据程序内部逻辑白盒测试是根据程序内部逻辑结构进行测试。结构进行测试。7.2.3 7.2.3 穷举测试穷举测试例例: :输入输入 三条边长三条边长 黑盒测试黑盒测试可采用的测试用例数可采用的测试用例数( (设字长设字长1616位位) )执行时间执行时间: : 设测试一次需设测试一次需1ms1ms 共需一千年。共需一千

27、年。=2 X2 X2 3X10=2 X2 X2 3X1016161616161614147.2.3 7.2.3 穷举测试穷举测试 白盒测试白盒测试例例: :含含4 4个分支个分支, ,循环次数循环次数20,20,从从A A到到B B的可能的可能路径路径执行时间执行时间: : 设测试一次需设测试一次需3ms3ms 穷举测试需穷举测试需1 1千年千年. .=5+5 +.+5 +5 =5+5 +.+5 +5 101020201 12 219191414A AB Bn不论黑盒还是白盒测试都不能不论黑盒还是白盒测试都不能进行穷尽测试进行穷尽测试, , 所以软件测试不所以软件测试不可能发现程序中存在的所有

28、错误可能发现程序中存在的所有错误n因此需精心设计测试方案因此需精心设计测试方案, , 力争力争尽可能少的次数尽可能少的次数, ,测出尽可能多测出尽可能多的错误的错误. .黑盒测试与白盒测试能发现的错误黑盒测试与白盒测试能发现的错误C CB BA AD D- -只能用黑盒测试发现的错误只能用黑盒测试发现的错误A- -只能用白盒测试发现的错误只能用白盒测试发现的错误- -两种方法都能发现的错误两种方法都能发现的错误- -两种方法都不能发现的错误两种方法都不能发现的错误BCD有了有了“黑盒黑盒”测试为什么还要测试为什么还要“白盒白盒”测试测试n黑盒测试只能观察软件的外部表现,即使软件黑盒测试只能观察

29、软件的外部表现,即使软件的输入输出都是正确的,却并不能说明软件的输入输出都是正确的,却并不能说明软件n就是正确的。因为程序有可能用错误的运算方就是正确的。因为程序有可能用错误的运算方式得出正确的结果,例如式得出正确的结果,例如“负负得正,错错得负负得正,错错得对对”,只有白盒测试才能发现真正的原因。,只有白盒测试才能发现真正的原因。n白盒测试能发现程序里的隐患,象内存泄漏、白盒测试能发现程序里的隐患,象内存泄漏、误差累计问题。在这方面,黑盒测试存在严重误差累计问题。在这方面,黑盒测试存在严重的不足。的不足。7.37.3白盒测试的测试用例设计白盒测试的测试用例设计7.3.1 7.3.1 逻辑覆盖

30、法逻辑覆盖法例例: :PROCEDURE SAMPAL (A,B:REAL; VAR X:REAL); BEGIN IF (A1) AND (B=0) THEN X:=X/A IF (A=2) OR (X1) THEN X:=X+1 END; 逻辑覆盖准则逻辑覆盖准则: :(1)(1)语句覆盖语句覆盖(2)(2)判定覆盖判定覆盖(3)(3)条件覆盖条件覆盖(4)(4)判定判定/ /条件覆盖条件覆盖(5)(5)条件组合覆盖条件组合覆盖(6)(6)路径覆盖路径覆盖(7)(7)点覆盖点覆盖(8)(8)边覆盖边覆盖1 1语句覆盖语句覆盖开始开始(A1) AND (B=0)(A=2) OR (X1)返回

31、返回X=X/AX=X+1FFTTabdce使程序中每个语使程序中每个语句至少执行一次句至少执行一次测试用例测试用例: : A=2A=2,B=0B=0,X=4X=4只需设计一个测试用例只需设计一个测试用例: :输入数据:输入数据:A=2,B=0,X=4即达到了语句覆盖即达到了语句覆盖; ;但如第一个判定中,但如第一个判定中,ANDAND错写成错写成OROR,则执行结果不变,即不能查出,则执行结果不变,即不能查出这个问题,故这个问题,故语句覆盖是最弱的逻辑覆盖语句覆盖是最弱的逻辑覆盖2 2判定覆盖判定覆盖开始开始(A1) AND (B=0)(A=2) OR (X1)返回返回X=X/AX=X+1FF

32、TTabdceA=3A=3,B=0 B=0 ,X=1 X=1 A=2A=2,B=1 B=1 ,X=1X=1例例: :可设计两组测试用例可设计两组测试用例: :A=3,B=0 ,X=1 可覆盖可覆盖c、d分支分支 A=2,B=1 ,X=1 可覆盖可覆盖b、e分支分支 两组测试用例可覆盖所有判定的真假两组测试用例可覆盖所有判定的真假分支分支条件覆盖仍是弱的逻辑覆盖条件覆盖仍是弱的逻辑覆盖第一判定表达式:设条件 A1 取真 记为 T1 假 T1 条件 B=1 取真 记为 T2 假 T2第二判定表达式:设条件 A=2 取真 记为 T3 假 T3 条件 X1 取真 记为 T4 假 T4(3)(3)条件覆

33、盖条件覆盖 使每个判定的每个条件的可能取值至少执行一次使每个判定的每个条件的可能取值至少执行一次条件覆盖条件覆盖开始开始(A1) AND (B=0)(A=2) OR (X1)返回返回X=X/AX=X+1FFTTabdce满足条件满足条件: T1,T1, T2,T2 T3,T3 T4,T4A B XA B X1 0 31 0 32 1 12 1 1测试用例测试用例 通过通过 满足的满足的 覆盖覆盖A B X 路径路径 条件条件 分支分支1 0 3 abe T1,T2,T3,T4 b,e2 1 1 abe T1,T2,T3,T4 b,e 两个测试用例覆盖了四个条件八种可能两个测试用例覆盖了四个条件

34、八种可能取值。取值。未覆盖未覆盖c c、d d分支,不满足判定覆盖的要分支,不满足判定覆盖的要求求. .条件覆盖不一定包含判定覆盖条件覆盖不一定包含判定覆盖判定覆盖也不一定包含条件覆盖判定覆盖也不一定包含条件覆盖(4)(4)判定判定/ /条件覆盖条件覆盖 选取足够多的测试用例,选取足够多的测试用例,使判断中的每个条件的所有可使判断中的每个条件的所有可能取值至少执行一次,同时每能取值至少执行一次,同时每个判断本身的所有可能判断结个判断本身的所有可能判断结果至少执行一次果至少执行一次.判定判定/ /条件条件 覆盖覆盖开始开始(A1) AND (B=0)(A=2) OR (X1)返回返回X=X/AX

35、=X+1FFTTabdce满足条件满足条件: T1,T1, T2,T2 T3,T3 T4,T4A B XA B X2 0 4 2 0 4 全全T T1 1 11 1 1全全F F测试用例测试用例 通过通过 满足的满足的 覆盖覆盖A B X 路径路径 条件条件 分支分支2 0 4 ace2 0 4 ace T1,T2,T3,T4 c,e T1,T2,T3,T4 c,e1 1 1 abd1 1 1 abd T1,T2,T3,T4 b,d T1,T2,T3,T4 b,d 能同时满足判定、条件两种覆盖标准。能同时满足判定、条件两种覆盖标准。取值。取值。测试用例测试用例 通过通过 满足的满足的 覆盖覆盖

36、A B X A B X 路径路径 条件条件 分支分支2 0 3 ace T1,T2,T3,T4 c,e2 0 3 ace T1,T2,T3,T4 c,e2 1 1 abe2 1 1 abe T1,T2,T3,T4 T1,T2,T3,T4 b,e b,e1 0 3 abe1 0 3 abe T1,T2,T3,T4 b,e T1,T2,T3,T4 b,e1 1 1 abd1 1 1 abd T1,T2,T3,T4 b,d T1,T2,T3,T4 b,d (5)(5)条件组合覆盖条件组合覆盖 所有可能的条件取值组合至少所有可能的条件取值组合至少执行一次执行一次 A1, B=0 A1, B0 A 1,

37、 B=0 A 1, B0 A=2, X1 A=2, X 1 A2, X1 A2, X 1测试用例测试用例 通过通过 满足的满足的 覆盖覆盖A B X 路径路径 条件条件 分支分支2 0 3 ace T1,T2,T3,T4 c,e2 0 3 ace T1,T2,T3,T4 c,e2 1 1 abe2 1 1 abe T1,T2,T3,T4 T1,T2,T3,T4 b,e b,e0 0 1 abe0 0 1 abe T1,T2,T3,T4 b,e T1,T2,T3,T4 b,e0 1 0 abd0 1 0 abd T1,T2,T3,T4 b,d T1,T2,T3,T4 b,d2 0 2 ace T1,T2,T3,T4 c,e2 0 2 ace T1,T2,T3,T4 c,e2 1 1 abe2 1 1 abe T1,T2,T3,T4 T1,T2,T3,T4 b,e b

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论