第六章软件测试-PPT精选课件.ppt

上传人(卖家):三亚风情 文档编号:3157294 上传时间:2022-07-24 格式:PPT 页数:144 大小:662.05KB
下载 相关 举报
第六章软件测试-PPT精选课件.ppt_第1页
第1页 / 共144页
第六章软件测试-PPT精选课件.ppt_第2页
第2页 / 共144页
第六章软件测试-PPT精选课件.ppt_第3页
第3页 / 共144页
第六章软件测试-PPT精选课件.ppt_第4页
第4页 / 共144页
第六章软件测试-PPT精选课件.ppt_第5页
第5页 / 共144页
点击查看更多>>
资源描述

1、第六章第六章 软件测试软件测试 6.1 6.1 基本概念基本概念 软件开发过程必须伴有质量保软件开发过程必须伴有质量保证活动。证活动。软件测试是软件质量保证的关软件测试是软件质量保证的关键元素,代表了规约、设计和键元素,代表了规约、设计和编码的最终检查。编码的最终检查。有关测试的思考题有关测试的思考题软件测试是一门非常重要的学科,主要研软件测试是一门非常重要的学科,主要研究内容是什么?究内容是什么?软件测试需要什么样的专业基础软件测试需要什么样的专业基础软件质量到底是什么?软件质量到底是什么?测试的目标是什么?测试的目标是什么?开发一个测试系统之前你是否明白开发一个测试系统之前你是否明白:可以

2、可以测试什么?测试什么?应该应该测试什么?测试什么?最终最终能够能够测试什么?测试什么?测试的目标是什么?测试的目标是什么?软件产品最大的成本是检测软软件产品最大的成本是检测软 件错误、修正软件错误的成本。件错误、修正软件错误的成本。在整个软件开发中,测试工作量在整个软件开发中,测试工作量 一般占一般占30%30%40%40%,甚至,甚至50%50%。在人命关天的软件在人命关天的软件(如飞机控制、如飞机控制、核反应堆等)测试所花费的时间核反应堆等)测试所花费的时间往往是其它软件工程活动时间之往往是其它软件工程活动时间之和的三到五倍和的三到五倍软件测试背景软件测试背景软件是人编的所以不完美实例实

3、例:1994-2019,1994-2019,迪斯尼的狮子王系统不支持问题迪斯尼的狮子王系统不支持问题IntelIntel的的pentiumpentium处理器处理器19941994年浮点除法缺陷年浮点除法缺陷200200年年8 8月月2828日,日,1.13MHZ1.13MHZ处理器一个可能导致运行程序处理器一个可能导致运行程序被挂起的执行指令问题被挂起的执行指令问题20192019年年1212月月3 3日日,美国航天局火星极地登陆飞船失美国航天局火星极地登陆飞船失踪踪19911991年爱国者导弹防御系统系统时钟错误积累造年爱国者导弹防御系统系统时钟错误积累造成跟踪系统失去精确度成跟踪系统失去

4、精确度千年虫千年虫,世界各地解决世界各地解决20002000年错误超过数亿美元年错误超过数亿美元软件测试的认识的发展软件测试的认识的发展人们对软件测试认识的五个阶段:人们对软件测试认识的五个阶段:阶段阶段1 1 测试测试=调试调试阶段阶段2 2 测试是证明软件正确测试是证明软件正确阶段阶段3 3 测试是发现软件中错误测试是发现软件中错误阶段阶段4 4 测试是减小软件不工作的风测试是减小软件不工作的风险险 (是度量软件质量要素(是度量软件质量要素的过程)的过程)阶段阶段5 5 测试可产生低风险的软件的一测试可产生低风险的软件的一 种认识上的训练种认识上的训练三个盲人和一头大象:你能够为质量三个盲

5、人和一头大象:你能够为质量 下定义吗?下定义吗?质量管理领域权威人物质量管理领域权威人物J.M.Juran将质量将质量 定义为定义为“决定产品性能和决定产品性能和满意程度满意程度的的 特征特征”,测试注重于产品的满意度。测试注重于产品的满意度。测试应针对这样一种情况:测试应针对这样一种情况:软件产品在一些特定的范围内不能满足软件产品在一些特定的范围内不能满足客户的合理要求。客户的合理要求。通过测试过程可以评定通过测试过程可以评定质量风险(可能质量风险(可能的错误)的错误),了解被测试系统中存在的,了解被测试系统中存在的错误错误模式(观察到的错误症状)模式(观察到的错误症状)。质量控制技术质量控

