收藏 分享(赏)

《软件测试技术》课件第1章 软件测试概述.pptx

上传人:bubibi 文档编号:22692462 上传时间:2024-06-27 格式:PPTX 页数:45 大小:11.28MB
下载 相关 举报
《软件测试技术》课件第1章 软件测试概述.pptx_第1页
第1页 / 共45页
《软件测试技术》课件第1章 软件测试概述.pptx_第2页
第2页 / 共45页
《软件测试技术》课件第1章 软件测试概述.pptx_第3页
第3页 / 共45页
《软件测试技术》课件第1章 软件测试概述.pptx_第4页
第4页 / 共45页
《软件测试技术》课件第1章 软件测试概述.pptx_第5页
第5页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、前言随着计算机技术的飞速发展,计算机系统的规模和复杂性急剧增加,其软件开发成本以及由于软件故障而造成的经济损失也正在增加,软件质量问题已成为人们共同关注的焦点。软件测试是对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。随着软件系统规模和复杂性的增加,进行专业化高效软件测试的要求越来越严格,软件测试职业的价值逐步得到了认可,软件测试技术已作为一门新兴产业而快速发展起来了。系统Bug引发的一系列问题水手号的致命BUG(1962)损失:1850万美元灾难:携带空间探测器的水手1号(TheMariner1)火箭前往金星,在起飞后不久就偏离了预定航线。任务控制在起飞293秒后摧毁

2、了火箭。起因:一名程序员把一条手写的公式抄写为错误的计算机代码,漏了一个横杠上标。少了横杠指明的平滑函数,软件就把速率的正规变分视为严重情况,自然就导致了错误修正,将火箭引导偏离了航向。几乎引发第三次世界大战(1983)损失:将近全人类的毁灭灾难:苏联预警系统误报美国发射了5枚弹道导弹。幸运的是,苏联的执勤官认为如果美国真的要攻击苏联的话,发射的导弹肯定不止5枚,因此他把这次明显的攻击报告为一次误报。起因:苏联软件的一个BUG,对于因阳光反射云顶而导致的错误导弹侦测的过滤失败。爱国者辜负了战士(1991)损失:造成28名士兵死亡,100人受伤灾难:第一次海湾战争期间,位于沙特的一个美国爱国者导

3、弹系统拦截入侵的伊拉克飞毛腿导弹失败。导弹摧毁了一个美军兵营。起因:爱国者反导弹系统的时钟寄存器设计为24位,因而时间的精度也只限于24位的精度。奔腾的长除法缺陷(1993)损失:4亿7500万美元及公司信誉灾难:英特尔高速的奔腾芯片进行特定范围内的浮点数除法运算时会偶尔出错。尽管该错误只会影响到极少数用户,这还是成为了一次公共关系噩梦。起因:奔腾浮点单元的除法器有一个有缺陷的除法表,丢失了1000项记录中的5项,导致取整错误。4195835.0/3145727.0得到的结果是1.33374而非1.33382,出现0.006%的偏差。阿丽亚娜火箭爆炸(1996)损失:5亿美元灾难:阿丽亚娜5号

4、,欧洲最新的无人驾驶火箭,在处女航开始数秒钟后被人为摧毁。随之一并被摧毁的还包括所运载的用于研究地球磁场如何与太阳风互动的4颗科学卫星。起因:导航计算机试图将侧面火箭速率从64位转换为16位时关闭。数字太大了,导致了溢出错误。导航计算机关闭后,控制被移交给同等的冗余单元,却也由于运行同一算法而同样失效了。火星气候探测器坠毁(1998)成本:1.25亿美元灾难:离开地球经过286天的旅程之后,火星气候探测器点燃了自己的引擎以便推进到火星轨道。引擎是点燃了,但宇宙飞船落入火星大气层太深了,几乎导致其坠毁到火星上。起因:控制探测器的推进器的软件使用英制单位(磅力,poundsofforce),而非N

