



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件测试定义是:使用人工或者自动手段来运行或测试某个系统的过程,其目的在于 检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别. 它是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正 确度(correctness) 、完全度(completeness)和质量(quality)的软件过程;是 SQA(software quality assurance)的重要子域。 Grenford J.Myers 曾对软件测试的目的提出过以下观点: (1)测试是为了发现程序中的错误而执行程序的过程; (2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案; (3)成功的测试是发现了至今为止尚未发现的错误的测试。 然而,这种观点指出测试是以查找错误为中心,而不是为了演示软件的正确功能. 但是只从字面意思理解,可能会产生误导,认为发现错误是软件测试的唯一目的,查找 不出错误的测试就是没有价值的测试,实际上并非如此! (1)测试并不仅仅是为了找出错误.通过分析错误产生的原因和错误的发生趋势, 可以帮助项目管理者 发现当前软件开发过程中的缺陷,以便及时改进; (2)这种分析也能帮助测试人员设计出有针对性的测试方法,改善测试的效率和有 效性; (3)没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法 软件测试的内容: 软件测试主要工作内容是验证(verification)和确认(validation ),下面分别给出其 概念: 验证(verification)是保证软件正确地实现了一些特定功能的一系列活动,即保证 软件做了你所期望的事情。(Do the right thing) 1.确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过 程; 2.程序正确性的形式证明,即采用形式理论证明程序符号设一计规约规定的过 程; 3.评市、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等 是否和规定的需求相一致进行判断和提出报告。 确认(validation)是一系列的活动和过程,目的是想证实在一个给定的外部环境中 软件的逻辑正确性。即保证软件以正确的方式来做了这个事件(Do it right) 1.静态确认,不在计算机上实际执行程序,通过人工或程序分析来证明软件恼?确性; 2.动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否存在 问题。 软件测试的对象不仅仅是程序测试,软件测试应该包括整个软件开发期问各个阶 段所产生的文档,如需求规格说明、概要设计文档、详细设计文档,当然软件测试的 主要对象还是源程序。从不同的角度出发,软件测试可以划分为不同的分类: 从是否关心软件内部结构和具体实现的角度划分 A.白盒测试 B.黑盒测试 C.灰盒测试 从是否执行程序的角度 A.静态测试 B.动态测试。 从软件开发的过程按阶段划分有 A.单元测试 B.集成测试 C.确认测试 D.验收测试 E.系统测试 * 测试过程按 4 个步骤进行,即单元测试、集成测试、确认测试和系统测试及发 版测试。 * 开始是单元测试,集中对用源代码实现的每一个程序单元进行测试,检查各个 程序模块是否正确地实现了规定的功能。 * 集成测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构 造进行测试。 * 确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种 需求,以及软件配置是否完全、正确。 * 系统测试把已经经过确认的软件纳入实际运行环境中,与其它系统成份组合在 一起进行测试。 单元测试 (Unit Testing) * 单元测试又称模块测试,是针对软件设计的最小单位 程序模块,进行正确 性检验的测试工作。其目的在于发现各模块内部可能存在的各种差错。 * 单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立 进行单元测试。 1. 单元测试的内容 * 在单元测试时,测试者需要依据详细设计说明书和源程序清单,了解该模块的 I/O 条件和模块的逻辑结构,主要采用白盒测试的测试用例,辅之以黑盒测试的测试 用例,使之对任何合理的输入和不合理的输入,都能鉴别和响应。 (1) 模块接口测试 * 在单元测试的开始,应对通过被测模块的数据流进行测试。测试项目包括: 调用本模块的输入参数是否正确; 本模块调用子模块时输入给子模块的参数是否正确; 全局量的定义在各模块中是否一致;* 在做内外存交换时要考虑: 文件属性是否正确; OPEN 与 CLOSE 语句是否正确; 缓冲区容量与记录长度是否匹配; 在进行读写操作之前是否打开了文件; 在结束文件处理时是否关闭了文件; 正文书写输入错误, IO 错误是否检查并做了处理。 (2) 局部数据结构测试 * 不正确或不一致的数据类型说明 * 使用尚未赋值或尚未初始化的变量 * 错误的初始值或错误的缺省值 * 变量名拼写错或书写错 * 不一致的数据类型 * 全局数据对模块的影响 (3) 路径测试 * 选择适当的测试用例,对模块中重要的执行路径进行测试。 * 应当设计测试用例查找由于错误的计算、不正确的比较或不正常的控制流而导 致的错误。 * 对基本执行路径和循环进行测试可以发现大量的路径错误。 (4) 错误处理测试 * 出错的描述是否难以理解 * 出错的描述是否能够对错误定位 * 显示的错误与实际的错误是否相符 * 对错误条件的处理正确与否 * 在对错误进行处理之前,错误条件是否已经引起系统的干预等 (5) 边界测试 * 注意数据流、控制流中刚好等于、大于或小于确定的比较值时出错的可能性。 对这些地方要仔细地选择测试用例,认真加以测试。 * 如果对模块运行时间有要求的话,还要专门进行关键路径测试,以确定最坏情 况下和平均意义下影响模块运行时间的因素。 2. 单元测试的步骤 * 模块并不是一个独立的程序, 在考虑测试模块时, 同时要考虑它和外界的联系, 用一些辅助模块去模拟与被测模块相联系的其它模块。 驱动模块 (driver) 桩模块 (stub) 存根模块 * 如果一个模块要完成多种功能,可以将这个模块看成由几个小程序组成。必须 对其中的每个小程序先进行单元测试要做的工作,对关键模块还要做性能测试。* 对支持某些标准规程的程序,更要着手进行互联测试。有人把这种情况特别称 为模块测试,以区别单元测试。 集成测试(Integrated Testing) * 集成测试 (集成测试、联合测试) * 通常,在单元测试的基础上,需要将所有模块按照设计要求组装成为系统。这 时需要考虑的问题是: 在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失; 一个模块的功能是否会对另一个模块的功能产生不利的影响; 各个子功能组合起来,能否达到预期要求的父功能; 全局数据结构是否有问题; 单个模块的误差累积起来,是否会放大,从而达到不能接受的程度。 在单元测试的同时可进行
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年麻花运输合同
- 2025年度劳动合同
- 2025合作伙伴间的正式合同范本
- 语言培训专业知识案例课件
- 2025武汉市文化教育类民办培训机构培训服务合同(武汉市版)
- 红酒专业知识培训班课件
- 农业合作产业化推广合作合同书
- 红楼梦知识课件
- 2025年新能源技术创新:中国新能源产业技术创新与产业布局优化策略研究报告
- 2025年日用玻璃制品与玻璃包装容器行业规模分析及投资前景研究报告
- CRH380B型动车组制动系统
- 植入式静脉给药装置(输液港)-中华护理学会团体标准2023
- SH石油化工金属管道布置设计规范
- 统一帕金森病评定量表-UPDRS
- 外国文学史第二版马工程课件 第四章 17世纪文学
- 皮肤的结构与生理功能
- 院感培训试题及
- 开发区财政管理改革研究
- 三维数字城市建模及数据获取课件
- 电气照明系统课件
- 收纳整理PPT成品课件
评论
0/150
提交评论