软件测试策略与过程资料

上传人:f****u 文档编号:117192889 上传时间:2019-11-18 格式:PPT 页数:64 大小:1.55MB
返回 下载 相关 举报
软件测试策略与过程资料_第1页
第1页 / 共64页
软件测试策略与过程资料_第2页
第2页 / 共64页
软件测试策略与过程资料_第3页
第3页 / 共64页
软件测试策略与过程资料_第4页
第4页 / 共64页
软件测试策略与过程资料_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《软件测试策略与过程资料》由会员分享,可在线阅读,更多相关《软件测试策略与过程资料(64页珍藏版)》请在金锄头文库上搜索。

1、 第2章 软件测试方法与过程 第2章 软件测试策略与过程 软件测试的复杂性与经济性1 软件测试方法2 软件测试阶段3 其它测试类型4 主 要 内 容 软件测试流程 第2章 软件测试策略与过程 ISO 软 件 质 量 度 量 模 型 2.1 软件测试的复杂性与经济性 测试 无法对程序进行完全的测试 缺陷 测试无法保证被测程序中无 遗留错误 修复 不能修复所有的软件故障 软件测试复杂性 n对待缺陷的基本原则 p缺陷的群集现象 p缺陷有免疫力 p缺陷关联和依赖 n测试结果的处理原则 p对缺陷进行复查和确 认 p测试结果的全面检查 p出错统计和分析 p妥善保存测试过程文 档 软件缺陷构成 2.1 软件

2、测试的复杂性与经济性 测试发现缺陷需 要投入(时间和 成本) 经济性 遗留缺陷有风险 最佳的测试量 2.1 软件测试的复杂性与经济性 n软件测试应追溯到用户需求 n应尽早和不断地测试 n穷尽测试是不可能的 n具有良好的测试态度 p避免测试自己的程序 p增量测试 p测试分级 p测试有重点 p避免测试的随意性 测试原则 2.1 软件测试的复杂性与经济性 2.2 软件测试方法 软件测试技术分类 核心: 在每种测试方法、测试阶段和测试业务中,一般包括 1、功能测试 (黑盒、白盒) 2、性能测试(黑盒、白盒) 方法 目标/特性 单元测试 系统测试 验收测试 性能测试 强壮性测试 功能测试 白盒测试黑盒测

3、试 测试阶段或层次 适用性测试 可靠性测试 集成测试 安全性测试 软件测试业务分类 2.2 软件测试方法 静态测试和动态测试 主持人 作者 记录员 列席人员 内审员 技术专业人员 用户代表 不正式正式 互审 走读 审查会议 运行程序 不运行程序,仅通过 分析或检查等其他手 段达到检测的目的。 通过运行被测程序,检 查运行结果与预期结果的 差异,并分析运行效率和 健壮性等性能 2.2 软件测试方法 测试分类 n按是否需查看代码分类 p黑盒测试 p白盒测试 功能测试 数据测试 结构测试 逻辑测试 客户需求 事件驱动 输入 输出 2.2 软件测试方法 测试分类 黑盒测试和白盒测试 功能测试 结构测试

4、客户需求 事件驱动 输入 输出 白盒测试黑盒测试 测试依据 程序内部结构软件规格说明 优点 能对程序内部的特定部位 进行覆盖 能站在用户立场上进行测试 缺点 (1)无法检测 程序本身逻 辑错误 (2)无法对未实现规 格 说明的程序部分进行测试 (1)不能测试 程序内部特定部 位 (2)发现 不了规格说明错误 或程序超出规格说明的行为 2.2 软件测试方法 测试分类 人工测试和自动化测试 n人工测试是人为测试和手工测试的统称。 p人为测试的主要方法有桌前检查 (desk checking) , 代码审查( code review )和走查( walkthrough )。经 验表明,使用这种方法能