5、ASA规定的公制单位(牛顿)。损失:5000亿美元灾难:正如非著名的2000年臭虫所展示出来的东西那样,汝之祸乃彼之福。商业机构向程序员支付了数十亿美元,以便修正遗留软件的小错误。由于没有出现什么重大的失误,为千年问题所做准备的成本和时间极大地影响了所有使用计算机技术的行业。起因:为了节省计算机存储空间,旧时的软件通常以2个十进制数字表示年,如用“99”表示1999。软件同时将“00”解释为1900而非2000,因此,当2000年到来时,麻烦来了。千年之殇Y2K(1999)英国希斯罗机场5号航站楼损失:但在开放日,缺发现了系统根本无法应对的情况。在接下来的10天里,约有42,000个行李无法与

6、其主人一起旅行,超过500个航班被取消。就在英国希思罗机场5号航站楼开通之前,工作人员测试了全新的行李处理系统,该系统每天都会检查大量的行李。在向公众开放终端之前,工程师们对该系统进行了彻底测试,测试件超过12,000件。它在所有测试运行中都能完美运行。真实场景中可能会遇到这样的情况:乘客在行李箱中留下重要物品时,需要手动从行李箱中取出这件行李,导致整个系统变得混乱和关闭。723甬温线特别重大铁路交通事故直接经济损失:1.9亿人民币。2011年7月23日20时30分05秒,甬温线浙江省温州市境内,由北京南站开往福州站的D301次列车与杭州站开往福州南站的D3115次列车发生动车组列车追尾事故。

7、此次事故已确认共有六节车厢脱轨,即D301次列车第1至4位,D3115次列车第15、16位。造成40人死亡、172人受伤,中断行车32小时35分。闰年、闰月、闰秒闰秒原来我们的时间计算有两种方式,一种是类似于古人看太阳位置或者用日冕的“天文法”,获得的时间称之为世界时;一种是利用原子振荡周期计算的“原子法”,我们生活中用的时间都是第一种,而计算机系统则大量使用第二种。大约5000年后“原子时”会比“世界时”快1个小时,所以就要通过闰秒来进行调整。大纲1.1计算机系统的软件可靠性问题1.2软件测试的定义1.3软件测试的分类1.4软件测试过程1.5软件测试与软件开发的关系1.6软件测试的发展历程和

8、现状1.7我国软件测试产业现状1.1计算机系统的软件可靠性问题随着对计算机需求和依赖的与日俱增,计算机系统的规模和复杂性急剧增加,使得计算机软件的数量以惊人的速度急剧膨胀。与此同时,计算机出现故障引起系统失效的可能性也逐渐增加。由于计算机硬件技术的进步,元器件可靠性的提高,硬件设计和验证技术的成熟,硬件故障相对显得次要了,软件故障正逐渐成为导致计算机系统失效和停机的主要因素。1.2软件测试的定义定义1:使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。定义2:软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批

9、测试用例,并利用这些测试用例去执行程序,以发现软件故障的过程。该定义强调寻找故障是测试的目的。定义3:软件测试是一种软件质量保证活动,其动机是通过一些经济有效的方法,发现软件中存在的缺陷,从而保证软件质量。1.3软件测试的分类按照安装程序是否安装程序是否执行行,可以分为:静静态测试的特征是测试软件而不运行测试用例,计算机并不真正运行被测试的程序动态测试的特征是计算机必须真正运行被测试的程序,通过输入测试用例,对其运行情况进行分析,判断期望结果与实际结果是否一致。1.3软件测试的分类按照测试用例的用例的设计方法方法可分为:黑盒黑盒测试是在程序接口进行的测试,它只检查程序功能是否安装规格说明书的规

10、定正常使用,程序是否能适当的接收输入数据并产生正确的输出结果信息,程序运行过程中是否能保证外部信息的完整性。黑盒测试又称为功能测试。白盒白盒测试要求测试者完全知道程序的结构和处理算法。这种算法按照程序内部的逻辑测试程序,检查程序中的主要逻辑通路是否能按照预定要求正常工作。白盒测试又称为结构测试。1.3软件测试的分类按照开开发阶段段划分,可分为:单元元测试是针对每个单元的测试,以确保每个模块都能够正常工作。集成集成测试是对已测试过的模块进行组装测试,目的在于验证与软件设计相关的程序结构问题。确确认测试是验证所开发的软件是否能够满足所有功能和性能需求。系系统测试验证软件产品能否与系统的其他部分协同

