您好,欢迎访问三七文档
软件测试沈阳师范大学软件学院1软件工程系孟磊netmenglei@126.com课程概述学习前的要求•掌握软件工程基本概念•掌握软件开发方法和软件开发语言•了解Web程序开发沈阳师范大学软件学院2课程概述参考书目•《软件测试》PaulC.Jorgensen,韩柯等译,2002,机械工业出版社•《软件测试方法和技术》朱少民,2011,清华大学出版社•《高级软件测试技术》杜庆峰,2011,清华大学出版社•《实用软件测试教程》温艳冬,2011,清华大学出版社沈阳师范大学软件学院3防不胜防的软件错误例1:1963年,美国,飞往火星的火箭爆炸,损失$10million原因:FORTRAN循环DO5I=1,3误写为DO5I=1.3例2:1996年,美国,飞往哥伦比亚城市Cali的客机失事,163人中仅4人生还原因:关于目的地坐标的、由一个字符构成的计算机命令的错误输入,两相距132英里的城市坐标在南美航空表中代码相同例3:1996年,ESA的火箭处女航失败,升空后仅飞行40秒就偏离了其预定轨道,该火箭被远程控制所毁并失去她携带的4个卫星,损失达5亿美元4沈阳师范大学软件学院防不胜防的软件错误原因:惯性参考系方面的问题未经讨论和解决例4:1994-1995年,迪斯尼的狮子王,第一个面向儿童的多媒体光盘游戏,投诉电话被打爆.原因:未对市场上的各种PC机型进行正确测试,软件在大众使用的常见系统中难以运行例5:1994年,英特尔奔腾浮点除法软件缺陷,导致为自己的行为道歉并花费4亿多美元更换坏芯片.原因:芯片发布前已发现问题,但管理层忽略了;软件缺陷被发现时,英特尔试图掩饰该问题的严重性;受到压力时,英特尔承诺更换芯片但要求用户证明自己受到软件缺陷的影响.沈阳师范大学软件学院5防不胜防的软件错误例6:1999年,美国航天局火星基地登陆飞船在试图登陆火星表面时失踪.原因:为省钱而简化确定何时关闭推进器的装置,导致飞船着陆时误更改一个数据位,两个测试小组的独立工作做的很好,但从未走在一起例7:1991年,美国爱国者导弹防御系统在几次对抗导弹战役中失利,多哈战误击毙28名美军士兵.原因:一个很小的系统时钟错误积累,可能拖延14小时并造成跟踪系统失去准确度,多哈战中系统拖延了100多个小时沈阳师范大学软件学院6本章内容1.1什么是软件测试1.2软件测试基础1.3软件测试原则和困境沈阳师范大学软件学院7本节内容1.1什么是软件测试1.1.1软件测试的发展1.1.2软件测试的术语1.1.3IEEE对软件测试的定义沈阳师范大学软件学院81.1.1软件测试的发展1.1.1软件测试的发展•早期——70年代:存在测试;无软件测试理论和方法;目的证明软件是可运行的;•70年代:开始出现测试理论和测试方法;1979年Myers《TheArtofSoftwareTesting》;软件测试目的:finderrorsinsoftware;一个好的测试:finderrorsthatnotbeenfound;•80年代:软件行业进入飞速发展时期,软件趋向复杂化、大型化,人们把“质量”融入到了软件测试里,形成了全新的软件测试与质量保证•21世纪初:软件测试深入到了软件开发的整个生命周期里,并且更侧重于面向对象软件测试、测试驱动开发、极限开发测试等新的领域沈阳师范大学软件学院91.1.2软件测试的术语术语和定义•错误(error)•缺陷(fault)•失效(failure)•事故(incident)沈阳师范大学软件学院101.1.2软件测试的术语术语和定义•错误(error)•缺陷(fault)•失效(failure)•事故(incident)沈阳师范大学软件学院111.1.2软件测试的术语错误(error)是软件本身的错误,由程序员在编程过程中造成的(somethingwronginsoftwareitself)应用到测试过程时,有两种不同的使用方式:•指一个实际测量值与理论预期值之间的分歧•指一些人的行为引起的软件中的某种失效或缺陷沈阳师范大学软件学院121.1.2软件测试的术语术语和定义•错误(error)•缺陷(fault)•失效(failure)•事故(incident)沈阳师范大学软件学院131.1.2软件测试的术语缺陷(fault)是错误的结果,是错误的表现,是导致系统失败的条件。系统出错的基本原因是缺陷。(observableinsoftwarebehavior)沈阳师范大学软件学院141.1.2软件测试的术语缺陷(fault)•微小的(Minor)•一般的(Major)•严重的(Critical)•致命的(Fatal)沈阳师范大学软件学院151.1.2软件测试的术语术语和定义•错误(error)•缺陷(fault)•失效(failure)•事故(incident)沈阳师范大学软件学院161.1.2软件测试的术语失效(failure)指不能按软件规格说明的要求执行一个软件片段。缺陷执行时会发生失效,与需求规格说明有关,但不是所有的缺陷都会导致失效。(somethingwronginsoftwarebehavior,deviatesfromrequirements)表现:•只出现在可执行的表现中,通常是源代码•这种定义只与过错缺陷有关沈阳师范大学软件学院171.1.2软件测试的术语如果在系统中有一个错误,则失效必然出现;如果失效出现了,则系统中必然有一个缺陷;如果系统中有一个缺陷,系统有可能出现失效,但并非一定出现失效。沈阳师范大学软件学院181.1.2软件测试的术语术语和定义•错误(error)•缺陷(fault)•失效(failure)•事故(incident)沈阳师范大学软件学院191.1.2软件测试的术语事故(incident)出现失效时,可能会也可能不会呈现出来。事故说明出现了与失效类似的情况,警告用户注意所出现的失效。沈阳师范大学软件学院20IncidentFailureFaultError1.1.2软件测试的术语IEEE对软件测试的定义使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验其是否满足规定的需要或是弄清楚预期结果与实际结果之间的差别。沈阳师范大学软件学院21本节内容1.2软件测试基础1.2.1软件测试主要内容1.2.2软件测试过程模型1.2.3软件测试分类沈阳师范大学软件学院221.2.1软件测试主要内容1.2.1软件测试主要内容软件工程与软件测试软件质量与度量沈阳师范大学软件学院231.2.1.1软件工程与软件测试软件测试是软件开发过程的一个阶段软件开发模型影响软件测试软件测试不只是程序测试•软件测试应贯穿于软件定义与开发的整个生命周期•源程序的测试中找到的程序错误不一定都是程序编写过程中造成的软件测试受软件开发各种因素的影响软件测试本身必须工程化沈阳师范大学软件学院241.2.1.1软件工程与软件测试软件测试在软件工程中的作用•是软件开发过程中不可缺少的一环•将占据主要的开发时间和经费•发现和弥补开发中的错误和缺陷•保证软件质量的手段•证明软件是可用的沈阳师范大学软件学院251.2.1.1软件工程与软件测试软件工程对软件测试的约束•软件测试的依据来源于开发过程•软件测试的结果必须反馈给开发过程•软件测试的时间、经费、人员受到约束沈阳师范大学软件学院261.2.1.1软件工程与软件测试软件工程模型中的软件测试•软件测试方法模型随着软件工程模型发展而变化•不同模型中,软件测试地位和作用不一样•软件测试的作用:找到软件bug;保证软件质量;指导软件开发;沈阳师范大学软件学院271.2.1.1软件工程与软件测试瀑布模型沈阳师范大学软件学院281.2.1.1软件工程与软件测试螺旋模型沈阳师范大学软件学院291.2.1.1软件工程与软件测试软件错误或缺陷的来源•产品说明书:没有说明书、说明书不全面、经常修改、开发小组的沟通不够。•设计方案:片面性、易变性、沟通不够。•代码错误:往往也是由软件复杂性、说明文档不足、进度压力等造成•测试错误:测试本身带来的错误沈阳师范大学软件学院301.2.1.1软件工程与软件测试软件开发团队成员•项目经理•产品设计人员构架师:定义代码和数据结构的总体内部设计、数据通信等,编写高级白盒测试计划,设计验收测试等领域事务专家或软件分析师:理解客户的真正需要,用设计人员能理解的术语定义客户需求用户界面程序员:创建用户界面主任程序员:编写内部设计规格说明•产品营销经理沈阳师范大学软件学院311.2.1.1软件工程与软件测试软件开发团队成员(续)•文档编写人员•测试人员•特定项目会包括其他团队成员美工可靠性分析师安全性分析师硬件工程师律师。。。•技术支持代表沈阳师范大学软件学院321.2.1.1软件工程与软件测试软件测试何时可以停止?•软件系统经单元、集成、系统测试,分别达到单元、集成、系统测试停止标准•软件系统通过验收测试,并已得出验收测试结论•软件项目需暂停以进行调整时,测试应随之暂停,并备份暂停点数据•软件项目在其开发生命周期内出现重大估算,进度偏差,需暂停或终止时,测试应随之暂停或终止,并备份暂停或终止点数据沈阳师范大学软件学院331.2.1.1软件工程与软件测试软件测试需要工程化•软件测试是一项复杂的工作•软件测试的成本、效率和可靠性问题•软件测试必须从艺术向工程转变•软件测试工作必须是可控的•软件测试的结果必须是可信的沈阳师范大学软件学院341.2.1.1软件工程与软件测试软件测试的一般过程沈阳师范大学软件学院35TestCaseGenerationTestCaseSoftwaretobetestedOutput1.2.1.2软件质量与度量软件质量评价•软件需求是衡量软件质量的基础,不符合需求的软件就不具备质量。设计的软件应在功能、性能等方面都符合要求,并能可靠地运行。•软件结构良好,易读、易于理解,并易于修改、维护。•软件系统具有友好的用户界面,便于用户使用。•软件生存周期中各阶段文档齐全、规范,便于配置、管理。沈阳师范大学软件学院361.2.1.2软件质量与度量质量度量模型ISO/IEC9126-1991标准规定的软件质量度量模型。它由3层组成,其中第1层称为质量特性,第2层称为质量子特性,第3层称为度量。沈阳师范大学软件学院371.2.1.2软件质量与度量沈阳师范大学软件学院38软件质量质量特性质量子特性度量功能性适合性准确性互操作性依从性安全性可靠性成熟性容错性易恢复性可使用性易理解性易学习性易操作性效率时间特性资源特性可维护性易分析性稳定性易变更性易测试性可移植性适应性易安装性遵循性易替换性度量由使用单位自行决定1.2.2软件测试过程模型V模型V模型是最具有代表意义的测试模型,反映出了测试活动与分析设计活动的关系。V模型指出,单元和集成测试应检测程序的执行是否满足软件设计的要求;系统测试应检测系统功能、性能的质量特性是否达到系统要求的指标;验收测试确定软件的实现是否满足用户需要或合同的要求。沈阳师范大学软件学院391.2.2软件测试过程模型沈阳师范大学软件学院401.2.2软件测试过程模型W模型W模型由两个V字型模型组成,分别代表测试与开发过程。W模型强调:测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、设计等同样要测试,也就是说,测试与开发是同步进行的。沈阳师范大学软件学院411.2.2软件测试过程模型沈阳师范大学软件学院421.2.2软件测试过程模型H模型H模型将测试活动完全独立出来,形成了一个完全独立的流程,将测试准备活动和测试执行活动清晰地体现出来。H模型揭示了软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发地进行。沈阳师范大学软件学院431.2.2软件测试过程模型沈阳师范大学软件学院441.2.3软件测试过程分类按测试方式分类静态测试动态测试按测试方法分类白盒测试黑盒测试按测试过程分类单元测试集成测试系统测试验收测试沈阳师范大学软件学院451.2.3软件测试过程分类按测试目的分类功能测试健壮性测试接口测试
本文标题:第一章软件测试概述
链接地址:https://www.777doc.com/doc-3159187 .html