6、制技术质量控制活动分类质量控制活动分类开发方法学开发方法学配置管理配置管理验证技术验证技术评评 审审正确性验证正确性验证性能调试性能调试组件测试组件测试集成测试集成测试系统测试系统测试原子事务原子事务模块冗余性模块冗余性检检 错错质量控制质量控制避免错误避免错误容容 错错调调 试试测测 试试软件质量问题软件质量问题以软件测试为中心的软件质量保障技术以软件测试为中心的软件质量保障技术软件软件 静态测试技术静态测试技术质量质量 软件度量技术软件度量技术控制控制 动态测试技术动态测试技术技术技术 配置管理技术配置管理技术 修改控制与管理技术修改控制与管理技术 软件测试是保证软件质量软件测试是保证软件

7、质量,提高提高软件可靠性的关键软件可靠性的关键软件测试的目标软件测试的目标(1)(1)预防错误预防错误:几乎不可实现几乎不可实现(2)(2)发现错误发现错误6.1.1 6.1.1 测试的目的与地位测试的目的与地位 G.J.MyersG.J.Myers在在 中认为中认为:1.1.测试是为了寻找错误而运行程序的过程。测试是为了寻找错误而运行程序的过程。2.2.一个好的测试用例是指很可能找到迄今为一个好的测试用例是指很可能找到迄今为止尚未发现的错误的测试。止尚未发现的错误的测试。3.3.一个成功的测试是揭示了迄今为止尚未发一个成功的测试是揭示了迄今为止尚未发现的错误的测试。现的错误的测试。E.W.D

8、ijkstra E.W.Dijkstra 指出指出:“程序测试能证明错误的存在程序测试能证明错误的存在,但不能证明错误不存在但不能证明错误不存在.”.”测试的目的是发现程序中测试的目的是发现程序中的错误的错误,是为了是为了证明程序有错证明程序有错,而不是证明程序无错而不是证明程序无错.把证明程序无错当作测试目的不仅把证明程序无错当作测试目的不仅是不正确的是不正确的,完全做不到的,而且对做完全做不到的,而且对做好测试没有任何益处,甚至是好测试没有任何益处,甚至是十分有害十分有害的的.软件测试要设法使软件发生故障软件测试要设法使软件发生故障,暴露软件错误暴露软件错误 测试的测试的“成功成功”与与“

9、失败失败”能够发现错误的测试是成功的能够发现错误的测试是成功的测试,否则是失败的测试。测试,否则是失败的测试。“测试的目的是说明程序正确地执行测试的目的是说明程序正确地执行它应有的功能它应有的功能”这种说法正确吗?这种说法正确吗?例:程序例:程序TriangleTriangle,输入三个整数,表示一,输入三个整数,表示一个三角形的三个边长,该程序产生一个结果个三角形的三个边长,该程序产生一个结果,指出该三角形是等边三角形、等腰三角形,指出该三角形是等边三角形、等腰三角形还是不等边三角形。还是不等边三角形。为说明其能正确执行它的功能,可使用为说明其能正确执行它的功能,可使用“测试用例测试用例”(

10、3,4,5),(5,5,6),(6,6,6),(3,4,5),(5,5,6),(6,6,6),程序都能给出正确结果,是否就可认为程序程序都能给出正确结果,是否就可认为程序是正确的?是正确的?难以说清的软件缺陷难以说清的软件缺陷古谚:古谚:“一片树叶飘落在森林中没有人听见一片树叶飘落在森林中没有人听见,谁能说它发出了声音?谁能说它发出了声音?”由于不能报告没有看见的问题,因由于不能报告没有看见的问题,因此,此,没有看见就不能说存在软件缺陷没有看见就不能说存在软件缺陷 如果软件中的问题没有人发现如果软件中的问题没有人发现,那么它算不算软件缺陷?,那么它算不算软件缺陷?”只有看到了,才能断言软件缺陷

11、,只有看到了,才能断言软件缺陷,尚未尚未发现的软件缺陷只能说是未知软件缺陷。发现的软件缺陷只能说是未知软件缺陷。眼见为实 6.1.2 6.1.2 测试原则测试原则(1)(1)所有的测试都应追溯到用户需求所有的测试都应追溯到用户需求 最严重的错误最严重的错误(从用户角度从用户角度)是那是那些导致软件无法满足需求的错误。些导致软件无法满足需求的错误。程序中的问题根源程序中的问题根源可能在开发可能在开发 前期的各阶段解决、纠正错误也必须前期的各阶段解决、纠正错误也必须追溯到前期工作。追溯到前期工作。测测试试与与开开发发前前期期工工作作的的关关系系决定软件与系统的配合关系决定软件与系统的配合关系需求分

