软件测试的原理与方法_第1页
软件测试的原理与方法_第2页
软件测试的原理与方法_第3页
软件测试的原理与方法_第4页
软件测试的原理与方法_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、软件测试理论软件测试理论第一讲第一讲软件测试的必要性为什么要进行软件测试什么是软件测试软件测试和软件开发的关系测试驱动开发的思想本章内容软件缺陷带来的悲剧 千年虫(y2k)问题 奔腾芯片缺陷 火星登陆事故 爱国者导弹防御系统软件测试的必要性 在上个世纪70年代,程序员为了节约非常宝贵的内存资源和硬盘空间,在存储日期时,只保留年份的后两位,如“1980”被存为“80”。当2000年到来的时候,问题就会出现,比如银行存款程序在计算利息时,应该用现在的日期“2000年1月1日”减去当时存款的日期,比如“1989年1月1日” ,结果应该是21年,如果利息是3%,银行要付给顾客每100元,大约86元利息

2、。如果程序没有纠正年份只存储两位的问题,其存款年数就变为-89年,变成顾客反要付银行1288元的巨额利息。 就是为了这样一个简单的设计缺陷,全世界付出几十亿美元。 千年虫(y2k)问题(4195835 / 3145727) * 3145727 4195835 0$450 million 4.5亿美元损失. 奔腾芯片缺陷火星登陆事故爱国者导弹拦截系统事故迪士尼的圣诞节礼物其他一些事故 没有足够测试 缺乏测试平台 不正确的测试环境 缺少集成测试 缺少性能测试 缺少强度测试 缺少可靠性测试问题在哪里软件测试不仅成为软件开发的一个有机组成部分,而且在软件开发的系统工程中占据着相当大的比重。以美国的软件

3、开发和生产的平均资金投入为例,通常是:“需求分析”和“规划确定”各占百分之三,“设计”占百分之五,编程占百分之七,测试占百分之十五,投产和维护占百分之六七十。测试在。软件开发中的地位不言而喻。软件测试的重要性“程序测试是为了发现错误而执行程序的过程”。测试的目的是发现程序中的错误,是为了证明程序有错,而不是证明程序无错。在软件开发过程中,分析、设计与编码等工作都是建设性的,惟独测试是带有“破坏性”,测试可视为分析、设计和编码3个阶段的“最终复审”,在软件质量保证中具有重要地位。 什么是软件测试软件产品的组成软件项目组结构软件开发模型软件开发模型与软件测试关系软件测试和软件开发的关系软件产品需要

4、各种开发投入客户需求产品说明设计文档测试文档开发进度软件产品的其他组成部分软件产品的组成软件项目经理系统设计师程序员软件测试员/测试师技术制作、用户助手、用户培训员、手册编写和文件档案专员软件开发项目组 软件开发过程中存在各种复杂因素,为了解决由此而带来的种种问题,软件开发者们经过多年的摸索,给出了多种实现软件工程的方式软件过程模型。软件过程模型大爆炸式开发模式(skip)边写边改模式(skip)瀑布过程模型螺旋过程模型增量过程模型极限编程(xp) (skip)等常用的过程模型瀑布过程模型反映了人们早期对软件工程的认识水平,是人们所熟悉的一种线性思维的体现。瀑布过程模型强调阶段的划分及其顺序性

5、、各阶段工作及其文档的完备性,是一种严格线性的、按阶段顺序的、逐步细化的开发模式瀑布式过程模型瀑布式螺旋过程模型的基本思路是,依据前一个版本的结果构造新的版本,这个不断重复迭代的过程形成了一个螺旋上升的路径螺旋过程模型螺旋过程模型现在还有一种全新的软件开发模式现在还有一种全新的软件开发模式以以测测试驱动试驱动软件开发思想软件开发思想 软件测试软件测试是是贯穿贯穿于软件开发过程的。软于软件开发过程的。软件生存周期的件生存周期的各个阶段各个阶段中都少不了相应的测中都少不了相应的测试,软件生存周期各个阶段的测试分别对应试,软件生存周期各个阶段的测试分别对应于软件测试过程中的单元测试、集成测试、于软件