11、工作。验收收测试是检验软件产品的最后一步,要求用户与软件人员共同参与。1.3软件测试的分类按照测试实施施组织划分,可分为:开发方测试用户测试第三方测试1.3软件测试的分类按照是否使用工具是否使用工具软件件,可分为:手工手工测试是指软件测试工程师通过安装和运行被测试软件,根据测试文档的要求,运行测试用例,观察软件运行结果是否正确的过程。自自动测试是指使用各种软件测试工具,通过运行事先编写的软件测试脚本等文件,测试被测试软件,自动产生测试报告的过程。1.4软件测试过程1.5软件测试与软件开发的关系1.5.1软件开发过程正规的软件开发过程一般包括六个阶段,即:第一阶段项目规划第二阶段需求分析第三阶段

12、系统设计第四阶段程序编写第五阶段软件测试第六阶段运行和/维护这六个阶段构成了软件的生存周期。1.5.2软件测试在软件开发中的作用项目规划阶段:负责整个测试阶段的监控。需求分析阶段:确定测试需求分析,制定系统测试计划。测试需求分析是指产品生存周期中测试所需的资源、配置、各阶段评审通过的标准等。概要设计和详细设计阶段:制定集成测试计划和单元测试计划。编码阶段:开发相应的测试代码或测试脚本。测试阶段:实施测试,并提交相应的测试报告。1.5.3软件测试过程模型软件测试过程V模型特点:非常明确地表明了测试的不同级别,清晰地展示了软件测试与开发之间的关系软件测试过程W模型1.5.4软件测试环境的搭建测试环

13、境是指用来运行软件的环境。测试环境硬件软件网络数据准备测试工具硬件环境主要是指PC机、笔记本电脑、服务器、各种移动终端等例如现要测试微软的Word2013这一款软件,那么是在PC机上测试还是在笔记本电脑上测试?如果在PC机上测试,那么CPU是奔腾2.4G,还是酷睿I33.3G?内存是512M,还是4G?不同的机器类型,不同的机器配置,必然会导致不同的反应速度,因此测试一款软件时一定要考虑硬件配置。1.5.4软件测试环境的搭建软件环境主要是软件运行的操作系统。比如Word2013是在WindowsXP下检测,还是在Windows7下检测,这里可能会有兼容性的问题。网络环境主要指的是C/S结构还是

14、B/S结构。例如要测试微软的Outlook2013这一款软件,那么是在局域网里测,还是在互联网里测?如果在局域网中测,那么是在10M的局域网里测,还是在1000M的局域网里测?不同的网络类型,不同的传输速度,必然会导致不同的收发速度,因此测试一款软件时也不能忽视网络的因素。1.5.4软件测试环境的搭建网络环境主要指的是C/S结构还是B/S结构。例如要测试微软的Outlook2013这一款软件,那么是在局域网里测,还是在互联网里测?如果在局域网中测,那么是在10M的局域网里测,还是在1000M的局域网里测?不同的网络类型,不同的传输速度,必然会导致不同的收发速度,因此测试一款软件时也不能忽视网络

15、的因素。测试工具目前市场上的测试工具很多,可分为静态测试工具、动态测试工具、黑盒测试工具、白盒测试工具、测试执行评估工具、测试管理工具等。因此,对测试工具的选择是一个比较重要的问题,应根据测试需求和实际条件来选择已有的测试工具,或购买、自行开发相应的测试工具。1.5.4软件测试环境的搭建搭建软件测试环境还应注意以下几点:尽量模拟用户的真实使用环境;测试环境中尽量不要安装其它与被测软件无关的软件,但最好安装杀毒软件,以确保系统没有病毒;测试环境应与开发环境独立。1.6软件测试的发展历程和现状1.6.1发展历程上世纪50年代,英国著名的计算机科学家图灵就给出了软件测试的原始定义:测试是程序正确性证