12、析需求分析概要设计概要设计详细设计详细设计 编编 码码单元测试单元测试集成测试集成测试确认测试确认测试系统测试系统测试开发前期出现错误的扩展开发前期出现错误的扩展计划计划需求需求分析分析设设计计编编码码测测试试A A AB B软件生存期各阶段间需保持的正确性软件生存期各阶段间需保持的正确性用户要求用户要求用户用户:我要什么我要什么?运行结果运行结果计算机计算机:程序运行得程序运行得到的结果到的结果源程序源程序程序员程序员:我要让计算我要让计算机什么做机什么做?设计说明书设计说明书设计员设计员:我要让软件我要让软件做什么做什么?需求说明书需求说明书分析员分析员:我可以提我可以提供什么供什么?12

13、345理解正确性理解正确性表达正确性表达正确性理解正确性理解正确性设计正确性设计正确性表达正确性表达正确性理解正确性理解正确性编码正确性编码正确性运行正确性运行正确性输入正确性输入正确性相符吗相符吗?测试原则测试原则(2)(2)概要设计时应完成测试计划,概要设计时应完成测试计划,详细的测试用例定义可在设计详细的测试用例定义可在设计 模型确定后开始,所有测试可模型确定后开始,所有测试可 在任何代码被产生之前进行计在任何代码被产生之前进行计 划和设计。划和设计。软件测试不等于程序测试软件测试不等于程序测试 软件测试应贯穿于软件定义与开发软件测试应贯穿于软件定义与开发的整个期间;的整个期间;据美国一

14、家公司统计,查出的软件错据美国一家公司统计,查出的软件错误中,属于误中,属于需求分析和软件设计的错需求分析和软件设计的错误误约占约占 64%64%,属于程序编写的错误仅,属于程序编写的错误仅占占 36%36%。程序编写的许多错误是。程序编写的许多错误是“先先天的天的”。测试阶段工作步骤测试阶段工作步骤单元测试单元测试:检验每个模块能否单独检验每个模块能否单独 工作工作.集成测试集成测试:检验概要设计中模块接检验概要设计中模块接 口设计问题口设计问题确认测试确认测试:以需求规格说明书为检以需求规格说明书为检 验尺度验尺度系统测试系统测试:综合检验综合检验测试可视为分析、设计、编码三个阶测试可视为

15、分析、设计、编码三个阶段的最终复审段的最终复审,以保证软件质量以保证软件质量.测试原则测试原则(3)pareto(3)pareto原则:测试发现的错误中原则:测试发现的错误中80%80%很可能起源于很可能起源于20%20%的模块中。应孤立这的模块中。应孤立这些疑点模块重点测试。些疑点模块重点测试。(4)(4)穷举测试是不可能的。穷举测试是不可能的。(5)(5)应由独立的底三方来构造测试。应由独立的底三方来构造测试。(开发和测试队伍分别建立)(开发和测试队伍分别建立)测试原则测试原则例例:测试计算器程序测试计算器程序加法测试加法测试1+0=1+0=1+9999999999999999999999

16、9999999999=1+99999999999999999999999999999999=2+0=2+0=2+99999999999999999999999999999999=2+99999999999999999999999999999999=99999999999999999999999999999999+9999999999999999999999999999999999999999999999999999999999999999+99999999999999999999999999999999=1.0+0.1=1.0+0.1=1.0+0.2=1.0+0.2=减法测试减法测试乘法测试乘

17、法测试除法测试除法测试求平方根求平方根百分数百分数倒数倒数 测试原则测试原则(6)(6)测试用例应由输入数据和预期的输测试用例应由输入数据和预期的输 出结果两部分组成出结果两部分组成.(7)(7)兼顾合理的输入和不合理的输入数据兼顾合理的输入和不合理的输入数据(8)(8)程序修改后要回归测试程序修改后要回归测试(9)(9)应长期保留测试用例,直至系统废弃。应长期保留测试用例,直至系统废弃。测试原则:测试原则:软件测试是有风险的行为软件测试是有风险的行为数数量量遗漏软件遗漏软件缺陷数目缺陷数目测试费用测试费用测试中测试中测试后测试后软件测试工作量测试工作量每一个软件项目都有一个最优的测量量每一个

18、软件项目都有一个最优的测量量最优测量量最优测量量 6.1.3 6.1.3 可可测试性测试性 可测试软件的特征:可测试软件的特征:可操作性可操作性可观察性可观察性可控制性可控制性可分解性可分解性简单性简单性稳定性稳定性易理解性易理解性 “好好”测试的属性:测试的属性:发现错误的可能性高发现错误的可能性高不冗余不冗余在目的相似的测试中,应使用在目的相似的测试中,应使用最可能找到错误的测试最可能找到错误的测试每一个测试应独立执行每一个测试应独立执行软件测试有关概念软件测试有关概念测试中用到的模型元素(测试中用到的模型元素(UMLUML类图)类图)测试组测试组测试用例测试用例故故 障障组组 件件测试存

