欢迎来到天天文库
浏览记录
ID:38681368
大小:1.41 MB
页数:159页
时间:2019-06-17
《软件工程第8章软件测试》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第八章8软件测试本章内容8.1软件测试背景8.2软件测试的基本概念8.3测试用例的设计8.4软件测试过程8.1软件测试背景8.1.1软件缺陷与故障案例软件缺陷的定义软件缺陷的特征8.1.2软件缺陷产生的原因8.1.1软件缺陷与故障1、软件缺陷和软件故障案例案例1美国迪斯尼公司的狮子王游戏软件bug兼容性问题案例2美国航天局火星登陆事故系统测试衔接问题案例3跨世纪“千年虫”问题案例4爱国者导弹防御系统炸死自家人系统时钟误差积累案例5英特尔奔腾浮点除法上述所有实例中的软件问题在软件工程或软件测试中都被称为软件缺陷或软件故障。软件是复杂的、知识高度密集的逻辑产品,因此软件错误防不胜防
2、。对于规模大、复杂性高的软件更是如此。这些错误中,有些神之石致命的,若不排除,会导致财产以及生命的重大损失。1963年美国飞往火星的火箭爆炸,造成1000万美元的损失。原因是FORTRAN程序:DO5I=1,3误写为:DO5I=1.31967年苏联“联盟一号”载人宇宙飞船在返航时,由于软件忽略一个小数点,导至在进入大气层时因打不开降落伞而烧毁。软件危机软件缺陷与故障(续)2、软件缺陷的定义(1)软件未达到产品说明书中已经标明的功能;(2)软件出现了产品说明书中指明不会出现的错误;(3)软件未达到产品说明书中虽未指出但应当达到的目标;(4)软件功能超出了产品说明书中指明的范围;(
3、5)软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。软件缺陷与故障(续)3、软件缺陷的特征“看不到”——软件的特殊性决定了缺陷不易看到“看到但是抓不到”——发现了缺陷,但不易找到问题发生的原因所在8.1.2软件缺陷产生的原因软件缺陷的主要类型/现象:功能、特性没有实现或部分实现设计不合理,存在缺陷实际结果和预期结果不一致运行出错,包括运行中断、系统崩溃、界面混乱数据结果不正确、精度不够用户不能接受的其他问题,如存取时间过长、界面不美观常见导致错误的根源缺乏有效的沟通,或者没有进行沟通;软件复杂度不断变更的需求时间的压力缺乏文档的代码软件开发工具其他1
4、0%软件产品说明书(需求)56%编写代码7%设计27%图8-1软件缺陷产生的原因分布软件缺陷产生的原因有很多,但最主要的原因要归咎于产品描述软件测试的复杂性分析(续)软件缺陷故障数量测试工作量测试中测试后测试费用遗漏缺陷数目优化测试量图8-2测试工作量和软件缺陷数量之间的关系8.2软件测试基础概念8.2.1软件测试的定义8.2.2软件测试的基本概念8.2.3软件测试方法与策略8.2.1软件测试定义软件测试是一个贯彻于软件开发过程始终的过程,是为了发现错误而执行程序的过程,是根据软件开发各阶段的规格说明和程序的内部结构结构而精心设计一批测试用例。什么是软件测试使用人工或者自动手段
5、来运行或测定某个系统的过程目的在于检验它是否满足规定的需求、弄清预期结果与实际结果之间的差别可简述为:按照特定规程,发现软件错误的过程软件测试定义(续)1.软件测试的目的软件测试的目标是以最少的时间和人力,系统的找出软件中潜在的各种错误和缺陷测试是为了发现程序中的错误而执行程序的过程好的测试方案(测试用例)在于尽可能发现迄今为止尚未发现的错误成功的测试是发现了至今为止尚未发现的错误的测试8.2.2软件测试基本概念软件测试目的(续)测试并不仅仅是为了找出错误.通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进;这种分析也能帮助测试
6、人员设计出有针对性的测试方法,改善测试的效率和有效性;没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法软件测试员的目标发现软件缺陷2.软件测试的目标最终目的是确保软件的功能符合用户的需求,把尽可能多的问题在发布或交付前发现并改正:确保软件完成了它所承诺或公布的功能(缺少规范的书面文档?)确保软件满足性能的要求(界面、操作、性能)确保软件是健壮的和适应用户环境的(哪怕不健壮,也要给出解决方案)2.软件测试的目标为软件的质量评估提供依据(项目验收)为软件质量改进和管理提供帮助(经验教训等知识转移)软件测试的生命周期需求规格说明设计缺陷分类缺陷解决缺陷隔离测试编码错
7、误错误错误错误修复事故缺陷缺陷缺陷3.软件测试的特性软件测试与分析、设计、编码等工作相比,具有若干特殊的性质:挑剔性。测试是一种“挑剔性”行为,以证明程序有错的目的去进行测试,才能把程序中潜在的错误找出来。复杂性。设计测试用例是一项需要细致和高度技巧的工作。不彻底性。测试只能证明软件中存在错误,不能证明软件中不存在错误所谓彻底测试,也就是穷举测试,显然在实际测试中无法实现或行不通。经济性。降低测试成本,应遵守的经济性原则:一,根据程序的重要性和一旦发生故障将造成的损失来确定他的可靠性等级,不
此文档下载收益归作者所有