《软件质量测试第一章软件测试概述.pptx》由会员分享,可在线阅读,更多相关《软件质量测试第一章软件测试概述.pptx(53页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件质量与测试沈阳师范大学软件学院1软件工程系孟磊课程概述学习前的要求掌握软件工程基本概念掌握软件开发方法和软件开发语言了解Web程序开发 沈阳师范大学软件学院2课程概述参考书目软件测试 Paul C. Jorgensen,韩柯等译,2002,机械工业出版社软件测试方法和技术朱少民,2011,清华大学出版社高级软件测试技术杜庆峰,2011,清华大学出版社实用软件测试教程温艳冬,2011,清华大学出版社沈阳师范大学软件学院3防不胜防的软件错误例1:1963年, 美国 , 飞往火星的火箭爆炸, 损失$ 10 million 原因:FORTRAN循环 DO 5 I = 1,3 误写为 DO 5 I
2、= 1.3 例2:1996年,美国,飞往哥伦比亚城市Cali的客机失事,163人中仅4人生还 原因:关于目的地坐标的、由一个字符构成的计算机命令的错误输入,两相距132英里的城市坐标在南美航空表中代码相同例3:1996年,ESA的火箭处女航失败,升空后仅飞行40秒就偏离了其预定轨道,该火箭被远程控制所毁并失去她携带的4个卫星,损失达5亿美元 4沈阳师范大学软件学院防不胜防的软件错误 原因:惯性参考系方面的问题未经讨论和解决例4:1994-1995年, 迪斯尼的狮子王,第一个面向儿童的多媒体光盘游戏,投诉电话被打爆. 原因:未对市场上的各种PC机型进行正确测试,软件在大众使用的常见系统中难以运行
3、例5:1994年, 英特尔奔腾浮点除法软件缺陷,导致为自己的行为道歉并花费4亿多美元更换坏芯片. 原因:芯片发布前已发现问题,但管理层忽略了;软件缺陷被发现时,英特尔试图掩饰该问题的严重性;受到压力时,英特尔承诺更换芯片但要求用户证明自己受到软件缺陷的影响.沈阳师范大学软件学院5防不胜防的软件错误例6:1999年, 美国航天局火星基地登陆飞船在试图登陆火星表面时失踪. 原因:为省钱而简化确定何时关闭推进器的装置,导致飞船着陆时误更改一个数据位,两个测试小组的独立工作做的很好,但从未走在一起例7:1991年, 美国爱国者导弹防御系统在几次对抗导弹战役中失利,多哈战误击毙28名美军士兵. 原因:一
4、个很小的系统时钟错误积累,可能拖延14小时并造成跟踪系统失去准确度,多哈战中系统拖延了100多个小时沈阳师范大学软件学院6本章内容1.1 什么是软件测试1.2 软件测试基础1.3 软件测试原则和困境沈阳师范大学软件学院7本节内容1.1 什么是软件测试1.1.1 软件测试的发展1.1.2 软件测试的术语1.1.3 IEEE对软件测试的定义沈阳师范大学软件学院81.1.1 软件测试的发展1.1.1 软件测试的发展早期70年代:存在测试;无软件测试理论和方法;目的证明软件是可运行的;70年代:开始出现测试理论和测试方法;1979年MyersThe Art of Software Testing;软件
5、测试目的:find errors in software;一个好的测试:find errors that not been found;80年代:软件行业进入飞速发展时期,软件趋向复杂化、大型化,人们把“质量”融入到了软件测试里,形成了全新的软件测试与质量保证21世纪初:软件测试深入到了软件开发的整个生命周期里,并且更侧重于面向对象软件测试、测试驱动开发、极限开发测试等新的领域沈阳师范大学软件学院91.1.2 软件测试的术语术语和定义错误(error)缺陷(fault)失效(failure)事故(incident)沈阳师范大学软件学院101.1.2 软件测试的术语术语和定义错误(error)缺
6、陷(fault)失效(failure)事故(incident)沈阳师范大学软件学院111.1.2 软件测试的术语错误(error) 是软件本身的错误,由程序员在编程过程中造成的(something wrong in software itself) 应用到测试过程时,有两种不同的使用方式:指一个实际测量值与理论预期值之间的分歧指一些人的行为引起的软件中的某种失效或缺陷沈阳师范大学软件学院121.1.2 软件测试的术语术语和定义错误(error)缺陷(fault)失效(failure)事故(incident)沈阳师范大学软件学院131.1.2 软件测试的术语缺陷(fault) 是错误的结果,是错
7、误的表现,是导致系统失败的条件。系统出错的基本原因是缺陷。 (observable in software behavior)沈阳师范大学软件学院141.1.2 软件测试的术语缺陷(fault) 微小的(Minor) 一般的 (Major) 严重的(Critical) 致命的(Fatal) 沈阳师范大学软件学院151.1.2 软件测试的术语术语和定义错误(error)缺陷(fault)失效(failure)事故(incident)沈阳师范大学软件学院161.1.2 软件测试的术语失效(failure) 指不能按软件规格说明的要求执行一个软件片段。缺陷执行时会发生失效,与需求规格说明有关,但不是
8、所有的缺陷都会导致失效。 (something wrong in software behavior, deviates from requirements) 表现:只出现在可执行的表现中,通常是源代码只出现在可执行的表现中,通常是源代码这种定义只与过错缺陷有关这种定义只与过错缺陷有关沈阳师范大学软件学院171.1.2 软件测试的术语如果在系统中有一个错误,则失效必然出现;如果失效出现了,则系统中必然有一个缺陷;如果系统中有一个缺陷,系统有可能出现失效,但并非一定出现失效。沈阳师范大学软件学院181.1.2 软件测试的术语术语和定义错误(error)缺陷(fault)失效(failure)事故
9、(incident)沈阳师范大学软件学院191.1.2 软件测试的术语事故(incident) 出现失效时,可能会也可能不会呈现出来。事故说明出现了与失效类似的情况,警告用户注意所出现的失效。沈阳师范大学软件学院20IncidentFailureFaultError1.1.2 软件测试的术语IEEE对软件测试的定义 使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验其是否满足规定的需要或是弄清楚预期结果与实际结果之间的差别。沈阳师范大学软件学院21本节内容1.2 软件测试基础 1.2.1 软件测试主要内容1.2.2 软件测试过程模型1.2.3 软件测试分类沈阳师范大学软件学院221.
10、2.1 软件测试主要内容1.2.1 软件测试主要内容 软件工程与软件测试软件质量与度量沈阳师范大学软件学院231.2.1.1软件工程与软件测试软件测试是软件开发过程的一个阶段软件开发模型影响软件测试软件测试不只是程序测试软件测试应贯穿于软件定义与开发的整个生命周期源程序的测试中找到的程序错误不一定都是程序编写过程中造成的软件测试受软件开发各种因素的影响软件测试本身必须工程化沈阳师范大学软件学院241.2.1.1软件工程与软件测试软件测试在软件工程中的作用是软件开发过程中不可缺少的一环将占据主要的开发时间和经费发现和弥补开发中的错误和缺陷保证软件质量的手段证明软件是可用的沈阳师范大学软件学院25
11、1.2.1.1软件工程与软件测试软件工程对软件测试的约束软件测试的依据来源于开发过程软件测试的结果必须反馈给开发过程软件测试的时间、经费、人员受到约束沈阳师范大学软件学院261.2.1.1软件工程与软件测试软件工程模型中的软件测试软件测试方法模型随着软件工程模型发展而变化不同模型中,软件测试地位和作用不一样软件测试的作用:找到软件bug;保证软件质量;指导软件开发;沈阳师范大学软件学院271.2.1.1软件工程与软件测试瀑布模型沈阳师范大学软件学院281.2.1.1软件工程与软件测试螺旋模型沈阳师范大学软件学院291.2.1.1软件工程与软件测试软件错误或缺陷的来源产品说明书:没有说明书、说明
12、书不全面、经常修改、开发小组的沟通不够。设计方案:片面性、易变性、沟通不够。代码错误:往往也是由软件复杂性、说明文档不足、进度压力等造成测试错误:测试本身带来的错误沈阳师范大学软件学院301.2.1.1软件工程与软件测试软件开发团队成员项目经理产品设计人员构架师:定义代码和数据结构的总体内部设计、数据通信等,编写高级白盒测试计划,设计验收测试等领域事务专家或软件分析师:理解客户的真正需要,用设计人员能理解的术语定义客户需求用户界面程序员:创建用户界面主任程序员:编写内部设计规格说明产品营销经理沈阳师范大学软件学院311.2.1.1软件工程与软件测试软件开发团队成员(续)文档编写人员测试人员特定
13、项目会包括其他团队成员美工可靠性分析师安全性分析师硬件工程师律师。技术支持代表沈阳师范大学软件学院321.2.1.1软件工程与软件测试软件测试何时可以停止?软件系统经单元、集成、系统测试,分别达到单元、集成、系统测试停止标准软件系统通过验收测试,并已得出验收测试结论软件项目需暂停以进行调整时,测试应随之暂停,并备份暂停点数据软件项目在其开发生命周期内出现重大估算,进度偏差,需暂停或终止时,测试应随之暂停或终止,并备份暂停或终止点数据沈阳师范大学软件学院331.2.1.1软件工程与软件测试软件测试需要工程化软件测试是一项复杂的工作软件测试的成本、效率和可靠性问题软件测试必须从艺术向工程转变软件测
14、试工作必须是可控的软件测试的结果必须是可信的沈阳师范大学软件学院341.2.1.1软件工程与软件测试软件测试的一般过程沈阳师范大学软件学院35Test CaseGenerationTest CaseSoftware to be testedOutput1.2.1.2软件质量与度量软件质量评价软件需求是衡量软件质量的基础,不符合需求的软件就不具备质量。设计的软件应在功能、性能等方面都符合要求,并能可靠地运行。软件结构良好,易读、易于理解,并易于修改、维护。软件系统具有友好的用户界面,便于用户使用。软件生存周期中各阶段文档齐全、规范,便于配置、管理。沈阳师范大学软件学院361.2.1.2软件质量与
15、度量质量度量模型 ISO/IEC 91261991标准规定的软件质量度量模型。它由3层组成,其中第1层称为质量特性,第2层称为质量子特性,第3层称为度量。沈阳师范大学软件学院371.2.1.2软件质量与度量沈阳师范大学软件学院38软件质量 质量特性 质量子特性 度量 功能性 适合性 准确性 互操作性 依从性 安全性 可靠性 成熟性 容错性 易恢复性 可使用性 易理解性 易学习性 易操作性 效率 时间特性 资源特性 可维护性 易分析性 稳定性 易变更性 易测试性 可移植性 适应性 易安装性 遵循性 易替换性 度 量 由 使 用 单 位 自 行 决 定 1.2.2 软件测试过程模型模型 V模型是最
16、具有代表意义的测试模型 ,反映出了测试活动与分析设计活动的关系。V模型指出,单元和集成测试应检测程序的执行是否满足软件设计的要求;系统测试应检测系统功能、性能的质量特性是否达到系统要求的指标;验收测试确定软件的实现是否满足用户需要或合同的要求。沈阳师范大学软件学院391.2.2 软件测试过程模型沈阳师范大学软件学院401.2.2 软件测试过程模型模型 W模型由两个V字型模型组成,分别代表测试与开发过程。W模型强调:测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、设计等同样要测试,也就是说,测试与开发是同步进行的。沈阳师范大学软件学院411.2.2 软件测试过程模型沈阳师范大学软件
17、学院421.2.2 软件测试过程模型模型 H模型将测试活动完全独立出来,形成了一个完全独立的流程,将测试准备活动和测试执行活动清晰地体现出来。H模型揭示了软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发地进行。沈阳师范大学软件学院431.2.2 软件测试过程模型沈阳师范大学软件学院441.2.3 软件测试过程分类按测试方式分类 静态测试动态测试按测试方法分类白盒测试黑盒测试按测试过程分类单元测试集成测试系统测试验收测试沈阳师范大学软件学院451.2.3 软件测试过程分类按测试目的分类功能测试健壮性测试接口测试性能测试压力测试用户界面测试安全测试可靠性测试安装/反安装测试文档测试恢
18、复测试兼容性测试沈阳师范大学软件学院46本节内容1.3 软件测试原则和困境 1.3.1 软件测试原则1.3.2 软件测试困境沈阳师范大学软件学院471.3.1 软件测试原则软件测试的衡量标准多:能找到尽可能多的、以至于所有的错误快:能尽可能早地发现最严重的错误好:找到的错误是关键的、用户最关心的; 找到错误后能重现找到的错误,并为其修正提供尽可能多的信息。省:能用最少的时间、人力和资源发现错误; 测试的过程和数据可重用沈阳师范大学软件学院481.3.1 软件测试原则软件测试原则l测试应基于用户需求l测试设计是关键测试时间和资源是有限的测试到所有情况是不可能的避免冗余的测试测试用例应设计良好l应
19、尽早开始测试并不断地进行测试尽早制定测试计划测试从模块级开始测试贯穿于软件开发的各个阶段沈阳师范大学软件学院491.3.1 软件测试原则软件测试原则l心理素质最重要开发人员我不会犯错-任何人都可能犯错这种错误不能算作错误-质量是由用户来评价的发现我的错误是对我工作的否定-是对我的工作的帮助测试人员我责任心不够,反正测试是不可能发现所有错误的-职业教育+激励措施没有创造性、枯燥-总结经验,培养敏锐度,提升个人价值和权威技术比开发人员差,自信心不足-代表用户,决定成功的是用户满意沈阳师范大学软件学院501.3.1 软件测试原则软件测试原则l测试前必须明确预期的输出结果l可能的情况下,应避免测试自己
20、的软件发现不了思路错误发现不了环境错误心理因素导致测试可能不够彻底和全面l应充分注意测试中的群集现象Pareto原则:测试发现的错误中的80很可能集中于20的程序模块中编码规范、需求理解、技术能力、内部耦合性都会导致这种“虫子窝“现象心经验表明,测试后程序中残存的错误数目与该程序中已发现的错误数目成正比沈阳师范大学软件学院511.3.1 软件测试原则软件测试原则l测试设计决定了测试的有效性和效率,测试工具只能提高测试效率,而非万能l注意保留测试设计,并注意测试设计的可重用性和说明文档l测试活动要有组织、有计划、有选择穷举测试是不可能的不充分的测试是不负责任,过度的测试是浪费资源计划的活动提高效率l不要放弃随机测试的方法l软件测试员在开发小组中不受欢沈阳师范大学软件学院521.3.2 软件测试困境哲学上的困境l测试不能证明程序的正确,只能证明程序的错误;l测试是NP-hard问题技术上的困境l测试用例生成;l测试的代价和软件开发的冲突;l测试自动化;沈阳师范大学软件学院53