19、根测试存根测试驱动程序测试驱动程序误误 差差错错 误误改改 正正由修改由引起由引起找出使用修改1n*组件组件是系统中可以孤立进行测试的部分,一个组件可以是系统中可以孤立进行测试的部分,一个组件可以是对象,一组对象,一个或多个子系统。是对象,一组对象,一个或多个子系统。错误错误,也称缺陷或不足,是可能引起组件不正常行为的,也称缺陷或不足,是可能引起组件不正常行为的设计或编码错误。设计或编码错误。误差误差是系统执行过程中错误的表现。是系统执行过程中错误的表现。故障故障是组件的规格说明与其行为之间的偏差,故障是由是组件的规格说明与其行为之间的偏差,故障是由一个或多个误差引起的。一个或多个误差引起的。

20、测试用例测试用例是一组输入和期待的结果,它根据引起故障和是一组输入和期待的结果,它根据引起故障和检查的目的来使用组件。检查的目的来使用组件。测试存根测试存根是被测试的组件所依赖的其它一些组件的实现是被测试的组件所依赖的其它一些组件的实现部分。部分。测试驱动程序测试驱动程序是依赖被测试组件的那个组件的实是依赖被测试组件的那个组件的实现部分。现部分。改正改正是对组件的变化。改正的目的在于修正错误。改正是对组件的变化。改正的目的在于修正错误。改正可能会产生新的错误。可能会产生新的错误。错误错误(fault)、误差误差(error)和和故障故障(failure)出轨出轨(出故障出故障)?)?图中不表示

21、故障,因为既没有指定期望行为也没有任何观察的行为,它也不表示误差,因为这不意味着系统正处在进一步处理将导致故障的状态.错误错误(fault)、误差误差(error)和和故障故障(failure)用例名称用例名称 DriveTrainDriveTrain参与执行者参与执行者 火车司机火车司机入口条件入口条件 司机按下控制面板上的司机按下控制面板上的StrartTrainStrartTrain事件流事件流 1.1.列车开始在轨道列车开始在轨道1 1上运行上运行 2.2.列车平移到轨道列车平移到轨道2 2退出条件退出条件 列车运行在轨道列车运行在轨道2 2上上特殊条件特殊条件 没有没有用例用例Dri

22、veTrainDriveTrain指定了列车的期望行为指定了列车的期望行为:错误错误(fault)、误差误差(error)和和故障故障(failure)测试用例标识符测试用例标识符 DriveTrainDriveTrain测试位置测试位置 www12.in.tum.de/www12.in.tum.de/要测试的特征要测试的特征 引擎连续运行引擎连续运行5s5s特征合格特征合格/不合格标准不合格标准 如果列车连续前进如果列车连续前进5s,5s,并且至少并且至少 通过两个轨道的长度通过两个轨道的长度,则测试通过则测试通过控制方法控制方法 驱动程序驱动程序StrartTrainStrartTrain

23、调用调用StrartTrain()StrartTrain()方法方法数据数据 从输入文件从输入文件www12.in.tum.de/www12.in.tum.de/中中 得到运行方向和持续时间得到运行方向和持续时间 用例用例DriveTrainDriveTrain的测试用例的测试用例DriveTrain:DriveTrain:执行这个测试用例时,可以证明系统是包含有错误的软件测试有关概念软件测试有关概念术语和定义术语和定义 软件测试要精度还是准确度很大程度软件测试要精度还是准确度很大程度上取决于产品是什么,最终取决于开发小组的目上取决于产品是什么,最终取决于开发小组的目标。标。既不准确又不精确精