5、够有效地发现 30% 到 70% 的逻 辑设计和编码错误。 p手工测试指的是在测试过程中,按测试计划一步一步 执行程序,得出测试结果并进行分析的测试行为。 n自动化测试指的是利用测试工具来执行测试,并进行 测试结果分析的测试行为。 2.2 软件测试方法 测试分类 n按测试执行时是否需人工干预分类 p手工测试 p自动测试 n人工测试是人为测试和手工测试的统称。 p人为测试的主要方法有桌前检查 (desk checking) , 代码审查( code review )和走查( walkthrough )。 经验表明,使用这种方法能够有效地发现 30% 到 70% 的 逻辑设计和编码错误。 p手工测

6、试指的是在测试过程中,按测试计划一步一步 执行程序,得出测试结果并进行分析的测试行为。 n自动化测试指的是利用测试工具来执行测试,并进行 测试结果分析的测试行为。 2.2 软件测试方法 测试分类 自动测试和手工测试 手工模拟用户操作 2.2 软件测试方法 测试分类 2.3 软件测试的阶段 单元测试单元测试 集成测试集成测试 系统测试系统测试 验收测试验收测试 一 单元测试 n什么是单元测试 u单元测试是对软件基本组成单元进行测试,主要是为了 发现单元内部可能存在的各种错误和不足 u主要工作分为两个步骤:人工静态检查和动态执行跟踪 u一般由开发组在开发组组长监督下进行 n什么是单元 u一个函数

7、u类或类内成员函数 u几个函数的集合 2.3 软件测试的阶段 n 单元测试误区 1、单元测试是一种浪费时间的工作 2、我是个很棒的程序员, 我是不是可以不进行单元测试? 3、集成测试能捕捉到所有的Bug 4、单元测试的成本效率不高 n单元测试环境 1、详细设计说明书 2、源程序清单 3、驱动模块 4、桩模块 一 、单元测试 2.3 软件测试的阶段 n单元测试的主要任务 p在单元测试时,测试者需要依据详细设计说明书和源 程序清单,了解该模块的I/O条件和模块的逻辑结构,主要 采用白盒测试的测试用例,辅之以黑盒测试的测试用例, 使之对任何合理的输入和不合理的输入,都能鉴别和响应 。 一、单元测试

8、2.3 软件测试的阶段 n单元测试用例设计思路 p为系统运行设计测试用例 u证证明单单元至少在某种正常情况下能够够运行了 。 p为正向测试设计用例 u验证设计说明书所对应的功能或性能指标是 否实现。 p为逆向测试设计用例 u验证被测软件单元有没有做它不应该做的事 情。 p为满足特殊需求设计测试用例 u验证系统性能、安全性、保密性等。 p为代码覆盖设计用例 u满足特定覆盖标准 一、单元测试 2.3 软件测试的阶段 二、集成测试 n什么是集成测试 p集成测试是在单元测试的基础上,将所有模 块按照概要设计要求组装成为子系统或系统所进 行的测试 n集成测试关注的重点 p模块接口的数据交换 p各子功能组

9、合起来能否达到预期要求的父功 能 p模块间是否有不利影响 p全局数据结构 p单个模块的误差是否会累积放大 2.3 软件测试的阶段 n单元测试与集成测试区别 测试对象:单元测试对象是实现具体功能的单元,一般 对应详细设计中所描述的设计单元。集成测试是针对概要 设计所包含的模块以及模块组合进行的测试。 测试方法:单元测试所使用的主要测试方法是基于代码 的白盒测试。而集成测试所使用的主要测试方法是基于功 能的黑盒测试。 测试时间:集成测试要晚于单元测试,所以单元测试的 好坏直接影响着集成测试。 测试内容:单元测试主要包括模块内程序的逻辑等方面 ,集成测试主要是验证各个接口、接口之间的数据传递关 系、

