[计算机]第 3 章 软件缺陷与测试定义

上传人:繁星 文档编号:88358971 上传时间:2019-04-25 格式:PPT 页数:28 大小:1.23MB
返回 下载 相关 举报
[计算机]第 3 章 软件缺陷与测试定义_第1页
第1页 / 共28页
[计算机]第 3 章 软件缺陷与测试定义_第2页
第2页 / 共28页
[计算机]第 3 章 软件缺陷与测试定义_第3页
第3页 / 共28页
[计算机]第 3 章 软件缺陷与测试定义_第4页
第4页 / 共28页
[计算机]第 3 章 软件缺陷与测试定义_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《[计算机]第 3 章 软件缺陷与测试定义》由会员分享,可在线阅读,更多相关《[计算机]第 3 章 软件缺陷与测试定义(28页珍藏版)》请在金锄头文库上搜索。

1、2007年8月28日3时37分,第 1 页,第 3 章 软件缺陷与测试定义,3.1 软件测试的背景 3.2 软件测试的定义 3.3 软件测试生命周期 3.4 软件开发与测试模型 3.5 软件测试的术语和定义,2007年8月28日3时37分,第 2 页,3.1 软件测试的背景,3.1.1 软件错误案例研究,软件无处不在,软件是人写的,所以不完美,请看下面的例子,迪斯尼的狮子王问题,19941995 迪斯尼公司发布的第一个面向儿童的多媒体光盘游戏狮子王动画故事,在公众使用的系统中不能运行 英特尔奔腾器的除法问题 ,1994 1994年12月30日 ;Thomas R .Nicely博士在他的一个实

2、验中,发现了奔腾CPU的除法问题 (41958353145727)314357274195835?,2007年8月28日3时37分,第 3 页,英特尔公司为此道歉并花费4亿多美元更换芯片 美国航天局火星极地登陆者号探测器问题,1999 1999年12月3日,美国航天局的火星极地登陆者号探测器试图在火星表面着陆时失踪。 爱国者导弹防御系统问题,1991 1991美国爱国者导弹防御系统首次应用在海湾战争中对抗伊拉克飞毛腿导弹的防御战中 ,一次在沙特阿拉伯的多哈击毙了28名美国士兵 还有: 2003年4月,一个软件故障导致美国航空集团公司损失数千美元,因为有些机票的价格被误定为1.86美元,2007

3、年8月28日3时37分,第 4 页,2003年8月,位于美国俄亥俄州的第一能源(FirstEnergy)公司下属的电力监测与控制管理系统“XA/21”出现软件错误,导致北美东北部大规模停电 2005年07月13日,北京互联网首次突然大面积断网,主要原因是北京网通几个核心路由器的BGP Down掉了 美国商务部的国立标准技术研究所(NIST:National Institute of Standards and Technology)有关软件缺陷的损失调查报告表示,“据推测,由于软件缺陷而引起的损失额每年高达595亿美元。这一数字相当于美国国内生产总值的0.6%”,2007年8月28日3时37分

4、,第 5 页,3.1.2 软件缺陷,3.1.2.1 软件失败的术语,缺点(defect) 偏差(variance) 故障(fault) 失败(failure) 问题(problem) 矛盾(incosistency) 错误(error) 特性殊(feature) 事件(incident) 缺陷(bug) 异常(anomaly),2007年8月28日3时37分,第 6 页,这些词的含义几近相同。 故障、失败和缺点都指确实严重的情况,甚至是危险的情况; 异常、事件和偏差不是那么尖锐,主要指未按预料的运行,而不是全部的失败。 问题、错误和缺陷也许是最常用的术语。,2007年8月28日3时37分,第

5、7 页,3.1.2.2 软件缺陷官方的定义,软件未实现产品说明书要求的功能。 软件出现了产品说明书指明不会出现的错误。 软件实现了产品说明书未提到的功能。 软件未实现产品说明书虽未明确提及但应该实现的目标。 软件难以理解、不易使用、运行缓慢或者从测试员的角度看最终用户会认为不好。,2007年8月28日3时37分,第 8 页,每一个使用过一些软件的人都会对软件的工作方式有自己意见和想法,要编写令所有用户都满意的软件是不可能的。要全面,最重要的是要客观评价,并非所有测试发现的缺陷都要修改。,2007年8月28日3时37分,第 9 页,3.1.2.3 为什么会出现软件缺陷,(1) 导致软件缺陷最大的

6、原因是产品说明书(需求分析),图3-1 软件缺陷所占的比例,2007年8月28日3时37分,第 10 页,(2) 软件缺陷的第二大来源是设计 (3) 代码错误可以归咎于软件的复杂性、文档 资料的不足、进度压力或者普通的低级错误,与(1)、(2)有关 (4) 其他原因,如误解,重复错误,测试错误等只占极小的比例 。,2007年8月28日3时37分,第 11 页,3.1.2.4 软件缺陷的修复费用,随着时间推移,修复软件缺陷的费用惊人地增长 (指数级 ) IBM:确定软件错误的相对成本是:在设计阶段,1.5;编码前,1;编码中,1.5;测试前,10;测试中,60;交付后,100。Watts Hum