6、测试过程中的单元测试、集成测试、系统测试和确认测试,如下图所示。系统测试和确认测试,如下图所示。这种对这种对应关系有利于软件开发过程的管理和软件质应关系有利于软件开发过程的管理和软件质量的控制量的控制。测试驱动开发思想软件测试与软件开发的关系 需求分析单元测试集成测试确认测试编 码软件设计需求分析说明书确认测试集成测试单元测试源程序代码详细设计说明书概要设计说明书软件开发对应的测试过程规格定义规格定义设计设计编码编码系统测试系统测试集成测试集成测试单元测试单元测试用户需求用户需求验收测试验收测试回回归归测测试试配置管理配置管理缺陷跟踪缺陷跟踪 单元测试:单元测试:unit testing 目标

7、:目标:检验程序检验程序最小单元有无错误最小单元有无错误接口、数据结构、边界、覆盖、逻辑接口、数据结构、边界、覆盖、逻辑检验单元检验单元编码与设计是否吻合编码与设计是否吻合 时机:时机:编码完成后编码完成后,首先要实施的测试,首先要实施的测试 方法:方法:静态静态测试测试白盒白盒测试测试 责任:责任:开发工程师开发工程师单元测试 集成测试:集成测试:integration testing 目标:目标:检验组成系统的模块检验组成系统的模块接口有无错误接口有无错误代码实现的系统代码实现的系统设计与需求定义是否吻合设计与需求定义是否吻合 时机:时机:主要的单元测试完成后,主要的单元测试完成后,经常与

8、单元测试同步进行经常与单元测试同步进行 方法:方法:黑盒黑盒测试测试 责任:责任:开发工程师开发工程师测试工程师测试工程师测试过程测试过程-集成测试集成测试 系统测试:系统测试:system testing 目标:目标:检验组成检验组成整个系统整个系统的代码、以及的代码、以及系统系统的软硬件配合有无的软硬件配合有无错误错误代码实现的代码实现的系统与用户需求系统与用户需求是否吻合是否吻合检验检验系统系统的文档等各种是否的文档等各种是否完整、有效完整、有效模拟验收测试的要求,检查系统模拟验收测试的要求,检查系统是否符合用户的验收标是否符合用户的验收标准准 时机:时机:多数集成测试完成后多数集成测试

9、完成后 方法:方法:黑盒测试黑盒测试 责任:责任:测试工程师测试工程师测试过程测试过程-系统测试系统测试 系统测试:系统测试:system testing 稳定期测试稳定期测试 目标:目标:度量度量是否可以结束测试是否可以结束测试 时机:时机:传统的系统测试完成后传统的系统测试完成后 方法:方法:黑盒黑盒测试测试 责任:责任:测试工程师测试工程师测试过程测试过程-稳定期测试稳定期测试 验收测试:验收测试:acceptance testing 目标:目标:使使客户验收签字客户验收签字系统是否符合事先约定的系统是否符合事先约定的验收标准验收标准 时机:时机:系统测试完成后,在项目组看来开发和测试工

10、作已系统测试完成后,在项目组看来开发和测试工作已经经全部完成全部完成,可以,可以交付交付使用使用 方法:方法:黑盒黑盒测试测试 责任:责任:产品经理或其他高级经理产品经理或其他高级经理开发工程师开发工程师测试工程师测试工程师用户用户测试过程测试过程-验收测试 回归测试:回归测试:regression testing 目标:目标:验证程序验证程序修改修改或者版本或者版本更新以后更新以后,以前正确的功能,以前正确的功能和其他指标仍旧正确。和其他指标仍旧正确。 时机:时机:每次错误修改之后每次错误修改之后,或者,或者版本更新版本更新之后之后 方法:方法:白盒白盒测试测试/黑盒黑盒测试测试 责任:责任:开发开发工程师工程师测试测试工程师工程师测试过程-回归测试 缺陷跟踪:缺陷跟踪:defect tracing 目标:目标:确保确保所有发现的错误所有发现的错误被正确被正确记录记录、分发分发、评估评估、关闭关闭、统计统计 时机:时机:从错误发现开始到错

温馨提示

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

评论

0/150

提交评论