24、确但不准确准确但不精确既准确又精确精确和准确精确和准确软件测试有关概念软件测试有关概念术语和定义术语和定义验证和合法性检查验证和合法性检查验证是检查软件符合产品说明书的过程验证是检查软件符合产品说明书的过程合法性检查是保证软件满足用户要求的过程合法性检查是保证软件满足用户要求的过程质量和可靠性质量和可靠性 可靠性只是质量的一个方面可靠性只是质量的一个方面测试和质量评判(测试和质量评判(QA)软件测试员的目标是找出软件缺陷软件测试员的目标是找出软件缺陷软件质量评判人员的主要职责是创建和加强软件质量评判人员的主要职责是创建和加强 促进软件开发并防止软件缺陷的标准和方法促进软件开发并防止软件缺陷的标

25、准和方法 测试测试 (test)(test)调试调试 (debug)(debug)以已知条件开始以已知条件开始,使用预先定义的程序使用预先定义的程序,有预知的结果有预知的结果以不可知内部条件以不可知内部条件开始开始,结果一般不可结果一般不可预见预见有计划有计划被动的被动的由独立的测试组,在由独立的测试组,在不了解软件设计的条不了解软件设计的条件下完成件下完成由程序作者进行由程序作者进行发现错误发现错误找出错误位置,排除找出错误位置,排除测试与调试测试与调试(排错排错)软件错误分类软件错误分类F 功能错功能错(需求分析错误需求分析错误)F 软件结构错软件结构错F 数据错数据错F 编码错编码错F

26、软件集成错软件集成错F 测试定义与测试执行错误测试定义与测试执行错误 6.1.4 6.1.4 测试用例设计测试用例设计 选择测试用例是软件测试员最重要选择测试用例是软件测试员最重要 的一项工作。的一项工作。测试用例的属性测试用例的属性:属性属性 描述描述name name 测试用例的名称测试用例的名称 location location 可执行的完全路径名可执行的完全路径名 input input 输入数据或命令输入数据或命令oracle oracle 与测试输入相比较的期待测试结果与测试输入相比较的期待测试结果log log 测试生产的输出测试生产的输出程序测试举例程序测试举例例:程序例:程

27、序 TriangleTriangle,输入三个整输入三个整 数,表示一个三角形的三个边数,表示一个三角形的三个边 长,该程序产生一个结果,指长,该程序产生一个结果,指 出该三角形是等边三角形、等出该三角形是等边三角形、等 腰三角形还是不等边三角形。腰三角形还是不等边三角形。判断三角型的测试用例设计判断三角型的测试用例设计:输入数据输入数据 预期结果预期结果(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

28、 等等6.1.56.1.5 软件测试信息流软件测试信息流软件软件配置配置测试测试测试测试配置配置测试测试工具工具结果结果分析分析排错排错可靠性可靠性 分析分析测试测试结果结果错误错误预期预期结果结果出错率出错率 改正改正的软件的软件预测预测的可的可靠性靠性需求规格说明书需求规格说明书软件设计说明书软件设计说明书 被测源程序被测源程序 测试计划测试计划 测试用例测试用例(测试数据测试数据)测试驱动程序测试驱动程序测试活动和相关工作产品测试活动和相关工作产品项目协议项目协议对象设计对象设计客户客户开发人员开发人员用户用户集成策略集成策略系统分解系统分解功能性需求功能性需求非功能性需求非功能性需求单

29、元测试单元测试集成测试集成测试结构测试结构测试功能测试功能测试性能测试性能测试来自来自ODD来自来自TP来自来自SDD来自来自RAD来自来自RAD用户手册用户手册验收测试验收测试安装测试安装测试现场测试现场测试日常操作日常操作测试设计中需要考虑的测试设计中需要考虑的22种测试类型种测试类型黑盒测试黑盒测试白盒测试白盒测试单元测试单元测试累计综合测试累计综合测试集成测试集成测试功能测试功能测试系统测试系统测试端到端测试端到端测试健全测试健全测试衰竭测试衰竭测试接受测试接受测试负载测试负载测试强迫测试强迫测试性能测试性能测试可用性测试可用性测试安装安装/卸载测试卸载测试恢复测试恢复测试兼容测试兼容

30、测试安全测试安全测试比较测试比较测试AlphaAlpha测试测试BetaBeta测试测试6.1.6 6.1.6 测试的方法与技术测试的方法与技术软件测试的软件测试的策略和方法策略和方法静态测静态测试方法试方法动态测动态测试方法试方法人工测试方法人工测试方法计算机辅助静计算机辅助静态分析方法态分析方法白盒测试方法白盒测试方法黑盒测试方法黑盒测试方法静态和动态测试静态和动态测试汽车的检查过程汽车的检查过程:踩油门踩油门看车漆看车漆打开前盖检查打开前盖检查发动汽车发动汽车听听发动机声音听听发动机声音上路行使上路行使静态测试静态测试动态测试动态测试静态测试:静态测试:基本特征是在对软件进行基本特征是在

31、对软件进行 分析、检查和审阅,不实分析、检查和审阅,不实 际运行被测试的软件。际运行被测试的软件。静态测试约可找出静态测试约可找出303070%70%的逻辑设计错误的逻辑设计错误.对对需求规格说明书需求规格说明书、软件设计说明书软件设计说明书、源程序源程序做检查和审阅做检查和审阅,包括:包括:是否符合标准和规范;是否符合标准和规范;通过结构分析、流图分析、符号执行指出软件通过结构分析、流图分析、符号执行指出软件 缺陷缺陷;动态测试:动态测试:通过运行软件来检验软通过运行软件来检验软件的动态行为和运行结果的正确性件的动态行为和运行结果的正确性动态测试的两个基本要素:动态测试的两个基本要素:u 被

32、测试程序被测试程序u 测试数据(测试用例)测试数据(测试用例)动态测试方法动态测试方法(1)(1)选取定义域有效值选取定义域有效值,或定义域或定义域 外无效值外无效值.(2)(2)对已选取值决定对已选取值决定预期的结果预期的结果(3)(3)用选取值执行程序用选取值执行程序(4)(4)执行结果执行结果 与与(2)(2)结果相比结果相比,不吻和程序有错不吻和程序有错.动态黑盒测试动态黑盒测试 闭着眼睛测试软件闭着眼睛测试软件软件输入输入 不深入代码细节的测试方法称为动态黑盒测试。不深入代码细节的测试方法称为动态黑盒测试。软件测试员充当客户来使用它。软件测试员充当客户来使用它。输出输出动态白盒测试动

33、态白盒测试 带上带上X光眼镜测试软件光眼镜测试软件?3581322.293420195680302829734315250*(1+0.015)*(1+0.015)360-1)/0.015250*(1+0.015)*(1+0.015)360-1)/0.015 假如知道一个盒子包含一台计算机假如知道一个盒子包含一台计算机,而另一个而另一个盒子是人用纸笔计算盒子是人用纸笔计算,就会选择不同的测试用例就会选择不同的测试用例了解软件的运作方式会影响测试手段了解软件的运作方式会影响测试手段6.2 6.2 两种类型的测试两种类型的测试6.2.1 6.2.1 黑盒测试黑盒测试 又称又称:功能测试功能测试 数据

