当前位置:
文档之家› 第二章 软件测试与软件开发过程的关系
第二章 软件测试与软件开发过程的关系
时机: 时机:
每次错误修改之后,或者版本更新之后 每次错误修改之后,或者版本更新之后 版本更新
方法: 方法:
白盒测试 黑盒 白盒测试/黑盒测试 测试 黑盒测试
责任: 责任:
开发工程师 开发工程师 测试工程师 测试工程师
测试过程测试过程 缺陷跟踪
缺陷跟踪: 缺陷跟踪:Defect Tracing
目标: 目标:
时机: 时机:
多数集成测试完成后
方法: 方法:
黑盒测试
责任: 责任:
测试工程师
测试过程-稳定期测试 测试过程 稳定期测试
系统测试: 系统测试:System Testing
稳定期测试
目标: 目标:
度量是否可以结束测试 度量是否可以结束测试
时机: 时机:
传统的系统测试完成后
方法: 方法:
黑盒测试 黑盒测试
确保所有发现的错误被正确记录、分发、评估、关闭、 确保所有发现的错误被正确记录、分发、评估、关闭、统 所有发现的错误被正确记录 计
时机: 时机:
从错误发现开始到错误关闭为止, 从错误发现开始到错误关闭为止,每次错误状态修改之后
方法: 方法:
缺陷跟踪系统
责任: 责任:
开发工程师 开发工程师 测试工程师 测试经理 用户
软件测试的三个阶段
初测阶段 细测阶段 回归测试阶段 在集成测试的功能冻结和代码冻结 期间主要是进行回归测试。 期间主要是进行回归测试。
单元测试: 单元测试:Unit Testing
目标: 目标:
检验程序最小单元有无错误 检验程序最小单元有无错误
接口、数据结构、边界、覆盖、 接口、数据结构、边界、覆盖、逻辑
责任: 责任:
测试工程师
测试过程测试过程 验收测试
验收测试:Acceptance Testing 验收测试:
目标: 目标:
使客户验收签字 系统是否符合事先约定的验收标准 系统是否符合事先约定的验收标准
时机: 时机:
系统测试完成后,在项目组看来开发和测试工作已经全 系统测试完成后,在项目组看来开发和测试工作已经全 部完成,可以交付 交付使用 部完成,可以交付使用
测试过程-系统测试 测试过程 系统测试
系统测试: 系统测试:System Testing
目标: 目标:
检验组成整个系统的代码、以及系统的软硬件配合有无错 检验组成整个系统的代码、以及系统的软硬件配合有无错 整个系统的代码 系统 误 代码实现的系统与用户需求 系统与用户需求是否吻合 代码实现的系统与用户需求是否吻合 检验系统的文档等各种是否完整 系统的文档等各种是否完整、 检验系统的文档等各种是否完整、有效 模拟验收测试的要求,检查系统是否符合用户的验收标准 模拟验收测试的要求,检查系统是否符合用户的验收标准
第二章 软件测试与软件开 发过程的关系及测试过程
2.1 软件产品组成
1.软件产品需要各种开发投入 软件产品需要各种开发投入 2.客户需求 客户需求 3.产品说明 产品说明 4.设计文档 设计文档 5.测试文档 测试文档 6.开发进度 开发进度 7.软件产品的其他组成部分 软件产品的其他组成部分
2.2 软件开发项目组
检验单元编码与设计是否吻合 检验单元编码与设计是否吻合
时机: 时机:
编码完成后, 编码完成后,首先要实施的测试
方法: 方法:
静态测试 静态测试 白盒测试 白盒测试
责任: 责任:
开发工程师
测试过程-集成测试 测试过程 集成测试
集成测试: 集成测试:Integration Testing
目标: 目标:
图2-2 螺旋过程模型
2.3.3 增量过程模型
有些时候可能会用一种几乎连续的过 程小幅度地推进项目,这就是增量过程 程小幅度地推进项目, 模型,如图 所示 所示。 模型,如图2-3所示。
增量 分析 设计 编码 测试 增量 1 交付客户 测试 增量 2 交付客户 测试 增量 3 交付客户
分析
设 计
图2-1 瀑布过程模型
2.3.2 螺旋过程模型
螺旋过程模型的基本思路是, 螺旋过程模型的基本思路是 , 依据 前一个版本的结果 构造新的版本 前一个版本 的结果构造新的版本 , 的结果 构造新的版本, 这个不断重复迭代 的过程形成了一 这个 不断重复迭代的过程形成了一 不断重复迭代 个螺旋上升的路径,如图 所示 所示。 个螺旋上升的路径,如图2-2所示。
检验组成系统的模块接口有无错误 检验组成系统的模块接口有无错误 模块 代码实现的系统 系统设计与需求定义是否吻合 代码实现的系统设计与需求定义是否吻合
时机: 时机:
主要的单元测试完成后, 主要的单元测试完成后,经常与单元测试同步进行
方法: 方法:
黑盒测试 黑盒测试
责任: 责任:
开发工程师 测试工程师
编码
分析
设计
编码
……
分析 设计 编码 测试 增量 n 交付客户 日历时间
图2-3 增量过程模型
2.4 软件测试与软件开发过程的关系
对于软件测试与软件开发过程之间的关 套用固定的模型不是聪明之举。 系 , 套用固定的模型不是聪明之举 。 比如 程序设计” 测试”之间的关系, “程序设计”与“测试”之间的关系,习惯 上总以为程序设计在先,测试在后, 上总以为程序设计在先,测试在后,如下图 ( a) 所示 。 而对于一些复杂的程序 , 将测 ) 所示。 而对于一些复杂的程序, 试分为同步测试与总测试更有效, 试分为同步测试与总测试更有效 , 如下图 (b)所示。 )所示。
方法: 方法:
黑盒测试 黑盒测试
责任: 责任:
产品经理或其他高级经理 开发工程师 测试工程师 用户
测试过程测试过程 回归测试
回归测试: 回归测试:Regression Testing
目标: 目标:
验证程序修改或者版本更新以后, 验证程序修改或者版本更新以后,以前正确的功能和其 修改或者版本更新以后 他指标仍旧正确。 他指标仍旧正确。
大爆炸式开发模式(SKIP) 大爆炸式开发模式 边写边改模式(SKIP) 边写边改模式 瀑布过程模型 螺旋过程模型 增量过程模型 极限编程( ) 极限编程(XP) (SKIP)等 等
2.3.1 瀑布过程模型
瀑布过程模型反映了人们早期 对软 瀑布过程模型反映了人们 早期对软 早期 件工程的认识水平, 是人们所熟悉的一 件工程的认识水平 , 是人们所 熟悉的一 种线性思维的体现 的体现。 种线性思维的体现。 瀑布过程模型强调阶段的划分 阶段的划分及其 瀑布过程模型强调阶段的划分及其 顺序性、各阶段工作及其文档的完备性 完备性, 顺序性、各阶段工作及其文档的完备性, 是一种严格线性的 按阶段顺序的、 严格线性的、 是一种严格线性的、按阶段顺序的、逐 步细化的开发模式 如图2-1所示 的开发模式, 所示。 步细化的开发模式,如图 所示。
软件项目经理 系统设计师 程序员 软件测试员/测试师 软件测试员 测试师 技术制作、用户助手、用户培训员、 技术制作、用户助手、用户培训员、手册 编写和文件档案专员 结构管理和制作人员
2.3 软件过程模型
软件开发过程中存在各种复杂因素 , 软件开发过程中存在各种 复杂因素, 为 复杂因素 了解决由此而带来的种种问题, 了解决由此而带来的种种问题,软件开发 经过多年的摸索, 多种实现软 者们经过多年的摸索 给出了多种 者们经过多年的摸索,给出了多种实现软 件工程的方式——软件过程模型。 件工程的方式 软件过程模型。 软件过程模型
程序设计 程序设计 测 试 同步测试 总测试
(a)程序设计在先测试在后
(b)测试分为同步测试与总测试
程序设计与测试的关系
现在还有一种全新的软件开发模式—— 现在还有一种全新的软件开发模式 测试驱动软件开发思想 以测试驱动软件开发思想 软件测试是贯穿于软件开发过程的 于软件开发过程的。 软件测试是贯穿于软件开发过程的。 软件生存周期的各个阶段 各个阶段中都少不了相 软件生存周期的 各个阶段 中都少不了相 应的测试, 应的测试 , 软件生存周期各个阶段的测 试分别对应于软件测试过程中的单元测 集成测试、 系统测试和确认测试, 试 、 集成测试 、 系统测试和确认测试 , 如下图所示。 如下图所示 。 这种对应关系有利于软件 开发过程的管理和软件质量的控制。 开发过程的管理和软件质量的控制。
Hale Waihona Puke 需求分析软件设计编
码
确认测试
集成测试
单元测试
需求分 析说明 书
概要设 计说明 书
详细设 计说明 书
源程序 代码
单元测 试
集成测 试
确认测 试
软件测试与软件开发的关系
2.5 软件开发对应的测试过程
用户需求 规格定义 设计 编码 配置管理 验收测试 系统测试 集成测试 单元测试 缺陷跟踪
回 归 测 试