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