16、明的一种极端实验形式。1972年,美国北卡来纳大学召开了首次软件测试技术会议,是软件测试与软件质量研究人员和开发人员的第一次聚会1975年,JohnGoodEnough和SusanGerhart在IEEE上发表了测试数据选择的原理的文章,软件测试被确定为一种研究方向。1979年,GlenfordMyers的软件测试艺术,对测试做了定义:测试是为发现错误而执行的一个程序或者系统的过程。20世纪80年代早期,“质量”的号角开始吹响。软件测试定义发生了改变,测试不单纯是一个发现错误的过程,而且包含软件质量评价的内容。制定了各类标准。1.6.1发展历程1983年,BillHetzel在软件测试完全指南

17、中指出:测试是以评价一个程序或者系统属性为目标的任何一种活动,测试是对软件质量的度量。20世纪90年代,测试工具盛行起来。1996年提出测试能力成熟度TCMM(TestingCapabilityMaturityModel)、测试支持度TSM(TestabilitySupportModel)、测试成熟度TMM(TestingMaturityModel)。到了2002年,Rick和Stefan在系统的软件测试一书中对软件测试做了进一步定义:测试是为了度量和提高被测软件的质量,对测试软件进行工程设计、实施和维护的整个生命周期过程。1.6.2发展现状就目前软件工程发展的状况而言,软件测试仍然是较为薄弱

18、的一个方面。不仅测试理论,已有的测试方法也不能满足当前软件开发的实际需求。尤其是进入20世纪90年代后,计算机技术日趋成熟,软件应用范围逐步扩大,软件规模和复杂性急剧增加,与此同时,计算机出现故障引起系统失效的可能性也逐渐增加。由于计算机硬件技术的进步,元器件可靠性的提高,硬件设计和验证技术的成熟,硬件故障相对显得次要了,软件故障正逐渐成为导致计算机系统失效和停机的主要因素。1.7我国软件测试产业现状随着软件外包行业的逐渐兴起和人们对软件质量保障意识的加强,中国软件企业已开始认识到,软件测试的广度和深度决定了中国软件企业的前途命运。以占中国软件外包总量近85%的对日软件外包来说,业务内容基本都

19、针对测试环节。软件外包中对测试环节的强化,直接导致了软件外包企业对测试人才的大量需求。近年来,几乎所有的软件企业均存在不同程度的测试人才缺口,软件测试工程师已成为了亟待补充的关键技术工种之一。IBM、百度、华为、惠普、盛大网络、联想集团等国内外大型IT企业均表现出对成熟软件测试人才的期盼,而微软、三星、西门子、思科、华为3COM等多家国内外IT巨头则相继在全国各大高校招兵买马,并把软件测试人才的招聘放在了突出的位置。国内软件测试人才紧缺的现状已经凸现出来。1.7.1对软件测试的误解误传1:测试很无聊一件单调且无聊的事,作为测试的一个传闻,频繁见诸于主流媒体文章中,这些文章把测试者比作软件产业的

20、装配线工人。而事实上,测试工作每天都呈现给我们新的令人兴奋的挑战。MichaelBolton的一段精彩摘引很好的概括了这一点:“测试是一件我们以寻找新信息为动机所做的事。测试是一个探索、发现、调查、学习的过程。当我们以评估,或者认知预料之外的问题为目的地配置、操作和观察一个产品的时候,那么我们在测试。当我们尽力去寻找产品及其设计的程度和限制的时候,当我们被那些尚未回答甚至尚未问过的问题所驱使着的时候,我们在测试。”误传2:测试简单因为一直以来用户每一天都会发现一些漏洞,所以常常有人认为测试不会很难。而事实上,测试是一件非常复杂而且并不适合常人的技术。这是来自Google的PatrickCope