34、驱动测试数据驱动测试 基于规格说明书的测试基于规格说明书的测试6.2.2 6.2.2 白盒测试白盒测试 又称又称:开盒测试开盒测试 结构测试结构测试 玻璃盒测试玻璃盒测试 基于覆盖的测试基于覆盖的测试.根据被测程序的逻辑结构设计根据被测程序的逻辑结构设计 测试用例测试用例;力求提高测试覆盖率力求提高测试覆盖率;黑盒测试与白盒测试比较黑盒测试与白盒测试比较 黑盒测试黑盒测试是从用户观点,按是从用户观点,按规格说明书要求的输入数据与输规格说明书要求的输入数据与输出数据的对应关系设计测试用例出数据的对应关系设计测试用例,是根据程序是根据程序外部特征外部特征进行测试。进行测试。白盒测试白盒测试是根据程

35、序是根据程序内部逻辑内部逻辑结构结构进行测试。进行测试。黑盒测试与白盒测试优缺点比较黑盒测试与白盒测试优缺点比较 黑盒测试黑盒测试 白盒测试白盒测试 优优点点缺缺点点性性质质适用于各阶段测试适用于各阶段测试从产品功能角度测试从产品功能角度测试容易入手生成测试数容易入手生成测试数 据据可构成测试数据使特定程可构成测试数据使特定程 序部分得到测试序部分得到测试有一定的充分性度量手段有一定的充分性度量手段可或较多工具支持可或较多工具支持某些代码得不到测试某些代码得不到测试如果规格说明有误,如果规格说明有误,则无法发现则无法发现不易进行充分性测试不易进行充分性测试不易生成测试数据不易生成测试数据(通常

36、通常)无法对未实现规格说明的无法对未实现规格说明的 部分进行测试部分进行测试工作量大,通常只用于单工作量大,通常只用于单 元测试,有应用局限元测试,有应用局限是一种是一种确认确认技术,回答技术,回答“我们在构造一个正确我们在构造一个正确 的系统吗?的系统吗?”是一种是一种验证验证技术,回答技术,回答“我们在正确我们在正确 地构造一个系地构造一个系 统吗统吗?”6.2.3 6.2.3 穷举测试穷举测试例例:输入输入 三条边长三条边长 黑盒测试黑盒测试可采用的测试用例数可采用的测试用例数(设字长设字长1616位位)执行时间执行时间:设测试一次需设测试一次需1ms1ms 共需一万年共需一万年.=2

37、X2 X2 3X10=2 X2 X2 3X1016161616161614146.2.3 6.2.3 穷举测试穷举测试 白盒测试白盒测试例例:含含4 4个分支个分支,循环次数循环次数20,20,从从A A到到B B的可能的可能路径路径执行时间执行时间:设测试一次需设测试一次需2ms2ms 穷举测试需穷举测试需5 5亿年亿年.=5+5+.+5+5=5+5+.+5+5 101020201 12 219191414A AB B 不论黑盒还是白盒测试都不论黑盒还是白盒测试都不能不能进行穷尽测试进行穷尽测试,所以软件测试不可所以软件测试不可能发现程序中存在的所有错误能发现程序中存在的所有错误,因因此需精

