您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 01第一章 软件测试概述
培训的目标通过培训首先解决“做什么”的问题,其次解决“怎么做”的问题:做什么:指通过系统的讲解,明确在测试过程中,我们应该做哪些测试工作。怎么做:如何将测试理论知识融入到日常工作中,理论指导实践,准确的完成工作。1培训的效果通过培训可以解决的问题测试方法的问题测试技巧的问题测试技术的问题对测试工作理解的问题通过培训不可以解决的问题人员素质的问题资源分配的问题客户的问题具体业务知识不足的问题工作态度的问题2软件测试全景图3第一章软件测试概述IT@ANY4本课程的主要内容软件测试的背景软件缺陷和软件测试国内外软件测试的现状软件测试与软件项目的关系软件测试的发展趋势第三方测试5本章目标了解软件测试的背景和发展趋势掌握什么是软件缺陷及其特征(重点)掌握什么是软件测试(重点)掌握软件测试和软件项目的关系(重点)了解软件测试的现状和发展趋势了解什么是第三方测试6第一部分软件测试的背景软件缺陷和软件测试软件测试概述国内外软件测试的现状软件测试的发展趋势第三方软件测试7软件缺陷的由来由“飞蛾扑火”的故事引出软件缺陷现象:1947年哈佛大学制造由机械式继电器和真空管驱动,有房间那么大,体现了当时技术水平的MarkII计算机。整机运行时,突然停止工作。原因:计算机内部的一组继电器的触点之间有一只飞蛾,飞蛾受光和热吸引,飞到了触点上,被高压电击死。结果:从此以后,计算机的缺陷发生了,虽然该缺陷被消除了,但是人们却从此认识了它。8软件错误实例几组臭名昭著的软件错误用例研究迪士尼狮子王1994-1995美国航天局火星极地登陆者号探测器1999爱国者导弹防御系统1991千年虫问题大约1974北京奥运会门票预售叫停9软件错误实例迪士尼狮子王1994-19951994年秋天迪士尼公司发布了第一个面向儿童的多媒体光盘游戏---狮子王动画故事书首次进军儿童游戏市场大力促销销量可观儿童“必买游戏”11月26日迪斯尼公司的客服电话开始响个不停家长愤怒孩子们哭闹媒体曝光后证实迪斯尼公司没有对市面上投入使用的许多不同类型的PC机型进行广泛测试在少数系统下可运行但大多数公众使用的计算机系统中不能运行结论:没有做兼容性测试10软件错误实例美国航天局火星极地登陆者号探测器19991999年12月3日美国航天局的火星极地登陆者号探测器试图在火星表面着陆时失踪,故障评估委员会调查了故障,认定故障原因极可能是一个数据位被意外置位着陆计划:当探测器向火星表面降落时开启降落伞以减缓探测器的降落速度降落伞打开几秒钟后探测器的三条腿将迅速撑开锁定位置准备着陆探测器离火星地面1800米时丢弃降落伞点燃着陆推进器缓缓降落到地面故障原因:美国航天局为了省钱简化了何时关闭着陆推进器的装置,使用一个廉价的触点开关。在计算机中设置数据位控制触点开关关闭燃料,遗憾的是触点开关在很多情况下都可能被触发。测试情况:登录探测器经多个小组测试。一个小组测试飞船的脚折叠过程(未测试数据位)一个小组测试后续的着陆过程(复位计算机清除数据位)结论:没有进行接口测试11软件错误实例爱国者导弹防御系统1991首次应用在海湾战争中,对抗伊拉克飞毛腿导弹,沙特多哈击毙28名美国士兵缺陷:系统时钟的一个很小的计时错误。运行时间累积达到14小时,跟踪系统定位就不再准确。在多哈袭击中,系统已运行100多个小时结论:没有进行可靠性和稳定性测试12软件错误实例千年虫问题197420世纪70年代Dave开发工资系统因存储空间小,节省空间,压缩程序,将4位年份压缩为2位。当时他很简单的认为只有到达2000年,计算00或01年的时候才会出问题。期间程序没有更新或升级估计全球更换或升级类似的Dave程序,以解决潜在的2000年问题的费用已达数千亿美元结论:需求不明确、开发未按需求进行、测试有遗漏、没有考虑到系统的扩展性、时间与成本的关系北京奥运会门票预售叫停结论:压力测试没有通过13第二部分软件测试的背景软件缺陷和软件测试软件测试概述国内外软件测试的现状软件测试的发展趋势第三方软件测试14什么是软件缺陷定义:所谓软件缺陷,即为计算机软件或程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷。满足以下5个规则之一才称发生了一个软件缺陷(1)软件未实现产品说明书要求的功能---功能缺失(2)软件出现了产品说明书指明不应该出现的错误---错误、缺陷(3)软件实现了产品说明书未提到的功能---功能多余(4)软件未实现产品说明书虽未明确提及但应该实现的目标---对隐性需求的把握,同时发现需求的遗漏(5)软件难以理解、不易使用、运行缓慢等等---用户体验的角度15软件缺陷的特征“看不到”软件的特殊性决定了软件缺陷不容易被发现“看得到但抓不着”发现了缺陷,但不易找到产生缺陷的原因16什么是软件缺陷以计算器为例详细理解每一条规则假设计算器的产品说明书可能声称它能准确无误的进行加、减、乘、除运算?按下1+1=没有反应或得到错误结果?计算器有求平方根的功能假如产品说明书可能声称计算器永远不会崩溃、锁死或停止反应?测试员狂敲键盘,使计算器停止接受输入?电力不足时无法正确计算,需求书上没有明确规定,但测试员应该考虑到该情况,至少电力不足时应该给出提醒?按键太小、各功能键排列位置不合理、计算速度慢等等17软件缺陷的分布软件缺陷与错误分布需求,56设计,27编码,7其他,10需求设计编码其他18软件缺陷的修复成本1101005001000020040060080010001200需求设计编码测试发布缺陷发现的时间缺陷修复成本($)19什么是软件测试“软件测试”的经典定义是在规定条件下对程序进行操作,以发现错误,对软件质量进行评估软件测试是为了发现错误而执行程序的过程。20软件测试与软件项目的关系1.软件测试是为软件项目服务的,在整个项目组中要强调测试服务的概念,虽然软件测试的目的是为了发现软件中存在的错误,但是其根本目的是为了提高软件质量,降低软件风险。2.软件风险分为内部风险和外部风险。内部风险:如在即将销售发现重大错误,延迟发布,失去市场机会。外部风险:产品上线后,用户发现问题,引起索赔、产生法律纠纷、客户拒绝支付费用、甚至失去客户的风险3.软件测试只能证明软件存在错误,但不能证明软件没有错误。4.软件公司对软件项目的期望是在预计的时间、合理预算下,提交一个可交付的产品,测试的目的就是把软件的错误控制在一个可接受的范围内,不能无休止的测试下去。21软件测试的发展史1.软件测试是伴随着软件的产生而产生的,有了软件的生产和运行,就势必有软件测试2.早期的软件测试含义比较窄,基本上等同于“调试”,目的是为了验证已知的故障,由开发人员完成,介入较晚3.1957年,软件测试才开始区别于调试,成为一种发现软件缺陷的活动。但是测试仍然后于开发4.20世纪70年代“软件工程”这一词条已经开始频繁出现5.1972年贝卡莱罗纳大学首届软件测试正式会议22软件测试的发展史6.1975年JohnGoodEnough和SusanGerhart在IEEE(InstituteofElectricalandElectronicEngineers美国电气和电子工程师协会,是一个国际性的电子技术与信息科学工程师的协会,是世界上最大的专业技术组织之一)上发表了题为“测试数据选择的原理”的文章,软件测试被确定为一种研究方向7.1979年GlenforMyers的《软件测试的艺术》可称为软件测试领域的第一本最重要的专著,作为当时最好的软件测试的定义“测试是为发现错误而执行的一个程序或系统的过程”里程碑8.20世纪80年代早期开始,“质量”号角吹响,软件测试定义发生了改变,测试不单纯是一个发现错误的过程,而且包含了软件质量评价的内容。并且制定了各类标准,包括IEEE标准、美国的ANSI(AmericanNationalStandardInstitute)标准、ISO(InternationalGuideofSoftwareTesting)国际标准23软件测试的发展史9.1983年,BillHetzel在《软件测试完全指南》一书中指出“测试是以评价一个程序或系统属性为目标的任何一种活动,测试是对软件质量的度量”10.20世纪90年,测试工具开始盛行意识到工具的重要性11.2002年,Rick和Stedfan在《系统的软件测试》一书中对软件测试做了进一步的定义“测试是为了度量和提高被测软件的质量,对软件测试进行工程设计、实施和维护的整个生命周期过程”,对研究的理论化和体系化产生巨大影响12.近20年来,软件测试技术取得了很大的突破,但是其发展速度仍然落后于软件开发技术的发展速度,仍然面临很大挑战,主要表现为:24软件测试的发展史(1)软件在国防现代化、社会信息化和国民经济信息化领域的作用越来越重要,由此产生的软件测试任务也越来越繁重(2)面向对象的开发技术越来越普及,但面向对象的测试技术才刚起步(3)对于分布式系统,整体性能还不能还好的测试(4)对于实时系统,缺乏有效的测试手段(5)随着安全问题的日益突出,信息系统的安全性如何进行有效的测试与评估,成为世界性的难题25第三部分软件测试的背景软件缺陷和软件测试软件测试概述国内外软件测试的现状软件测试的发展趋势第三方软件测试26国内外软件测试的现状国外一些比较发达的国家,软件测试已经发展成为一个独立的产业,主要体现在以下几个方面:(1)软件测试在公司中占重要的地位。比尔.盖茨在马萨诸塞州技术学院演讲时提到“在微软,一个典型的开发项目组测试工程师要比开发工程师多得多,可以说我们花费在测试上的时间比编码上的时间多得多”(2)软件测试理论研究蓬勃发展,每年举办各种各样的技术年会,发表大量的软件测试研究论文,引领软件测试理论研究的国际潮流(3)软件测试市场繁荣。美国有一些专业公司开发软件测试标准与软件测试工具,比如MI、Compuware、MaCabe、Rational等等27国内外软件测试的现状国内中国的软件测试技术研究起步于“六五”期间,主要是随着软件工程的研究而发展起来的,起步比较晚,与国际先进水平相比差距较大。但是随着软件产业的蓬勃发展以及对软件质量的重视,软件测试正逐步成为一个新兴的产业:(1)很多软件公司都已经或正在建立专职的测试队伍。(2)软件测试正成为部分软件学院的一门独立课程。(3)第三方机构得到了蓬勃的发展——新浪网上海频道2006年10月26日报道据国家权威部门统计,中国软件人才缺口超过100万人,其中很大一部分为软件测试人才,缺口达到30-40万。但由于软件测试的重要性是近两年才被充分认识到的,高校教育和企业培养都还没有跟上,致使软件测试人才严重供不应求,出现跑步上岗、快速提升的状态,薪资也逐步走高,优秀的软件测试人才年薪可达十万,甚至二、三十万或更高。28国内外软件测试的现状国内29软件测试的发展趋势纵观国内外软件测试的发展现状,可以看到软件测试有以下发展趋势:(1)测试工作将进一步前移。软件测试将不仅仅是单元测试、集成测试、系统测试、验收测试,对需求的精确性和完整性的测试技术、对系统设计的测试技术将成为新的研究热点。(2)软件架构师、开发工程师、QA、测试工程师将进行更好的融合,是合作,非对立。(3)测试职业将得到充分的尊重(4)独立的软件测试部门将会越来越多的出现(5)测试外包服务将快速增长。30第三方软件测试第三方软件测试:是独立于软件公司自身测试的测试。所谓的第三方就是软件公司和软件用户之间的一方。实际上就是一个负责测试的中介机构31精彩推荐书籍《软件测试的艺术》(美)梅尔斯等著,王峰,陈杰译机械工业出版社《软件测试》(美)佩腾(Patton,R.)等著,张小松等译机械工业出版社《软件测试》(美)PaulC.Jorgensen等著韩柯杜旭涛等译机械工业出版社32Q&A1、(研讨)千年虫例子中,Dave有错吗?错在哪里?面对这种问题,软件测试人员应该怎么做?2、(问
本文标题:01第一章 软件测试概述
链接地址:https://www.777doc.com/doc-4103782 .html