21、land对一个卓越的测试员所应有品质的评论:那是心态与激情。从我所做过的100个访问来看,“卓越”可以被提炼为:1)一种发现问题的独特敏感性;以及2)伴随这种敏感性产生的对于测试的激情。换句话说,他们喜欢测试而且善于做这件事。他们也明白测试带来的挑战往往等于或者大于编程所带来的挑战。一个拥有测试基因与正确态度的测试员总能找到工作。他们是金子。误传3:测试人员只寻找漏洞是的,测试员确实寻找漏洞,但那不是他们唯一的目的。这是来自freesoftwaretesting.info的Ankur对于这个传闻的一个很好的简评:对于测试员角色的这种看法是非常狭隘而且对客户也没有好处。测试员是系统、应用或者被测

22、产品方面的专家。与负责一个特定功能或者模块开发人员不同,测试人员明白整个系统如何工作来达到客户目标。测试人员知道产品带来的附加值,环境对于生产效率的影响,以及发挥产品最大功效的最佳途径。误传4:机器将会淘汰人工测试员随着自动化技术的进步,经常有人认为将来有一天计算机将会淘汰人工测试员。然而因为一个应用的最终用户既不是机器人也不是机器,而是大活人,所以按理说人工测试将一直扮演着重要的角色。这是测试作家JamesWhittaker对于人工测试重要性的看法:“测试自动化常被用来解决庞大的问题。因为要做的太多,这庞大的范围使得自动化脆弱而不可靠。有些特定的事情自动化擅长而有些特定的事情人更擅长,这样看

23、上去一个结合二者的方法也许更好.我想要的是自动化使我作为一个人的工作更加简单。自动化更擅长分析数据与注意模式。它并不善于确定相关性和判断调用。幸运的是人类擅长判断。”误传5:测试员与开发人员不好相处不难看出这个传闻流传的原因。测试权威JamesBach曾经写道:“任何做了一些工作并且上交这些工作等待评判的人都将会觉得自身被评判。这种感觉并不愉快。而且问题会被那些轻描淡写的声称这个或那个奈特都是个“故障”的测试人员复杂化,好像任何他们个人不喜欢的事都是每个人的质量问题。”事实上不被大多数人所知的是许多测试人员曾经都是开发人员(而且反之亦然),所以对于每个阵营面临的挑战都有相互的理解与了解。虽然并

24、非所有的公司都是这样,但以我的经验来看,说大多数测试员与开发人员都不好相处是不对的。如果发布的软件有质量问题,那是软件测试人员的错。软件测试技术要求不高,至少比编程容易多了。软件测试随便找一个能力差的人就能做。有时间就多测试一些,来不及就少测试一些。软件测试是测试人员的事,与开发人员无关。设计实现测试,软件测试事开发后期的一个阶段。1.7.2软件测试职业和职位软件测试员软件测试工程师/程序分析员高级软件测试工程师/程序分析员软件测试组负责人软件测试/编程负责人软件测试/质量保证/项目经理1.7.3软件测试职业素质软件测试员的目标:发现潜在的软件缺陷软件测试员应具备的素质:具有探索精神具有创造性

25、坚持不懈精神故障排除专家判断准确追求完美沟通能力1.7.4软件测试人才的现状1、软件测试人员的合理比例在软件产业发达的国家:软件测试在人员配备和资金投入方面占据相当的比重。微软为打造Windows2000,1700多个开发人员,以及3200个测试人员,开发和测试人员之比约为3:5。HP公司的测试人员和开发人员的比例为1:1,这是很多先进软件企业通常的人员配比。在Google(谷歌)公司,则测试人员与开发人员比例则很低,据谷歌公司的测试经理介绍,为1:10。在国内:企业往往忽视软件测试,很多企业都没有软件测试部门,甚至不设置软件测试的岗位,造成产品质量得不到保证。测试人员大都不到开发人员的5%,随着产业和企业的发展,企业必然需要大量的测试人员。1.7.4软件测试人才的现状(续)2、软件测试人才紧缺软件测试人才需求快速增长,体现在:(1)中国软件产业正在快速增长,需要大量软件相关人才;(2)软件企业的发展要求测试人才达到一个合适的比例。近一两年软件企业开始认识到软件测试对于提高软件质量的重要性,开始重视软件测试,但由于历史的原因,找不到合适的软件测试人员。

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

当前位置:首页 > 资格认证 > 计算职称

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报