38、心设计测试方案此需精心设计测试方案,力争尽可力争尽可能少的次数能少的次数,测出尽可能多的错误测出尽可能多的错误.黑盒测试与白盒测试能发现的错误黑盒测试与白盒测试能发现的错误C CB BA AD D-只能用黑盒测试发现的错误只能用黑盒测试发现的错误A-只能用白盒测试发现的错误只能用白盒测试发现的错误-两种方法都能发现的错误两种方法都能发现的错误-两种方法都不能发现的错误两种方法都不能发现的错误BCD6.36.3白盒测试的测试用例设计白盒测试的测试用例设计 6.3.1 6.3.1 逻辑覆盖法逻辑覆盖法(1)(1)语句覆盖语句覆盖(2)(2)判定覆盖判定覆盖(3)(3)条件覆盖条件覆盖(4)(4)判

39、定判定/条件覆盖条件覆盖(5)(5)条件组合覆盖条件组合覆盖(6)(6)路径覆盖路径覆盖(7)(7)点覆盖点覆盖(8)(8)边覆盖边覆盖例例: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;开始开始(A1)AND(B=0)(A=2)OR(X1)返回返回X=X/AX=X+1FFTTabdce(1)(1)语句覆盖语句覆盖使程序中每个语句至少执行一次使程序中每个语句至少执行一次语句覆盖语句覆盖开始开始(A1)AND(B=0)(A=2)OR(X1)返回

40、返回X=X/AX=X+1FFTTabdce只需设计一个测试用例只需设计一个测试用例:输入数据:输入数据:A=2,B=0,X=4即达到了语句覆盖即达到了语句覆盖;语句覆盖是语句覆盖是最弱最弱的逻辑覆盖的逻辑覆盖(2)(2)判定覆盖判定覆盖(分支覆盖分支覆盖)使每个判定的真假分支都至少执行一次使每个判定的真假分支都至少执行一次判定覆盖判定覆盖开始开始(A1)AND(B=0)(A=2)OR(X1)返回返回X=X/AX=X+1FFTTabdce例例:可设计两组测试用例可设计两组测试用例:A=3,B=0,X=3 可覆盖可覆盖c、d分支分支 A=2,B=1,X=1 可覆盖可覆盖b、e分支分支 两组测试用例

41、可覆盖所有判定的真假两组测试用例可覆盖所有判定的真假分支分支语句覆盖仍是语句覆盖仍是弱弱的逻辑覆盖的逻辑覆盖(3)(3)条件覆盖条件覆盖 使每个判定的每个条件的可使每个判定的每个条件的可能取值至少执行一次能取值至少执行一次第一判定表达式第一判定表达式:设设条件条件 A1A1 取真取真 记为记为 T1T1 假假 T1T1 条件条件 B=1B=1 取真取真 记为记为 T2T2 假假 T2T2第二判定表达式第二判定表达式:设设条件条件 A=2A=2 取真取真 记为记为 T3T3 假假 T3T3 条件条件 X1X1 取真取真 记为记为 T4T4 假假 T4T4条件覆盖条件覆盖开始开始(A1)AND(B

42、=0)(A=2)OR(X1)返回返回X=X/AX=X+1FFTTabdce满足条件满足条件:T1,T1,T2,T2 T3,T3 T4,T4测试用例测试用例 通过通过 满足的满足的 覆盖覆盖A B X 路径路径 条件条件 分支分支1 0 3 abe T1,T2,T3,T4 b,e2 1 1 abe T1,T2,T3,T4 b,e 两个测试用例两个测试用例覆盖了四个条件八种可能覆盖了四个条件八种可能取值取值。未覆盖未覆盖c c、d d分支分支,不满足判定覆盖的要,不满足判定覆盖的要求求.条件覆盖不一定包含判定覆盖条件覆盖不一定包含判定覆盖判定覆盖也不一定包含条件覆盖判定覆盖也不一定包含条件覆盖(4

43、)(4)判定判定/条件覆盖条件覆盖 选取足够多的测试用例,使选取足够多的测试用例,使判断中的每个条件的所有可能判断中的每个条件的所有可能取值至少执行一次,同时每个取值至少执行一次,同时每个判断本身的所有可能判断结果判断本身的所有可能判断结果至少执行一次至少执行一次.判定判定/条件条件 覆盖覆盖开始开始(A1)AND(B=0)(A=2)OR(X1)返回返回X=X/AX=X+1FFTTabdce满足条件满足条件:T1,T1,T2,T2 T3,T3 T4,T4测试用例测试用例 通过通过 满足的满足的 覆盖覆盖A B X 路径路径 条件条件 分支分支2 0 4 ace2 0 4 ace T1,T2,T

