好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

软件测试综述.ppt

45页
  • 卖家[上传人]:第***
  • 文档编号:59433994
  • 上传时间:2018-11-07
  • 文档格式:PPT
  • 文档大小:1.15MB
  • / 45 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 软件测试技术,,,广东岭南职业技术学院 软件技术教研室 李文彪,机遇和挑战并存,Test Engineer,目前国内软件业的弱点正是发展的前沿,21世纪什么最贵——软件测试工程师,软件测试工程师,目前IT行业极端短缺的金贵人才,未来5年IT行业最炙手可热的高薪职位中国软件业每年新增约20万测试岗位就业机会,而企业、学校培养出的测试人才却不足需求量的1/10,这种测试人才需求与供给间的差距仍在拉大 软件测试——产品质量的保证 软件测试——控制成本的关键 软件测试——软件可靠性确认 软件测试——让企业具备国际竞争的实力,,软件测试综述,正确理解软件测试的背景、软件缺陷和故障的概念 正确理解软件测试的意义 正确理解软件质量的概念及质量保证体系 了解软件测试职业与素质的要求,1.1 软件测试背景,,1.1.1 软件可靠性问题,因软件设计故障与因计算机硬件设计故障而引发的系统 失效的比例大约是:10:1 运行软件的驻留故障密度(每千行代码的故障数目): ——要求很高的关键财务或财产软件为:每千行代码 1~10个故障 ——关键的生命软件为:每千行代码0.01~1个故障 IEEE将软件可靠性定义为:系统在特定环境下,在给定的时间内无故障运行的概率。

      软件可靠性是对软件在设计、开发以及所预定的环境下具有能力的置信度的一个度量,是衡量软件质量的主要参数之一而软件测试则是保证软件质量、提高软件可靠性的最重要手段1.1.2软件测试的必要性,迪斯尼并不总是带来笑声 一个缺陷造成了数亿美元损失 火星探测飞船坠毁 更多的悲剧,迪斯尼并不总是带来笑声,1994年圣诞节前夕,迪斯尼公司发布了第一个面向儿童的多媒体光盘游戏“狮子王童话” 圣诞节后的第一天,迪斯尼客户支持部开始响个不停,不断有人咨询、抱怨为什么游戏总是安装不成功,或没法正常使用 这个游戏软件只能在少数系统中正常运行,一个缺陷造成了数亿美元损失,(4195835/3145727)×3145727- 4195835 = ?,最后 Intel公司付出很大代价,回收CPU,造成4亿美元损失,火星探测飞船坠毁,机械震动在大多数情况下也会触发着地开关,设置错误的数据位设想飞船开始着陆时,计算机极有可能关闭推进器,而火星登陆飞船下坠1800米之后没有反推进器的帮助,冲向地面,必然会撞成碎片 两个小组本身的工作都没什么问题,就是没有合在一起测试,其接口没有被测,而问题就在这里,更多的悲剧,放射性治疗仪Therac-25中的软件存在缺陷,导致几个癌症病人受到非常严重的过量放射性治疗,其中4个人因此死亡 当爱国者导弹防御系统的时钟累计运行超过14小时后,系统的跟踪系统就不准确。

      从而导致拦截伊拉克飞毛腿导弹的几次失败,其中一枚在沙特阿拉伯的多哈爆炸的飞毛腿导弹造成28名美国士兵死亡,WORD中的几个小BUG体验,1,输入此致,回车看看 2,输入=rand(9,200) 看看结果 3,“胡”字中有字,12/35,1.1.3 软件缺陷与故障,上述所有实例中的软件问题在软件工程或软件测试中都被称为软件缺陷或软件故障缺陷是质量的对立面,要了解什么是缺陷(defect),就必须清楚“质量(Quality)”概念,因为缺陷是相对质量而存在的,违背了质量、违背了客户的意愿,不能满足客户的要求,就会引起缺陷或产生缺陷,,,2、软件缺陷的定义 (1)软件未达到产品说明书中已经标明的功能; (2)软件出现了产品说明书中指明不会出现的错误; (3)软件未达到产品说明书中虽未指出但应当达到的目标; (4)软件功能超出了产品说明书中指明的范围; (5)软件测试人员认为软件难以理解、不易使用, 或者最终用户认为该软件使用效果不良计算器的例子,按下+号,没有任何反应或出现错误答案 按任何键 都没有反应 多出了求平方根的功能 电池没电导致计算错误 测试人员或最终用户认为不好用,缺点(defect) 偏差 (variance) 谬误(fault) 失败 (failure) 问题(problem) 矛盾(inconsistency) 错误(error ) 毛病 (incident ) 异常(anomy),缺陷 – Defect, Bug,3、软件缺陷的特征 “看不到” ——软件的特殊性决定了缺陷不易看到 “看到但是抓不到” ——发现了缺陷,但不易找到问题发生的原因所在,,技术问题 算法错误,语法错误,计算和精度问题,接口参数传递不匹配 团队工作 误解、沟通不充分 软件本身 文档错误、用户使用场合(user scenario), 时间上不协调、或不一致性所带来的问题 系统的自我恢复或数据的异地备份、灾难性恢复等问题,1.1.4 软件缺陷产生的原因,图1-1 软件缺陷产生的原因分布,,1.1.5为什么要进行软件测试?,软件总存在缺陷。

      只有通过测试,才可以发现软件缺陷也只有发现了缺陷,才可以将软件缺陷从软件产品或软件系统中清理出去 软件中存在的缺陷给我们带来的损失是巨大的,这也说明了软件测试的必要性和重要性 测试是所有工程学科的基本组成单元,自然也是软件开发的重要组成部分 测试人员水平越高,找到软件问题的时间就越早,软件就越容易更正,产品发布之后越稳定,公司赚的钱也越多,微软就是一个典型的例子,1.2 软件测试基础理论,Return,,1.2.1 什么是软件测试?,软件测试的发展,测试:所谓测试的含义,首先是一项活动,在这项活动中某个系统或组成的部分将在特定的条件下运行,结果将被观察和记录,并对系统或组成部分进行评价测试活动有两种结果:找出缺陷和故障,或显示软件执行正确测试是一个或多个测试用例的集合 测试用例:所谓测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果;测试用例是执行测试的最小实体 测试步骤:测试步骤详细规定了如何设置、执行、评估特定的测试用例几个主要的关键词,软件测试涉及的关键问题包括五个方面: (1)测试由谁来执行 (2)测试什么 (3)什么时候进行测试 (4)怎样进行测试 (5)测到什么程度。

      1.2.2 软件测试的基本理论,1、软件测试的目的 (1)测试是程序的执行过程,目的在于发现错误;不能证明程序的正确性,除非仅处理有限种情况 (2)检查系统是否满足需求也是测试的期望目标 (3)一个好的测试用例在于发现了还未曾发现的错误;一次成功的测试则是发现了错误的测试 注意:测试无法说明错误不存在,只能说明软件错误已出现1)尽早地和及时地测试; (2)测试用例应当由测试数据和与之对应的预期结果这两部分组成; (3)在程序提交测试后,应当由专门的测试人员进行测试; (4)测试用例应包括合理的输入条件和不合理的输入条件; (5)严格执行测试计划,排除测试的随意性; (6)充分注意测试当中的群体现象、杀虫剂现象; (7)应对每一个测试结果做全面的检查; (8)保存测试计划、测试用例、出错统计和最终分析报告,为维护工作提供充分的资料2、软件测试的原则,软件测试的分类,不同的分类,按测试的对象或范围分类,如单元测试、文档测试、系统测试等) 按测试目的分类,如功能测试、回归测试、性能测试、可靠性测试、安全性测试和兼容性测试等 根据测试过程中被测软件是否被执行,分为静态测试和动态测试 根据是否针对系统的内部结构和具体实现算法来完成测试,可分为白盒测试和黑盒测试,软件测试的停止的标准,6、测试停止的依据(标准) 第一类标准:测试超过了预定时间,则停止测试。

      第二类标准:执行了所有的测试用例,但并没有发现故障,则停止测试 第三类标准:使用特定的测试用例设计方案作为判断测试停止的基础 第四类标准:正面指出停止测试的具体要求,即停止测试的标准可定义为查出某一预订数目的故障 第五类标准:根据单位时间内查出故障的数量决定是否停止测试1.2.3 软件测试和缺陷修复的代价,软件在从需求、设计、编码、测试一直到交付用户公开使用后的过程中,都有可能产生和发现缺陷随着整个开发过程的时间推移,更正缺陷或修复问题的费用呈几何级数增长软件缺陷在不同阶段的分布,在真正的程序测试之前,通过审查、评审会可以发现更多的缺陷 规格说明书的缺陷会在需求分析审查、设计、编码、测试等过程中会逐步发现,而不能在需求分析一个阶段发现,缺陷修复成本,,1.1 软件质量的定义及其特性,什么是软件质量 ANSI/IEEE Std 729—1983 是这样定义的:“软件质量是与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体 软件工程学者M.J.Fisher 是这样定义的: “软件质量是描述计算机软件优秀程度的特性的组合”软件质量特性,(1)正确性(功能性):指软件所实现的功能满足用户要求的程度,这是软件产品的首选质量特性。

      衡量标准是:包括易追溯性、一致性、完备性 (2)易用性:易用性是指用户掌握软件操作所要付出的时间及努力程度 衡量标准是:易操作性、培训、易交流性、输入和输出量、输入输出速度 (3)完整性:保护软件不被未经同意的存储和使用的能力 衡量标准是:包括存储控制、存储审查 (4)效率:效率是指软件执行某项功能所需电脑资源(含时间)的有效程度 衡量标准是:包括运行效率、存储效率 (5)可靠性:在给定的时间内,特定环境下软件正确运行的概率或者说,是指在规定的时间和条件下,仍能维持其性能水准的程度 衡量标准是:容错性、一致性、准确性、简洁性 (6)易维护性:指当环境改变或软件发生错误时,执行修改或恢复所做努力的程度 衡量标准是:一致性、简洁性、简明性、模块性、自我描述性7)灵活性:当软件操作环境变化时,对软件作相应修改的难易程度 衡量标准是:模块性、一般性、易扩展性、自我描述性 (8)易测试性:对软件测试以保证其无错误和满足其规约的难易程度 衡量标准是:简洁性、模块性、检视、自我描述性 (9)易移植性:可移植性的定义:是指将一个程序从一个电脑系统或环境移到另一电脑系统或环境的容易程度 度量标准: (1)目标环境的个数。

      2)与环境相关的模块数3)移植到目标环境的工作量4)移植目标环境的成本 (10)易复用性:复用一个软件或其部分的难易程度 衡量标准是:通用性、模块性、自我描述性、硬件独立性、软件独立性 (11)互用性:将一个软件系统和其它软件系统组合在一起的难易程度 衡量标准是:模块性、通讯共同性、数据共同性高质量软件具备的条件,满足软件需求定义的功能和性能; 文档符合事先确定的软件开发标准; 软件的特点和属性遵守软件工程的目标和原则软件能力成熟度模型(了解知识),软件能力成熟度模型(CMM, Capability Maturity Model): ——是软件行业标准模型,用来定义和评价软件企业开发过程的成熟度,提供如何做才能够提高软件质量的指导 CMM的基本原理: ——CMM将软件组织的过程能力成熟度分为5个级别,每一个级别定义一组过程能力目标,并描述要达到这些目标应该采取的各种实践活动 CMM的主要作用: ——提供了一个软件过程改进的框架根据CMM模型,软件开发者(机构或组织)能够大幅度的提高按计划、高效率、低成本的提交有质量保证的软件产品的能力软件能力成熟度模型(续),1、CMM的基本过程概念 过程:为达到目的而执行的所有步骤的系列。

      软件过程:开发和维护软件及其相关产品的一组活动、方法、实践和改革 软件过程结构:对组织标准软件过程的一种高级别描述,它描述组织标准软件过程内部的过程元素之间的顺序、接口、内部依赖等关系,以及与外部过程之间的接口和依赖关系 软件过程元素:用于描述软件过程的基本元素,每一个过程元素包含一组定义的、有限的、封闭的相关任务 软件过程定义:CMM中过程定义的基本概念是定义组织的标准软件过程软件能力成熟度模型(续),2、CMM的5个分级标准,图1-14 软件过程成熟度的5个等级,软件能力成熟度模型(续),。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.