7、phrey TRW: 确定错误的相对时间:需求分析阶段,1;设计阶段,3-6;编码阶段,10;开发测试阶段,15-40;接受性测试阶段,30-70;应用运行中,40-1000。Boehm,2007年8月28日3时37分,第 12 页,图3-2 软件缺陷的费用,2007年8月28日3时37分,第 13 页,3.2 软件测试的定义,3.2.1 什么是软件测试,根据侧重点的不同,主要有以下几种观点: 1)1983年IEEE将软件测试定义为:“使用人工或自动手段运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别”,该定义明确地提出了软件测试以检验是否满足需

8、求为目标。 2)Myers认为:“是为了发现错误而执行程序的过程”,明确提出了“寻找错误”是测试目的。,2007年8月28日3时37分,第 14 页,3)从软件质量保证的角度看:是一种重要的软件质量保证活动,其动机是通过一些经济、高效的方法,捕捉软件中的错误,从而达到保证软件内在质量的目的。 也有人认为软件测试(software testing)就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。 软件测试有两个基本职责:即验证和确认。 注意:区分软件测试和软件调试。,2007年8月28日3时37分,第 15 页,3.2.2 软件测试的目标,GMyer

9、s给出了关于测试的一些规则,我们也可以把这些规则看作是测试的目标: 1)软件测试是为了发现错误而执行程序的过程。 2)测试是为了证明程序有错,而不是证明程序无错。 3)一个好的测试用例在于他能发现至今未发现的错误。 4)一个成功的测试是发现了至今未发现的错误的测试。 这里要强调的一点是,软件测试不只是软件测试人员的工作,也是软件开发人员和软件使用者的工作,2007年8月28日3时37分,第 16 页,3.3 软件测试生命周期,测试的生命周期(software testing life cycle)分为几个阶段(如图3-3所示 )。 前三个阶段就是引入程序错误阶段; 后三个阶段就是清除程序错误的

10、阶段,2007年8月28日3时37分,第 17 页,图3-3 测试生命周期,2007年8月28日3时37分,第 18 页,3. 4 软件开发与测试模型,3.4.1 软件开发与测试V模型,在传统开发过程中测试不受重视,仅把它作为在需求分析、概要设计、详细设计及编码之后的一个阶段。尤其在瀑布模型中。 如图3-4/3-5所示,在V模型中,描述了一些不同的测试级别,并说明了这些级别所对应的生命周期中不同的阶段,清楚地描述了这些测试阶段和开发过程期间的对应关系。,下面我们将介绍几种典型的软件开发与测试模型。,2007年8月28日3时37分,第 19 页,图3-4 V模型示意图,2007年8月28日3时3

11、7分,第 20 页,图3-5 V模型示意图,2007年8月28日3时37分,第 21 页,由于各种原因,开发的每一个环节都可能产生错误,如果坚持各个阶段的技术评审,就能够尽早发现和预防错误。 图3-6为软件开发与测试的W 模型,形象地说明了软件测试与开发的这种同步性。,3.4.2 软件开发与测试W模型,V模型适用于所有类型的开发过程,但并不一定适用于开发和测试过程的所有方面。,2007年8月28日3时37分,第 22 页,图3-6 W模型示意图,2007年8月28日3时37分,第 23 页,与前两种模型相比,H模型充分地体现了测试过程。如图3-7所示的H 模型揭示了: (1) 软件测试不仅仅指

12、测试的执行, 还包括很多其他的活动。 (2)软件测试是一个独立的流程, 贯穿产品的整个开发周期, 与其它流程并发进行。 ( 3)软件测试要尽早准备, 尽早执行。,应用该模型的优点在于,每个软件开发活动结束后就可以执行相应的测试,如:在需求分析结束后,就可以进行需求分析测试。,3.4.3 软件开发与测试H模型,2007年8月28日3时37分,第 24 页,(4)软件测试根据被测物的不同是分层次的. 不同层次的测试活动可以是按照某个次序先后进行的, 但也可能是反复的。,图3-7 H模型示意图,2007年8月28日3时37分,第 25 页,3.5 软件测试的术语和定义,重要的是在术语定义上取得一致而

13、不是在“正确性”上争论 (1)精确(precision)和准确 (accuracy) 准确度是指你得到的测定结果与真实值之间的接近程度。精确度是指使用同种备用样品进行重复测定所得到的结果之间的重现性。 软件测试要精度还是准确度很大程度上取决于产品是什么,最终取决于开发小组的目标,2007年8月28日3时37分,第 26 页,验证是保证软件符合产品说明书的过程;确认是保证软件满足用户要求的过程。,(2)验证(verification)和确认(validation),验证(verification)和确认(validation)的区别对软件测试很重要,2007年8月28日3时37分,第 27 页,

14、(3)错误(Error) 程序员在编写代码时会出错,我们把这种错误称之为bug。随着开发过程的进行,错误会不断的放大。 (4)缺陷(Default) 缺陷是错误的结果,更精确的说是错误的表现。 (5)失效(Failure) 在缺陷运行时,常常会发生失效的情况。一种是过错缺陷对应的失效;一种是遗漏缺陷对应的失效。 (6)测试(Test) 测试是一项采用测试用例执行软件的活动,在这项活动中某个系统或组成的部分将在特定的条件下运行,然后要观察并记录结果,以便对系统或组成部分进行评价。,2007年8月28日3时37分,第 28 页,(7)测试用例(Test Case) 测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果。 (8)回归测试(Regression testing) 回归测试的目的是为了测试由于修正缺陷而更新的应用程序,以确保彻底修正了上一个版本的缺陷,并且没有引入新的软件缺陷。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作范文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号