44、3,T4 T1,T2,T3,T4 c c,e e2 1 1 abd2 1 1 abd T1,T2,T3,T4 T1,T2,T3,T4 b b,d d 能同时满足判定、条件两种覆盖标准。能同时满足判定、条件两种覆盖标准。取值。取值。测试用例测试用例 通过通过 满足的满足的 覆盖覆盖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

45、 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,B=0 A 1,B0 A=2,X1 A=2,X 1 A2,X1 A2,X 1测试用例测试用例 通过通过 满足的满足的 覆盖覆盖A B X 路径路径 条件条件 分支分支2 0 4 ace T1,T2,T3,T4 c,e2 0 4 ace T1,T2,T3,T4 c,e2 1 1 abe2 1 1 abe T1,T2,T3,T

46、4 T1,T2,T3,T4 b,e b,e1 0 2 abd1 0 2 abd T1,T2,T3,T4 b,d T1,T2,T3,T4 b,d1 1 1 abd1 1 1 abd T1,T2,T3,T4 b,d T1,T2,T3,T4 b,d (6)(6)路径覆盖路径覆盖 覆盖每一个可能的路径覆盖每一个可能的路径测试用例测试用例 通过通过 满足的满足的 覆盖覆盖A B X 路径路径 条件条件 分支分支1 1 1 abd T1,T2,T3,T4 b,d1 1 1 abd T1,T2,T3,T4 b,d1 1 2 abe1 1 2 abe T1,T2,T3,T4 T1,T2,T3,T4 b,e b

47、,e3 0 1 acd3 0 1 acd T1,T2,T3,T4 c,d T1,T2,T3,T4 c,d2 0 4 ace2 0 4 ace T1,T2,T3,T4 c,e T1,T2,T3,T4 c,e基本路径测试法基本路径测试法 通过分析由控制构造的环路的复通过分析由控制构造的环路的复杂性,导出基本路径集合,从而杂性,导出基本路径集合,从而设计测试用例,保证这些路径至设计测试用例,保证这些路径至少通过一次。少通过一次。基本路径测试步骤:基本路径测试步骤:导出程序流程图的拓扑结构导出程序流程图的拓扑结构-流图流图 (程序图程序图)计算流图计算流图G G的环路复杂度的环路复杂度V(G)V(G)

48、确定只包含独立路径的基本路径集确定只包含独立路径的基本路径集 设计测试用例设计测试用例 导出程序流程图的拓扑结构导出程序流程图的拓扑结构-流图流图1 12,32,36 64,54,57 710106 61111a节点节点边边R4R4区域区域1 12 23 34 45 58 87 73 39 91111程序流程图程序流程图8 89 9R1R1R2R2R3R3计算流图计算流图G G的环路复杂度的环路复杂度V(G)V(G)V(G)=V(G)=区域个数区域个数=4=4 V(G)=V(G)=边的条数边的条数-节点个数节点个数+2=4+2=4 V(G)=V(G)=判定节点个数判定节点个数+1=4+1=4确

49、定只包含独立路径的基本路径集确定只包含独立路径的基本路径集path1:1-11path1:1-11path1:1-2-3-4-5-10-1-11path1:1-2-3-4-5-10-1-11path1:1-2-3-6-8-9-10-1-11path1:1-2-3-6-8-9-10-1-11path1:1-2-3-6-7-9-10-1-11path1:1-2-3-6-7-9-10-1-11 一条新路径必须包含一条新边。一条新路径必须包含一条新边。这这4 4条路径组成了一个基本路径集。条路径组成了一个基本路径集。4(4(环环路复杂度路复杂度V(G)V(G)是构成这个基本路径集的独立是构成这个基本路

50、径集的独立路径数的上界,也是设计路径数的上界,也是设计测试用例的数目。测试用例的数目。设计测试用例,保证基本路径集中每条设计测试用例,保证基本路径集中每条路径的执行。路径的执行。6.46.4黑盒测试的测试用例设计黑盒测试的测试用例设计6.4.1 6.4.1 等价类划分法等价类划分法 把所有可能的输入数据把所有可能的输入数据(有效的有效的和无效的和无效的)划分成若干个等价的子集划分成若干个等价的子集(称为等价类称为等价类),使得每个子集中的使得每个子集中的一个典型值在测试中的作用与这一一个典型值在测试中的作用与这一子集中所有其它值的作用相同子集中所有其它值的作用相同.可从每个子集中选取一组数据可

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(第六章软件测试-PPT精选课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|