10、模块组合后能否达到预期效果。 二、 集成测试 2.3 软件测试的阶段 n集成方法 p大爆炸集成Big bang integration (all module together) p自顶向下集成Top down integration (from higher levels no test drivers are needed) p自底向上集成Bottom up integration (from lower levels No test stubs necessary) p三明治集成Sandwich testing (combination of bottom-up and top-down

11、) 2.3 软件测试的阶段 二、 集成测试 n大爆炸集成 1. 目的 尽可能缩短测试时间,使用最少的测试用例验证系统。 2. 定义 大爆炸集成也称为一次性组装或整体拼装,这种集成测 试策略的做法就是把所有通过单元测试的模块一次性集成到 一起进行测试,不考虑组件之间的互相依赖性及可能存在的 风险。 2.3 软件测试的阶段 二、 集成测试 3. 具体方法 举例来说,假设要对某个系统的部分功能(包括4 个模块)进行测试,其功能分解如图: 2.3 软件测试的阶段 二、 集成测试 Unit Test D Unit Test C Unit Test B Unit Test A System Test (A

12、,B,C,D) 测试过程 2.3 软件测试的阶段 二、 集成测试 4. 优点 (1)可以并行测试所有模块。 (2)需要的测试用例数目少。 (3)测试方法简单、易行。 5. 缺点 (1)由于不可避免存在模块间接口、全局数据结构等 方面的问题,所以一次运行成功的可能性不大。 (2)如果一次集成的模块数量多,集成测试后可能会 出现大量的错误。另外,修改了一处错误之后,很可能 新增更多的新错误,新旧错误混杂,给程序的错误定位 与修改带来很大的麻烦。 (3)即使集成测试通过,也会遗漏很多错误。 2.3 软件测试的阶段 二、 集成测试 6. 适用范围 (1)只需要修改或增加少数几个模块的前期产品稳定的 项

13、目; (2)功能少,模块数量不多,程序逻辑简单,并且每个 组件都已经过充分单元测试的小型项目; (3)基于严格的净室软件工程(由IBM公司开创的开发接 近零缺陷的软件的成功做法)开发的产品,并且在每个开 发阶段,产品质量和单元测试质量都相当高的产品。 2.3 软件测试的阶段 二、 集成测试 n自顶向下集成 自顶向下的集成测试就是按照系统层次结构图, 以主程序模块为中心,从顶层控制(主控模块)开始,自上 而下按照深度优先或者广度优先策略,对各个模块一边组装 一边进行测试。 采用同设计顺序一样的思路对被测系统进行测试,来 验证系统的稳定性。 2.3 软件测试的阶段 二、 集成测试 Top-down

14、 Integration Testing A BCD GF E Layer I Layer II Layer III Test A Test A, B, C, D, E, F, G Test A, B, C, D Layer I Layer I + II All Layers 2.3 软件测试的阶段 二、 集成测试 n自底向上集成 1. 定义 自底向上集成是从系统层次结构图的最底层模块开始按 照层次结构图,逐层向上进行组装和集成测试的方式。 2.方法 .从最底层的模块开始组装; .编制驱动程序,协调测试用例的输入与输出; .测试集成后的构件; .使用实际模块代替驱动程序,按程序结构向上组装测

15、试后的构件; .重复上面的第二步,直到系统的最顶层模块被加入到 系统中为止。 2.3 软件测试的阶段 二、 集成测试 Bottom-up Integration A BCD GF E Layer I Layer II Layer III Test D,G Test F Test E Test G Test C Test A, B, C, D, E, F, G Test B, E, F 2.3 软件测试的阶段 二、 集成测试 n三明治集成(混合集成) 1.目的 综合利用自顶向下和自底向上两种集成测试策略 的优点 2.定义 三明治集成是一种混合增殖式测试策略,综合了 自顶向下和自底向上两种集成方法

16、,把系统划分成三层 ,中间一层为目标层,目标层上采用自顶向下集成,目 标层下采用自底向上集成。 2.3 软件测试的阶段 二、 集成测试 Sandwich Testing Strategy A BCD GF E Layer I Layer II Layer III Test D,G Test F Test E Test G Test A Test A, B, C, D, E, F, G Test B, E, F Bottom Layer Tests Top Layer Tests Test B Test D Test C Test A, B, C, D 2.3 软件测试的阶段 二、 集成测试 三、 系统测试 n什么是系统测试 p系统测试是将集成好的软件系统,作为整个基于计 算机系统的一个元素,与计算机硬件、外设、支持软件 、数据等其它系统元素结合在一起,在实际运行(使用 )环境下所进行的一系列测试活动。 n系统测试的目的 p通过与系统的需求定义比较,检查软件是否存在与 系统定义不符合或与之矛盾

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号