《11软件测试基础知识1.ppt》由会员分享,可在线阅读,更多相关《11软件测试基础知识1.ppt(48页珍藏版)》请在三一办公上搜索。
1、软件测试基础,1-1 软件测试基础知识1,软件测试行业的优势?软件测试的根本目的?QA,你懂得?,2,回顾,什么是软件缺陷?缺陷产生的原因?什么是软件测试?,本节学习内容,软件无处不在,先看一下软件在我们生活中的位置及作用:,公路上的代码,带翼的软件,“设计飞机需要数千名专家,加上许多人工智能,在完成之前,美国和日本的1700个工作站已经运行了专门的CAD软件,一旦飞机飞在空中,有400万条完全没有错误的指令在驱动他。”,“当您启动BMW7系列时,您激活了20兆字节的计算能力这比阿波罗11号的登月之旅中所用的还要多。”,软件无处不在,5,衣,住,食,行,软件无处不在,6,抢票神器,助你回家,软
2、件软件无处不在,实现家电智能控制必不可少,Internet of Things,软件无处不在,有了PS,你会发现,什么都可以改变,什么是软件缺陷?,由此得出,软件已经成为我们的工作、生活中不可或缺的重要部分。软件质量已经成为决定产品质量或企业成败的最重要的因素。软件不能正常工作所带来的问题对我们的工作和生活带来很多不便,甚至会造成时间、金钱、信誉等方面的重大损失,严重时会危及生命。,臭名昭著的软件错误案例,什么是软件缺陷?,迪斯尼并不总是带来笑声,1994-1995,1994年圣诞节前夕,迪斯尼公司发布了第一个面向儿童的多媒体光盘游戏“狮子王童话”圣诞节后的第一天,迪斯尼客户支持部电话开始响个
3、不停,不断有人咨询、抱怨为什么游戏总是安装不成功,或没法正常使用这个游戏软件只能在少数系统中正常运行,兼容性问题,什么是软件缺陷?,11,英特尔奔腾浮点除法缺陷,1994,(41958353145727)3145727-4195835=?,在计算机的“计算器”程序中输入以上算式,如果结果是0,那表明你的计算机没有问题。测试工程师在芯片发布之前的内部测试时已发现了这个问题,但管理层认为没有严重到要修复的程度。用户在1994年10月30日报告了这个缺陷,Intel承诺更换有问题的芯片,但要求用户必须证明自己受到了软件缺陷的影响。最终,Intel公开道歉并花费4亿多美元更换坏芯片。,什么是软件缺陷?
4、,12,美国航天局(NASA)火星极地探测器着陆坠毁,1999,在设计中,在飞船的脚上装了一个的触点开关,当飞船的脚着地时,触发开关,通过计算机中设置的一个数据位来关掉燃料。然而,在飞船的脚张开时,由于震动,开关被触发,并通过数据位关掉燃料,没有反助推器的帮助,飞船下坠1800米后冲向地面必然坠毁。原因:其中一个小组测试飞船的脚落地过程,并不注意着地数据位(接口)是否置位,另一个小组测试此后的着陆过程,他们每次测试前都要重置计算机、清除数据位。他们从未一起工作过!没有合在一起测试过。,系统测试 衔接问题,什么是软件缺陷?,13,爱国者导弹防御系统,1991,1991年2月25日在海湾战争中,美
5、国的爱国者导弹在发射时产生了0.33秒的时间误差,这个软件故障扰乱了导弹的雷达跟踪系统,结果拦截失败,被沙特阿拉伯发射的飞毛腿导弹击中,造成美军28名士兵死亡、98人受伤。1991年2月16日,制造商向美国陆军提供了更新软件。这个软件最终在飞毛腿导弹击中军营后的一天才运抵部队。,当爱国者导弹防御系统的时钟累计运行超过14小时后,跟踪定位系统就不准确。在这场战役中,爱国者系统已经连续运行超过100个小时,导致了累计的时间误差。,系统时钟误差积累,什么是软件缺陷?,14,国内的软件失效案例,360存在严重缺陷,后果导致系统崩溃(查杀木马后无法查看桌面和任务栏),什么是 软件缺陷?,软件留有“后门”
6、,什么是软件缺陷?,软件缺陷,软件无处不在,有软件的地方就必定存在缺陷!,缺点:defect故障:fault问题:problem、issue错误:error毛病:incident异常:anomaly,偏差:variance失败:failure矛盾:inconsistency特殊:feature缺陷:bug,软件测试人员,在不同环境下用不同的术语描述软件失败的现象:,什么是软件缺陷?,什么是软件缺陷?,术语:缺陷(Defect),可能会导致软件组件或系统无法执行其定义功能的瑕疵,如错误的语句或数据定义。缺陷可能会导致失效(Failure)。,术语:错误(Error),人为的、产生不正确结果的动作
7、。比如程序逻辑错误、代码错误、文档错误等,术语:故障(Fault),指缺陷在软件运行时的表现形式。故障一定是缺陷,但缺陷不一定是故障。,术语:失效(Failure),组件或系统与预期的交付、服务或结果之间存在的实际偏差。,什么是 软件缺陷?,缺陷因果链,“千年虫”事件,什么是 软件缺陷?,请思考:系统中一旦引入了缺陷,一定会引起失效吗?请用之前讲过的例子说明!,什么是软件缺陷?,判别缺陷之前需了解的一个术语产品说明书 产品说明书(product specification)软件开发小组的一个协定,定义了要开发的产品的功能和特征,细化了产品的细节,产品如何反应,要做什么,不做什么等。这种协定的范
8、围从口头说明到正式书写的文档有多重形式。,怎么样去判别软件缺陷?,什么是软件缺陷?,怎么样去判别软件缺陷?,只要符合下列5个规则的,我们称之为软件缺陷:1.软件未达到产品说明书标明的功能。2.软件出现了产品说明书指明不会出现的错误。3.软件功能超出产品说明书指明范围。4.软件未达到产品说明书虽未指出但应达到的目标。5.软件测试员认为软件难以理解、不易使用、运行速度缓慢,或者最终用户认为不好。,什么是 软件缺陷?,23,讨论1、假如计算器的产品说明书声称能够准确无误地进行加、减、乘、除运算。测试:测试员拿到计算器后,按下(+)键,结果什么反应也没有。这算缺陷吗?,什么是 软件缺陷?,24,讨论2
9、、假如在对计算器的加、减、乘、除进行测试完后,测试员发现该计算器还可以求平方根,而说明书没有提此功能。这是哪种缺陷呢?,什么是 软件缺陷?,25,讨论3、假如计算器的产品说明书声称计算器永远不会崩溃、死锁或停止反应。测试:测试员拿到计算器后,狂敲键盘使计算器停止接受输入。这算缺陷吗?,什么是 软件缺陷?,26,讨论4、假如软件测试员觉得按键太小;“=”键布置的位置使其极其不好按;也许在明亮光下显示屏难以看清。这是哪种缺陷呢?,什么是 软件缺陷?,27,讨论5、在测试计算机时,会发现电池没有电会导致计算不正确。没有人考虑到这种情况下计算机如何反应,而是假定充足了电。测试应该考虑到让计算器持续工作
10、到电池没电。电力不足时无法正确使用,但产品说明书未指出这个问题。这是何种缺陷呢?,什么是软件缺陷?,28,缺陷产生的原因?,主要根源是什么?,什么是软件缺陷?,29,缺陷产生的原因?,29,产生软件缺陷的原因很多,其中最大的原因是软件产品规格说明书(Product Specification),Figure 1.1.Bugs are caused for numerous reasons,but,in this sample project analysis,the main cause can be traced to the specification.,什么是软件缺陷?,为什么产品说明书
11、是最大的罪魁祸首,什么是软件缺陷?,为什么产品说明书是最大的罪魁祸首,-根本就没有产品说明书-产品说明书描述不够彻底-产品说明书频繁变化-不能及时与整个开发团队沟通“If you cant say it,you cant do it.”,什么是软件缺陷?,软件缺陷的第二大来源是设计,随意易变沟通不足,32,什么是软件缺陷?,33,软件为什么会有缺陷呢?(Some reasons-but not all),MiscommunicationNo communicationSoftware complexityProgramming errorsPoor requirementsChanged re
12、quirementsTime pressuresChanged environments,Poorly documented codeMisuse of toolsErrors in system support softwarePoor planningEgosLack of experienceInadequate testing,什么是软件缺陷?,软件缺陷在什么时候修复最经济?,什么是软件缺陷?,软件缺陷的修复(fix)费用,在软件开发的各个阶段,都有可能发现缺陷,但不同的时间发现缺陷,其消除缺陷的费用却有着非常大的区别。随着时间的推移,缺陷的修复费用呈几何级数增长。,什么是软件缺陷?,
13、软件缺陷的修复费用,Figure 1.2.The cost to fix bugs can increase dramatically over time.,什么是软件测试?,软件测试的定义软件测试的目的软件测试的对象测试与调试的区别,什么是软件测试?,1979,G.J.Myers在他的软件测试的艺术一书中给出了软件测试的定义:程序测试是为了发现错误而执行程序的过程。狭义的定义,其主要目的是发现缺陷。,什么是软件测试?,G.J.Myers三个关于测试的重要观点,测试是为了证明程序有错,而不是证明程序正确。一个好的测试用例在于它能发现以前未发现的错误。一个成功的测试是发现了以前未发现的错误的测试
14、。,Q:我按照用户的需求测试了实际的系统,却一个缺陷也没有发现,我所做的测试工作有意义吗?,A:当然有意义,因为我至少证明了该系统基本符 合用户的需求。,什么是软件测试?,广义的定义,软件测试是指软件产品生存周期内所有的检查、评审和确认活动,如设计评审和系统测试。在软件生命周期早期设计测试的思考过程可防止将缺陷引入代码,对文档的审查也同样可防止将缺陷引入代码。,什么是软件测试?,验证和确认(V&V),软件测试通过验证和确认活动来进行。验证(Verification):是保证软件符合产品说明书的过程。Are we building the system right?确认(Validation):
15、是保证软件满足用户要求的过程。Are we building the right system?,验证:“我们是否正确地完成了产品?”确认:“我们是否完成了正确的产品?”-Boehm,问题讨论,玩电脑游戏是不是软件测试?玩手机是不是软件测试?用户使用软件是不是软件测试?,什么是软件测试?,软件测试的对象,软件测试贯穿于软件定义和开发的整个期间。需求分析,概要设计,详细设计,以及程序编码等各个阶段所得到的文档,包括需求规格说明,概要设计规格说明,详细设计规格说明以及源程序,都是软件测试的对象.,软件测试程序测试,什么是软件测试?,软件测试的目的,尽早发现软件产品中的缺陷并确保其被修复评估、确认软件的质量预防缺陷具体实施软件测试时,要在发现缺陷和保证质量两个目的之间做出平衡。,什么是软件测试?,测试与调试,测试:Test目的是发现缺陷,通常在受控的条件下(正常的条件和异常的条件)运行程序并评估结果。调试:Debug目的是定位并修复故障,属于开发活动。调试是软件开发人员的工作,1、什么是软件缺陷?2、软件缺陷产生的原因。3、软件测试的概念。4、软件测试的对象及目的。5、测试和调试的区别,以组为单位完成以下任务:(100分)1、软件质量模型,软件产品有哪些质量属性?2、尝试举例说明每个软件质量属性3、思考软件质量保证与测试之间的关系4、你知道哪些软件测试的原则?,
链接地址:https://www.31ppt.com/p-5025197.html