软件测试技术-2概述课件_第1页
软件测试技术-2概述课件_第2页
软件测试技术-2概述课件_第3页
软件测试技术-2概述课件_第4页
软件测试技术-2概述课件_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件测试概述-2康玲软件测试概述-2康玲课程内容回顾软件测试的引入软件测试的可靠性问题软件测试的发展软件缺陷软件缺陷案例描述软件失败的术语什么是软件缺陷为什么会产生软件缺陷软件缺陷修复的费用课程内容回顾软件缺陷案例1事件迪斯尼的狮子王,1994年—1995兼容性测试1994年秋,迪斯尼公司发布第一个面向儿童的多媒体光盘游戏LionKingAnimatedStorybook(狮子王动画故事书)。销量可观,但不久爆发问题,用户买回家后光盘不能正确运行,最终导致退货并赔偿。原因——兼容性问题未对市场上的各种PC机进行正确的测试,仅在自己的开发系统中做测试。软件在少数系统中工作正常。软件缺陷案例1事件软件缺陷案例2事件1999年火星气象探测器(MarsClimateOrbiter)到达火星之后不久就消失;此项工程成本耗费3.27亿美元,还不包括损失的时间(该探测器从发射到抵达火星将近一年时间)原因地面系统软件和飞行器上软件分别使用公制和英制两种单位。软件缺陷案例2事件软件缺陷案例3事件1996年6月4日,欧洲阿丽亚娜5型火箭第一次发射,原计划将运送4颗太阳风观察卫星到预订轨道,但因软件引发的问题导致火箭在发射39秒后偏轨,从而激活了火箭的自我摧毁装置。阿丽亚娜5型火箭和其他卫星在瞬间灰飞烟灭。原因代码重用代码符合标准C语言,但在运行过程中,程序员将一个64位浮点值转换为16位有符号整数值时,超出了16位整数的表示范围,造成内存溢出,而这个异常未得到正确解决。int8a;int32b;a=b;软件缺陷案例3事件软件缺陷案例4事件Intel奔腾浮点除法软件缺陷,1994年Thomas博士在他的奔腾PC机上做除法试验:(4195835/3145727)*3145727-4195835,结果不为0原因软件缺陷.英特尔声称,奔腾处理器出现这一问题的可能性微乎其微,因为即使是经常用到浮点运算的用户,也要每两万七千年才会遇上一次计算错误。但是,英特尔的技术性解释却引来媒体和公众更多的口诛笔伐。最终,英特尔当时的CEO

(AndyGrove)向公众道歉,并承诺为用户更换奔腾处理器。软件缺陷案例4事件爱国者导弹防御系统,1991年1991年海湾战争,美国爱国者导弹防御系统出现失误,炸死28名本国士兵。原因:软件缺陷导致跟踪系统失去了精确度。千年虫问题20世纪70年代,为了节省系统存储空间,将4位的年份用后两位来存储。据估计,世界各地检查2000年兼容问题、解决2000年计算错误花费了数百亿美元。原因:软件缺陷。爱国者导弹防御系统,1991年软件缺陷案例2009年2月份Google的Gmail故障,导致用户几个小时内无法访问邮箱。原因:Google数据中心之间的负载均衡软件的Bug引起。软件缺陷案例2009年2月份Google的Gmail故障,导神舟七号成功发射2008年北京飞控中心和飞船系统、航天员系统、应用系统一道,共同制定了267个故障对策。除了几千页的技术文档,神七涉及的计算机指令有150多万

