《软件测试教学》PPT课件.ppt
《《软件测试教学》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《软件测试教学》PPT课件.ppt(75页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第五章第五章 软件测试软件测试文档5.1 5.1 基本概念基本概念软件软件开发过程必须伴有质量保证活动。开发过程必须伴有质量保证活动。软件测试是软件质量保证的关键元素,软件测试是软件质量保证的关键元素,代表了规约、设计和编码的最终检查。代表了规约、设计和编码的最终检查。软件产品最大的成本是检测软件错误、软件产品最大的成本是检测软件错误、修正软件错误的成本修正软件错误的成本。在整个软件开发中在整个软件开发中,测试工作量测试工作量一般占一般占30%30%40%40%,甚至,甚至50%50%。在人命关天的软件在人命关天的软件(如飞机控制、核反应如飞机控制、核反应堆等)测试所花费的时间往往是其它软件工
2、堆等)测试所花费的时间往往是其它软件工程活动时间之和的三到五倍程活动时间之和的三到五倍例例:Windows9595有有10001000万行代码万行代码 Windows20002000有有50005000万行代码,万行代码,3000 3000多个工程师,几百个小团队。多个工程师,几百个小团队。Exchange2000和和 Windows20002000开发人员结构开发人员结构Exchange2000Windows20002000项目经理项目经理25人人约约250人人开发人员开发人员140人人约约1700人人测试人员测试人员350人人约约3200人人软件测试背景软件测试背景软件是人编的所以不完美实
3、例实例:1994-1995,迪斯尼的狮子王系统不支持问题迪斯尼的狮子王系统不支持问题Intel的的pentium处理器处理器1994年年浮点除法缺陷浮点除法缺陷200年年8月月28日,日,1.13MHZ处理器一个可能导致运行程处理器一个可能导致运行程序被挂起的执行指令问题序被挂起的执行指令问题1999年年12月月3日日,美国航天局火星极地登陆飞船失美国航天局火星极地登陆飞船失踪踪1991年爱国者导弹防御系统系统时钟错误积累造年爱国者导弹防御系统系统时钟错误积累造成跟踪系统失去精确度成跟踪系统失去精确度千年虫千年虫,世界各地解决世界各地解决2000年错误超过数亿美元年错误超过数亿美元软件测试的问
4、题软件测试的问题软件缺陷是什么?软件缺陷是什么?谁执行测试?谁执行测试?开发者?开发者?单独的测试人员?单独的测试人员?两方面人员?两方面人员?测试什么?测试什么?每个部分都测试?每个部分都测试?测试软件中高风险部分?测试软件中高风险部分?什么时候测试?什么时候测试?怎样测试?怎样测试?测试应进行到什么程度?测试应进行到什么程度?软件缺陷是什么软件缺陷是什么 描述软件失败的术语描述软件失败的术语缺点缺点(defect)谬误谬误(fault)问题问题(problt)错误错误(error)异常异常(anomaly)偏差偏差(variance)失败失败(failure)缺陷缺陷(bug)难以说清的软
5、件缺陷难以说清的软件缺陷古谚:古谚:“一片树叶飘落在森林中没有人听见,一片树叶飘落在森林中没有人听见,谁能说它发出了声音?谁能说它发出了声音?”由于不能报告没有看见的问题,因此,由于不能报告没有看见的问题,因此,没有看见就不能说存在软件缺陷没有看见就不能说存在软件缺陷 “如果软件中的问题没有人发现,那么它如果软件中的问题没有人发现,那么它算不算软件缺陷?算不算软件缺陷?”只有看到了,才能断言软件缺陷,尚未只有看到了,才能断言软件缺陷,尚未发现的软件缺陷只能说是未知软件缺陷。发现的软件缺陷只能说是未知软件缺陷。眼见为实三个盲人和一头大象:你能够为质量下定义吗?三个盲人和一头大象:你能够为质量下定
6、义吗?质量管理领域权威人物质量管理领域权威人物J.M.Juran将将质量质量定义为:定义为:“决定产品性能和决定产品性能和满意程度满意程度的特征的特征”,测试注重于产品的满意度。测试注重于产品的满意度。测试应针对这样一种情况:测试应针对这样一种情况:软件产品在一些特定的范围内不能满足客户软件产品在一些特定的范围内不能满足客户的合理要求。的合理要求。通过测试过程可以评定通过测试过程可以评定质量风险(可能的错质量风险(可能的错误)误),了解被测试系统中存在的了解被测试系统中存在的错误模式(观察错误模式(观察到的错误症状)到的错误症状)。软件测试的目标软件测试的目标(1)预防错误预防错误:几乎不可实
7、现几乎不可实现(2)发现错误发现错误5.1.1 5.1.1 测试的目的与地位测试的目的与地位 在在 中认为中认为:1.1.测试是为了寻找错误而运行程序的过程。测试是为了寻找错误而运行程序的过程。2.2.一个好的测试用例是指很可能找到迄今为一个好的测试用例是指很可能找到迄今为止尚未发现的错误的测试。止尚未发现的错误的测试。3.3.一个成功的测试是揭示了迄今为止尚未发一个成功的测试是揭示了迄今为止尚未发现的错误的测试。现的错误的测试。E.W.Dijkstra E.W.Dijkstra 指出指出:“程序测试能证明错误的存在程序测试能证明错误的存在,但不但不能证明错误不存在能证明错误不存在.”.”测试
8、的目的是发现程序中的测试的目的是发现程序中的 错误,是为了错误,是为了证明程序有错证明程序有错,而而 不是证明程序无错不是证明程序无错.把把证证明明程程序序无无错错当当作作测测试试目目的的不不仅仅是是不不正正确确的的,完完全全做做不不到到的的,而而且且对对做做好好测测试试没有任何益处,甚至是没有任何益处,甚至是十分有害十分有害的的.软件测试要设法使软件发生故障软件测试要设法使软件发生故障,暴露暴露软件错误软件错误 测试的测试的“成功成功”与与“失败失败”能够发现错误的测试是成功的能够发现错误的测试是成功的测试,否则是失败的测试。测试,否则是失败的测试。“测测试试的的目目的的是是说说明明程程序序
9、正正确确地地执执行行它应有的功能它应有的功能”这种说法正确吗?这种说法正确吗?例例:程程序序TriangleTriangle,输输入入三三个个整整数数,表表示示一一个个三三角角形形的的三三个个边边长长,该该程程序序产产生生一一个个结结果果,指指出出该该三三角角形形是是等等边边三三角角形形、等等腰腰三三角角形形还还是是不不等等边边三三角形。角形。为为说说明明其其能能正正确确执执行行它它的的功功能能,可可使使用用“测测试用例试用例”(3,4,5),(5,5,6),(6,6,6),”(3,4,5),(5,5,6),(6,6,6),程程序序都都能能给给出出正正确确结结果果,是是否否就就可可认认为为程程
10、序序是是正正确的?确的?测试设计中需要考虑的22种测试类型黑盒黑盒测试测试白盒测试白盒测试单元测试单元测试累计综合测试累计综合测试集成测试集成测试功能测试功能测试系统测试系统测试端到端测试端到端测试健全测试健全测试衰竭测试衰竭测试接受测试接受测试负载测试负载测试强迫测试强迫测试性能测试性能测试可用性测试可用性测试安装安装/卸载测试卸载测试恢复测试恢复测试兼容测试兼容测试安全测试安全测试比较测试比较测试Alpha测试测试Beta测试测试质量控制技术质量控制技术质量控制活动分类质量控制活动分类开发方法学开发方法学配置管理配置管理验证技术验证技术评评 审审正确性验证正确性验证性能调试性能调试组件测试
11、组件测试集成测试集成测试系统测试系统测试原子事务原子事务模块冗余性模块冗余性检检 错错质量控制质量控制避免错误避免错误容容 错错调调 试试测测 试试软件质量问题以软件测试为中心的软件质量保障技术以软件测试为中心的软件质量保障技术软件软件 静态测试技术静态测试技术质量质量 软件度量技术软件度量技术控制控制 动态测试技术动态测试技术技术技术 配置管理技术配置管理技术 修改控制与管理技术修改控制与管理技术软件测试是保证软件质量软件测试是保证软件质量,提高提高软件可靠性的关键软件可靠性的关键 5.1.2 5.1.2 测试原则测试原则(1)(1)所有的测试都应追溯到用户需求所有的测试都应追溯到用户需求
12、最严重的错误最严重的错误(从用户角度从用户角度)是那些导是那些导致软件无法满足需求的错误。致软件无法满足需求的错误。程序中的问题程序中的问题根源根源可能在开发前可能在开发前 期的各阶段解决、纠正错误也必须追期的各阶段解决、纠正错误也必须追 溯到前期工作。溯到前期工作。测试与开发前期工作的关系决定软件与系统的配合关系决定软件与系统的配合关系需求分析需求分析概要设计概要设计详细设计详细设计 编编 码码单元测试单元测试集成测试集成测试确认测试确认测试系统测试系统测试测试活动和相关工作产品测试活动和相关工作产品项目协议项目协议对象设计对象设计客户客户开发人员开发人员用户用户集成策略集成策略系统分解系统
13、分解功能性需求功能性需求非功能性需求非功能性需求单元测试单元测试集成测试集成测试结构测试结构测试功能测试功能测试性能测试性能测试来自来自ODD来自来自TP来自来自SDD来自来自RAD来自来自RAD用户手册用户手册验收测试验收测试安装测试安装测试现场测试现场测试日常操作日常操作开发前期出现错误的扩展开发前期出现错误的扩展计划计划需求需求分析分析设设计计编编码码测测试试AB软件生存期各阶段间需保持的正确性用户要求用户要求用户用户:我要什么我要什么?运行结果运行结果计算机计算机:程序运行得程序运行得到的结果到的结果源程序源程序程序员程序员:我要让计算我要让计算机什么做机什么做?设计说明书设计说明书设
14、计员设计员:我要让软件我要让软件做什么做什么?需求说明书需求说明书分析员分析员:我可以提我可以提供什么供什么?12345理解正确性理解正确性表达正确性表达正确性理解正确性理解正确性设计正确性设计正确性表达正确性表达正确性理解正确性理解正确性编码正确性编码正确性运行正确性运行正确性输入正确性输入正确性相符吗相符吗?软件开发面临的实际问题项目开发前项目开发前分析员的理分析员的理解、设想解、设想软件开发面临的实际问题分析员分析员的描述的描述完成的设计完成的设计软件开发面临的实际问题程序员做出的产品程序员做出的产品软件开发面临的实际问题现场的安装现场的安装软件开发面临的实际问题用户原来的设想用户原来的
15、设想软件开发面临的实际问题 测试原则测试原则(2)(2)概要设计时应完成测试计划,概要设计时应完成测试计划,详细的测试用例定义可在设计详细的测试用例定义可在设计 模型确定后开始,所有测试可模型确定后开始,所有测试可 在任何代码被产生之前进行计在任何代码被产生之前进行计 划和设计。划和设计。软件测试不等于程序测试软件测试不等于程序测试 软件测试应贯穿于软件定义与开发的整软件测试应贯穿于软件定义与开发的整个期间;个期间;据美国一家公司统计,查出的软件错据美国一家公司统计,查出的软件错误中,属于误中,属于需求分析和软件设计的错误需求分析和软件设计的错误约约占占 64%64%,属于程序编写的错误仅占,
16、属于程序编写的错误仅占 36%36%。程序编写的许多错误是程序编写的许多错误是“先天的先天的”。测试阶段工作步骤测试阶段工作步骤单元测试单元测试:检验每个模块能否单独工作检验每个模块能否单独工作集成测试集成测试:检验概要设计中模块接口设计问题检验概要设计中模块接口设计问题确认测试确认测试:以需求规格说明书为检验尺度以需求规格说明书为检验尺度系统测试系统测试:综合检验综合检验 测试可视为分析、设计、编码三个阶测试可视为分析、设计、编码三个阶段的最终复审段的最终复审,以保证软件质量以保证软件质量.测试原则测试原则(3)(3)paretopareto原则:原则:测试发现的错误中测试发现的错误中80%
17、80%很很 可能起源于可能起源于20%20%的模块中。的模块中。应孤立这些疑点模块重点应孤立这些疑点模块重点 测试。测试。(4)(4)穷举测试是不可能的穷举测试是不可能的测试原则测试原则例例:测试计算器程序测试计算器程序加法测试加法测试1+0=1+0=1+99999999999999999999999999999999=1+99999999999999999999999999999999=2+0=2+0=2+99999999999999999999999999999999=2+99999999999999999999999999999999=99999999999999999999999999
18、999999+9999999999999999999999999999999999999999999999999999999999999999+99999999999999999999999999999999=1.0+0.1=1.0+0.1=1.0+0.2=1.0+0.2=减法测试减法测试乘法测试乘法测试除法测试除法测试求平方根求平方根百分数百分数倒数倒数 测试原则测试原则(5)(5)应由独立的底三方来构造测试。应由独立的底三方来构造测试。(开发和测试队伍分别建立)(开发和测试队伍分别建立)(6)(6)测试用例应由输入数据和预期的输测试用例应由输入数据和预期的输 出结果两部分组成出结果两部分组
19、成.(7)(7)兼顾合理的输入和不合理的输入数据兼顾合理的输入和不合理的输入数据(8)(8)程序修改后要回归测试程序修改后要回归测试(9)(9)应长期保留测试用例,直至系统废弃。应长期保留测试用例,直至系统废弃。测试原则:测试原则:软件测试是有风险的行为软件测试是有风险的行为数数量量遗漏软件遗漏软件缺陷数目缺陷数目测试费用测试费用测试中测试中测试后测试后软件测试工作量测试工作量每一个软件项目都有一个最优的测量量每一个软件项目都有一个最优的测量量最优测量量最优测量量 5.1.3 5.1.3 可测试性可测试性 可测试软件的特征:可测试软件的特征:可操作性可操作性可观察性可观察性可控制性可控制性可分
20、解性可分解性简单性简单性稳定性稳定性易理解性易理解性 “好好”测试的属性:测试的属性:发现错误的可能性高发现错误的可能性高不冗余不冗余在目的相似的测试中,应使用最可能找在目的相似的测试中,应使用最可能找到错误的测试到错误的测试每一个测试应独立执行每一个测试应独立执行 测试(test)调试(debug)以已知条件开始以已知条件开始,使用预先定义的程序使用预先定义的程序,有预知的结果有预知的结果以不可知内部条件开始以不可知内部条件开始,结果一般不可预见结果一般不可预见有计划有计划被动的被动的由独立的测试组,在由独立的测试组,在不了解软件设计的条不了解软件设计的条件下完成件下完成由程序作者进行由程序
21、作者进行发现错误发现错误找出错误位置,排除找出错误位置,排除测试与调试测试与调试(排错排错)软件错误分类软件错误分类 功能错功能错(需求分析错误需求分析错误)软件结构错软件结构错 数据错数据错 编码错编码错 软件集成错软件集成错 测试定义与测试执行错误测试定义与测试执行错误 5.1.4 5.1.4 测试用例设计测试用例设计 测试用的一组输入数据。测试用的一组输入数据。选择测试用例是软件测试员最重要选择测试用例是软件测试员最重要 的一项工作。的一项工作。测试用例的属性测试用例的属性:属性属性 描述描述name name 测试用例的名称测试用例的名称 location location 可执行的完
22、全路径名可执行的完全路径名 input input 输入数据或命令输入数据或命令oracle oracle 期待测试结果期待测试结果log log 测试产生的输出测试产生的输出程序测试举例程序测试举例例:程序例:程序 Triangle Triangle,输入三个整数,表示一个输入三个整数,表示一个 三角形的三个边长,该程序产生一个结果,三角形的三个边长,该程序产生一个结果,指出该三角形是等边三角形、等腰三角形还指出该三角形是等边三角形、等腰三角形还 是不等边三角形。是不等边三角形。判断三角型的测试用例设计判断三角型的测试用例设计:输入数据输入数据 预期结果预期结果 (1)6;6;6 (1)6;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件测试教学 软件 测试 教学 PPT 课件
限制150内