文档详情

软件测试的原理与方法.pptx

发布:2025-05-08约2.46千字共29页下载文档
文本预览下载声明

软件测试理论第一讲

软件测试的必要性为什么要进行软件测试什么是软件测试软件测试和软件开发的关系测试驱动开发的思想本章内容

软件缺陷带来的悲剧千年虫(Y2K)问题奔腾芯片缺陷火星登陆事故爱国者导弹防御系统软件测试的必要性

千年虫(Y2K)问题在上个世纪70年代,程序员为了节约非常宝贵的内存资源和硬盘空间,在存储日期时,只保留年份的后两位,如“1980”被存为“80”。当2000年到来的时候,问题就会出现,比如银行存款程序在计算利息时,应该用现在的日期“2000年1月1日”减去当时存款的日期,比如“1989年1月1日”,结果应该是21年,如果利息是3%,银行要付给顾客每100元,大约86元利息。如果程序没有纠正年份只存储两位的问题,其存款年数就变为-89年,变成顾客反要付银行1288元的巨额利息。就是为了这样一个简单的设计缺陷,全世界付出几十亿美元。

奔腾芯片缺陷(4195835/3145727)*3145727–4195835?0$450million–4.5亿美元损失.

其他一些事故010203爱国者导弹拦截系统事故火星登陆事故迪士尼的圣诞节礼物

问题在哪里没有足够测试01缺乏测试平台02不正确的测试环境03缺少集成测试04缺少性能测试05缺少强度测试06缺少可靠性测试07

软件测试的重要性软件测试不仅成为软件开发的一个有机组成部分,而且在软件开发的系统工程中占据着相当大的比重。以美国的软件开发和生产的平均资金投入为例,通常是:“需求分析”和“规划确定”各占百分之三,“设计”占百分之五,编程占百分之七,测试占百分之十五,投产和维护占百分之六七十。测试在。软件开发中的地位不言而喻。

什么是软件测试“程序测试是为了发现错误而执行程序的过程”。测试的目的是发现程序中的错误,是为了证明程序有错,而不是证明程序无错。在软件开发过程中,分析、设计与编码等工作都是建设性的,惟独测试是带有“破坏性”,测试可视为分析、设计和编码3个阶段的“最终复审”,在软件质量保证中具有重要地位。

软件测试和软件开发的关系软件产品的组成软件项目组结构软件开发模型软件开发模型与软件测试关系

软件产品的组成软件产品需要各种开发投入客户需求产品说明设计文档测试文档开发进度软件产品的其他组成部分

软件开发项目组软件项目经理系统设计师程序员软件测试员/测试师技术制作、用户助手、用户培训员、手册编写和文件档案专员

软件过程模型软件开发过程中存在各种复杂因素,为了解决由此而带来的种种问题,软件开发者们经过多年的摸索,给出了多种实现软件工程的方式——软件过程模型。

常用的过程模型大爆炸式开发模式(SKIP)边写边改模式(SKIP)瀑布过程模型螺旋过程模型增量过程模型极限编程(XP)(SKIP)等

瀑布式过程模型瀑布过程模型反映了人们早期对软件工程的认识水平,是人们所熟悉的一种线性思维的体现。瀑布过程模型强调阶段的划分及其顺序性、各阶段工作及其文档的完备性,是一种严格线性的、按阶段顺序的、逐步细化的开发模式

瀑布式

螺旋过程模型螺旋过程模型的基本思路是,依据前一个版本的结果构造新的版本,这个不断重复迭代的过程形成了一个螺旋上升的路径PART1

螺旋过程模型

测试驱动开发思想现在还有一种全新的软件开发模式——以测试驱动软件开发思想软件测试是贯穿于软件开发过程的。软件生存周期的各个阶段中都少不了相应的测试,软件生存周期各个阶段的测试分别对应于软件测试过程中的单元测试、集成测试、系统测试和确认测试,如下图所示。这种对应关系有利于软件开发过程的管理和软件质量的控制。

软件测试与软件开发的关系01

软件开发对应的测试过程规格定义设计编码系统测试集成测试单元测试用户需求验收测试回归测试配置管理缺陷跟踪

单元测试单元测试:UnitTesting01目标:02检验程序最小单元有无错误03接口、数据结构、边界、覆盖、逻辑04检验单元编码与设计是否吻合05时机:06编码完成后,首先要实施的测试07方法:08静态测试09白盒测试10责任:11开发工程师12

测试过程-集成测试集成测试:IntegrationTesting目标:检验组成系统的模块接口有无错误代码实现的系统设计与需求定义是否吻合时机:主要的单元测试完成后,经常与单元测试同步进行方法:黑盒测试责任:开发工程师测试工程师

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

测试过程-稳定期测试系统测试:SystemTesting稳定期测试目标:度量是否可以结束测试时机

显示全部
相似文档