为了保证系统的可靠性、稳定性和正确性,飞控中心做了3万多条测试用例。神舟七号成功发射2008年描述软件失败的术语——bug第一个有记载的bug是编译器的发明者格蕾斯.哈珀发现的。1945年9月9日,下午3点,哈珀中尉正领着他的小组构造一个称为”马克二型”的计算机.这还不是一个完全的电子计算机,使用了大量的继电器,是一种电子机械装置.突然”马克二型”死机了.技术人员试了很多办法,最后定位到第70号继电器出错.哈珀观察这个出错的继电器,发现一只飞蛾躺在中间,已经被继电器打死.从此以后,人们将计算机错误戏称为虫子(bug),而把找寻错误的工作称为(debug).描述软件失败的术语——bug第一个有记载的bug是编译器的发描述软件失败的术语描述软件缺陷的术语:Defect缺陷Variance偏差Fault故障Problem问题Failure失效Error错误Bug臭虫Anomaly异常对于测试人员来说,任何和所期望的偏差都应该上报。描述软件失败的术语描述软件缺陷的术语:软件缺陷术语辨析软件错误(softwareerror)人难免犯错误,必然给软件留下不良痕迹,是一种人为过程,相对软件本身,是一种外部行为.软件缺陷(softwaredefect)指存在于软件中的偏差,如少一逗号,多一语句等,其结果是运行于某一特定条件时出现故障,称缺陷被激活.软件故障(softwarefault)一种动态行为,在软件运行过程中出现的一种不希望或不可接受的内部状态,若无适当措施及时处理,便产生软件失效.软件失效(softwarefailure)指软件运行时产生的不可接受的外部行为结果.软件缺陷术语辨析软件错误(softwareerror)2.什么是软件缺陷软件未达到产品说明书中已经标明的功能;软件出现了产品说明书中指明不会出现的错误;软件未达到产品说明书中虽未指出但应当达到的目标;软件功能超出了产品说明书中指明的范围;软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。软件缺陷的定义2.什么是软件缺陷软件未达到产品说明书中已经标明的功能;软件计算器的例子计算器说明书:该计算器将准确无误地进行加、减、乘、除运算。计算器不会出现崩溃、死锁或停止反应。2+3,没有反应?(2,3,+没有反应?)随意敲击键盘后,没有了反应?因为电池没有电,所以计算错了?还能计算某数的平方根?按键很小、显示屏看不清楚计算器的例子计算器说明书:该计算器将准确无误地进行加、减、乘2022/12/215软件缺陷:正式定义与分类软件产品中违背了软件产品需求的实现,则称为软件缺陷。软件缺陷从应用意义上可分为三类:语义错误语法错误功能缺陷基础概念2022/12/115软件缺陷:正式定义与分类软件产品中违背2022/12/216语义错误软件是需求驱动的一系列变换过程的输出。如果在变换过程中,对输入理解错误,则会产生错误的输出,这类错误称之为语义错误。语义错误是一种偏离错误,如需求定义偏离了用户需求,设计偏离了需求定义等。偏离既包括正偏离(超出需求)也包括负偏离(不满足需求)。根据软件缺陷分布统计,需求定义错误和设计错误分别占整个缺陷的56%和27%。基础概念2022/12/116语义错误软件是需求驱动的一系列变换过程2022/12/217语法错误软件产品是通过某种描述语言表达的结果,如通过UML描述的设计,通过Java描述的程序等。错误地使用了这些语言或违背了这些语言的标准,则称为语法错误。根据软件缺陷分布统计,代码错误占整个缺陷的7%。基础概念2022/12/117语法错误软件产品是通过某种描述语言表达2022/12/218功能缺陷有些功能在通常情况下(甚至在大部分绝大部分情况下)都可以正常运行,但在一些特定条件下,则会出现异常,甚至会引起系统崩溃或严重的安全问题,例如缓冲区溢出。基础概念2022/12/118功能缺陷有些功能在通常情况下(甚至在大2022/12/219典型的缺陷类型从产生缺陷的原因上分,典型的缺陷类型需求解释有错误用户定义错了需求需求记录错误设计说明有误编码说明有误程序代码有误数据输入有误测试错误问题修改不正确正确的结果是由于其它的缺陷产生的2022/12/119典型的缺陷类型从产生缺陷的原因上分,练习启动windows计算器程序,输入5,000-5=,观察结果,这是软件缺陷吗?为什么?在千年虫案例中,这个程序员是否有错?练习启动windows计算器程序,输入5,000-5=,观察3.为什么会产生软件缺陷?(1)产品需求说明书(2)设计方案(3)编写代码(4)其他软件产品说明书(需求)56%其他10%编写代码7%设计27%图1-1软件缺陷产生的原因分布3.为什么会产生软件缺陷?(1)产品需求说明书软件产品说明书2022/12/222软件缺陷的罪魁祸首:产品规格说明书原因:需求不清需求错误表达错误或歧义需求变化

…2022/12/122软件缺陷的罪魁祸首:产品规格说明书2022/12/223软件缺陷的第二大来源:设计方案原因:设计粗糙设计缺陷表达不清、歧义设计技术不成熟

…2022/12/123软件缺陷的第二大来源:设计方案2022/12/224软件缺陷的第三大来源:代码错误原因:软件的复杂性说明文档不足编程风格、可维护性低级错误

…2022/12/124软件缺陷的第三大来源:代码错误2022/12/225其它原因进度压力资源不足采用的技术成熟度人员技术力…测试错误。实际工作中上报的缺陷中有少部分是测试错误,属错报。这也是正常的。2022/12/125其它原因进度压力2022/12/226易导致缺陷的“测试原因”测试目标定义错误在开发生命周期中,错误的选择了测试介入时期选择了低效的测试技术测试人员专业知识培训不够,工作低效计划不够详细,测试的随意性很大测试人员同开发人员沟通困难2022/12/126易导致缺陷的“测试原因”2022/12/227软件缺陷引入阶段统计许多缺陷是在早期阶段引入的资料来源:AppliedSoftwareMeasurement,CapersJones2022/12/127软件缺陷引入阶段统计许多缺陷是在早期阶2022/12/228为什么缺陷很难被找出?看不到(不可预知)看到但是抓不到2022/12/128为什么缺陷很难被找出?看不到(不可预知4.软件缺陷修复的费用软件在从需求、设计、编码、测试一直到交付用户公开使用后的过程中,都有可能产生和发现缺陷。随着整个开发过程的时间推移,更正缺陷或修复问题的费用呈几何级数增长。020406080100编制说明书设计阶段编写代码测试发布4.软件缺陷修复的费用软件在从需求、设计、编码、测试一直到交$1$10$100$1000+specificationdesigncoderelease随着整个开发过程的时间推移,在需求阶段没有被修正的错误有可能不断扩展,到设计阶段、编码和测试阶段,甚至到维护阶段$1$10$100$1000+specificationde2022/12/231尽早消除软件缺陷的价值来自上个步骤的缺陷放大了的缺陷,1:X本步骤新产生的缺陷缺陷检测有效性百分比传给下个步骤的缺陷来自上个步骤的缺陷缺陷数量的放大每个进入下个步骤的缺陷都可能引起下个步骤中的多个缺陷,导致消缺成本的剧增。缺陷发现越晚,纠正费用越高2022/12/131尽早消除软件缺陷的价值来自上个步骤的缺作业查找一个软件缺陷的案例,写在作业本上作业查找一个软件缺陷的案例,写在作业本上软件测试概述-2康玲软件测试概述-2康玲课程内容回顾软件测试的引入软件测试的可靠性问题软件测试的发展软件缺陷软件缺陷案例描述软件失败的术语什么是软件缺陷为什么会产生软件缺陷软件缺陷修复的费用课程内容回顾软件缺陷案例1事件迪斯尼的狮子王,1994年—1995兼容性测试1994年秋,迪斯尼公司发布第一个面向儿童的多媒体光盘游戏LionKingAnimatedStorybook(狮子王动画故事书)。销量可观,但不久爆发问题,用户买回家后光盘不能正确运行,最终导致退货并赔偿。原因——兼容性问题未对市场上的各种PC机进行正确的测试,仅在自己的开发系统中做测试。软件在少数系统中工作正常。软件缺陷案例1事件软件缺陷案例2事件1999年火星气象探测器(MarsClimateOrbiter)到达火星之后不久就消失;此项工程成本耗费3.27亿美元,还不包括损失的时间(该探测器从发射到抵达火星将近一年时间)原因地面系统软件和飞行器上软件分别使用公制和英制两种单位。软件缺陷案例2事件软件缺陷案例3事件1996年6月4日,欧洲阿丽亚娜5型火箭第一次发射,原计划将运送4颗太阳风观察卫星到预订轨道,但因软件引发的问题导致火箭在发射39秒后偏轨,从而激活了火箭的自我摧毁装置。阿丽亚娜5型火箭和其他卫星在瞬间灰飞烟灭。原因代码重用代码符合标准C语言,但在运行过程中,程序员将一个64位浮点值转换为16位有符号整数值时,超出了16位整数的表示范围,造成内存溢出,而这个异常未得到正确解决。int8a;int32b;a=b;软件缺陷案例3事件软件缺陷案例4事件Intel奔腾浮点除法软件缺陷,1994年Thomas博士在他的奔腾PC机上做除法试验:(4195835/3145727)*3145727-4195835,结果不为0原因软件缺陷.英特尔声称,奔腾处理器出现这一问题的可能性微乎其微,因为即使是经常用到浮点运算的用户,也要每两万七千年才会遇上一次计算错误。但是,英特尔的技术性解释却引来媒体和公众更多的口诛笔伐。最终,英特尔当时的CEO

(AndyGrove)向公众道歉,并承诺为用户更换奔腾处理器。软件缺陷案例4事件爱国者导弹防御系统,1991年1991年海湾战争,美国爱国者导弹防御系统出现失误,炸死28名本国士兵。原因:软件缺陷导致跟踪系统失去了精确度。千年虫问题20世纪70年代,为了节省系统存储空间,将4位的年份用后两位来存储。据估计,世界各地检查2000年兼容问题、解决2000年计算错误花费了数百亿美元。原因:软件缺陷。爱国者导弹防御系统,1991年软件缺陷案例2009年2月份Google的Gmail故障,导致用户几个小时内无法访问邮箱。原因:Google数据中心之间的负载均衡软件的Bug引起。软件缺陷案例2009年2月份Google的Gmail故障,导神舟七号成功发射2008年北京飞控中心和飞船系统、航天员系统、应用系统一道,共同制定了267个故障对策。除了几千页的技术文档,神七涉及的计算机指令有150多万

为了保证系统的可靠性、稳定性和正确性,飞控中心做了3万多条测试用例。神舟七号成功发射2008年描述软件失败的术语——bug第一个有记载的bug是编译器的发明者格蕾斯.哈珀发现的。1945年9月9日,下午3点,哈珀中尉正领着他的小组构造一个称为”马克二型”的计算机.这还不是一个完全的电子计算机,使用了大量的继电器,是一种电子机械装置.突然”马克二型”死机了.技术人员试了很多办法,最后定位到第70号继电器出错.哈珀观察这个出错的继电器,发现一只飞蛾躺在中间,已经被继电器打死.从此以后,人们将计算机错误戏称为虫子(bug),而把找寻错误的工作称为(debug).描述软件失败的术语——bug第一个有记载的bug是编译器的发描述软件失败的术语描述软件缺陷的术语:Defect缺陷Variance偏差Fault故障Problem问题Failure失效Error错误Bug臭虫Anomaly异常对于测试人员来说,任何和所期望的偏差都应该上报。描述软件失败的术语描述软件缺陷的术语:软件缺陷术语辨析软件错误(softwareerror)人难免犯错误,必然给软件留下不良痕迹,是一种人为过程,相对软件本身,是一种外部行为.软件缺陷(softwaredefect)指存在于软件中的偏差,如少一逗号,多一语句等,其结果是运行于某一特定条件时出现故障,称缺陷被激活.软件故障(softwarefault)一种动态行为,在软件运行过程中出现的一种不希望或不可接受的内部状态,若无适当措施及时处理,便产生软件失效.软件失效(softwarefailure)指软件运行时产生的不可接受的外部行为结果.软件缺陷术语辨析软件错误(softwareerror)2.什么是软件缺陷软件未达到产品说明书中已经标明的功能;软件出现了产品说明书中指明不会出现的错误;软件未达到产品说明书中虽未指出但应当达到的目标;软件功能超出了产品说明书中指明的范围;软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。软件缺陷的定义2.什么是软件缺陷软件未达到产品说明书中已经标明的功能;软件计算器的例子计算器说明书:该计算器将准确无误地进行加、减、乘、除运算。计算器不会出现崩溃、死锁或停止反应。2+3,没有反应?(2,3,+没有反应?)随意敲击键盘后,没有了反应?因为电池没有电,所以计算错了?还能计算某数的平方根?按键很小、显示屏看不清楚计算器的例子计算器说明书:该计算器将准确无误地进行加、减、乘2022/12/247软件缺陷:正式定义与分类软件产品中违背了软件产品需求的实现,则称为软件缺陷。软件缺陷从应用意义上可分为三类:语义错误语法错误功能缺陷基础概念2022/12/115软件缺陷:正式定义与分类软件产品中违背2022/12/248语义错误软件是需求驱动的一系列变换过程的输出。如果在变换过程中,对输入理解错误,则会产生错误的输出,这类错误称之为语义错误。语义错误是一种偏离错误,如需求定义偏离了用户需求,设计偏离了需求定义等。偏离既包括正偏离(超出需求)也包括负偏离(不满足需求)。根据软件缺陷分布统计,需求定义错误和设计错误分别占整个缺陷的56%和27%。基础概念2022/12/116语义错误软件是需求驱动的一系列变换过程2022/12/249语法错误软件产品是通过某种描述语言表达的结果,如通过UML描述的设计,通过Java描述的程序等。错误地使用了这些语言或违背了这些语言的标准,则称为语法错误。根据软件缺陷分布统计,代码错误占整个缺陷的7%。基础概念2022/12/117语法错误软件产品是通过某种描述语言表达2022/12/250功能缺陷有些功能在通常情况下(甚至在大部分绝大部分情况下)都可以正常运行,但在一些特定条件下,则会出现异常,甚至会引起系统崩溃或严重的安全问题,例如缓冲区溢出。基础概念2022/12/118功能缺陷有些功能在通常情况下(甚至在大2022/12/251典型的缺陷类型从产生缺陷的原因上分,典型的缺陷类型需求解释有错误用户定义错了需求需求记录错误设计说明有误编码说明有误程序代码有误数据输入有误测试错误问题修改不正确正确的结果是由于其它的缺陷产生的2022/12/119典型的缺陷类型从产生缺陷的原因上分,练习启动windows计算器程序,输入5,000-5=,观察结果,这是软件缺陷吗?为什么?在千年虫案例中,这个程序员是否有错?练习启动windows计算器程序,输入5,000-5=,观察3.为什么会产生软件缺陷?(1)产品需求说明书(2)设计方案(3)编写代码(4)其他软件产品说明书(需求)56%其他10%编写代码7%设计27%图1-1软件缺陷产生的原因分布3.为什么会产生软件缺陷?(1)产品需求说明书软件产品说明书2022/12/254软件缺陷的罪魁祸首:产品规格说明书原因:需求不清需求错误表达错误或歧义需求变化

…2022/12/122软件缺陷的罪魁祸首:产品规格说明书2022/12/255软件缺陷的第二大来源:设计方案原因:设计粗糙设计缺陷表达不清、歧义设计技术不成熟

…2022/12/123软件缺陷的第二大来源:设计方案2022/12/256软件缺陷的第三大来源:代码错误原因:软件的复杂性说明文档不足编程风格、可维护性低级错误

…202

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论