第2章 软件测试模型.ppt_第1页
第2章 软件测试模型.ppt_第2页
第2章 软件测试模型.ppt_第3页
第2章 软件测试模型.ppt_第4页
第2章 软件测试模型.ppt_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章测试过程 2 1如何定义过程 过程是指为了达到给定目的而执行的实践的集合 它可能包括工具 方法 资料和 或人 过程是指为了达到给定目的而执行的一系列活动的有序集 软件过程是指软件产品或软件系统从产生 投入使用到被淘汰的全过程 需求 包括问题分析和需求分析 设计 包括概要设计和详细设计 实现 把设计结果转换为可执行的程序代码 测试 包括单元测试 集成测试和确认测试 维护 是对投入运行的软件进行修改 使软件系统能适应外界环境变化 实现功能扩充和质量改善 为什么要定义软件过程 有助于以一种有序的方式选择过程了解工作目标和内容 明确每个任务完成标准借助已经建立的过程定义 软件专业人员能够更好地理解自身应该完成什么工作 了解可以指望合作人员做什么 明确自己应为合作人员提供什么 这样 软件专业人员就可以将精力放在完成自己份内的工作上 允许个人根据自身情况适当调整工作为组织提供了一个一致的工作框架 2 2软件开发模型 1 大棒开发法源于能量爆发创造宇宙 万物都由能量和物质积聚而成的理论 但如果不是遵循某种正确的排列和组合 形成的将不是预先期望的事物 大棒模式与上述理论一样 一大堆能量 这里指开发软件所需的人力和物力 放在一起 巨大的能量进行释放 通常的结果可能是产生了优秀的软件产品或成为一堆 废品 不成功的软件 优点 思路简单 通常可能是开发者的 突发奇想 缺点 开发过程是非工程化的 随意性大关于测试 有的较简单 有的则非常困难 2 边写边改法采用边写边改法的软件开发通常只是有了比较粗略的想法就开始进行简单的设计 然后进行较长的反复编写 测试与修复这样一个循环的过程 在认为无法更精细的描述软件产品要求时 就发布产品 优点 能够较为迅速的展现成果 适合需要快速制作而且用完就扔的小项目 如示范程序 演示程序等 缺点 其编码和测试可能将是长期的循环往复的过程 3 瀑布法瀑布模式是将软件的各项活动 规定为按照固定顺序相连的若干个阶段性工作 形如瀑布流水 最终得到软件产品 优点 易于理解 调研开发的阶段性 强调早期计划及需求调查 确定何时能够交付产品及何时进行评审与测试 缺点 需求调查分析只进行一次 不能适应需求变化 顺序的开发流程 使得开发中的经验教训不能反馈到该项目的开发中去 不能反映出软件开发过程的反复与迭代性 没有包含任何类型的风险评估 开发中出现的问题直到开发后期才能够显露 因此失去及早纠正的机会 一个软件生命周期包括 制定计划 需求分析 软件设计 程序编码 软件测试 软件运行 软件维护 软件停用等8个阶段 生命周期 增量迭代模型 螺旋模型RUP敏捷开发 4 螺旋模式法螺旋模式是瀑布模式与边写边改演化模式相结合 并加入风险评估所建立的软件开发模式 每一螺旋 开发阶段 包括5个步骤 确定目标 选择方案和限制条件 对方案风险进行评估 并能解决风险 进行本阶段的开发和测试 计划下一阶段 确定进入下阶段的方法 优点 可以在项目前期考虑对已经存在的软件进行重用 在软件产品开发过程中考虑了软件质量目标 关注于缺陷预防 并能够尽早发现缺陷 更好地控制项目活动的资源和相关成本 缺点 过分依赖风险评估 过于灵活的开发过程不适合开发者与客户之间有明确的合同约定 模型本身的文档化和推广需要较大工作量 5 RUPRUP即Rational统一过程模型 是一种强调迭代开发 持续集成的软件开发过程模型 RUP流程图 图4RUP模型 初始阶段 inception 目标是为系统建立商业案例和确定项目的边界 细化阶段 elaboration 目标是分析问题领域 建立健全的体系结构基础 编制项目计划 淘汰项目中最高风险的元素 构建阶段 construction 目标是将所有涉及的构件和应用程序功能被开发并集成为产品 并详尽测试所有的功能 产品化阶段 transition 目标是将软件产品交付给用户群体 迭代式开发 1 管理需求 2 基于组件的体系结构 3 可视化建模 4 验证软件质量 5 控制软件变更 6 6 敏捷开发最优先要做的是通过尽早地 持续地交付有价值的软件来使客户满意 即使到了开发后期 也允许需求变更 交付时间越短越好开发人员和业务人员协同工作 围绕个人构建项目 提倡面对面交谈 能够工作的软件是首要的进度度量标准 提倡可持续的开发速度 简单是根本 不断关注优秀的技能和好的设计最好的构架 需求和设计出自于自组织的团队 每隔一定时间就进行工作总结和调整 2 3软件开发与测试的关系 软件测试的生命周期测试与开发各阶段的关系软件开发与测试模型 软件测试的生命周期 软件测试的生命周期 softwaretestinglifecycle 分为几个阶段 如图5所示 前三个阶段就是引入程序错误阶段 后三个阶段就是清除程序错误的阶段 图5软件测试生命周期 在软件测试生命周期的每个阶段都要完成一些确定的任务 在执行每个阶段的任务时 可以采用行之有效的结构分析设计技术和适当的辅助工具 2 在结束每个阶段的任务时 都进行严格的技术审查和管理复审 3 最后提交最终软件配置的一个或几个成分 文档或程序 软件测试与开发的关系 图6软件测试与开发的顺序关系 1 软件测试与开发的顺序关系 软件开发过程是一个自顶向下 逐步细化的过程 首先在软件计划阶段定义了软件的作用域 然后进行软件需求分析 建立软件的数据域 功能和性能需求 约束和一些有效性准则 接着进入软件开发 首先是软件设计 然后再把设计用某种程序设计语言转换成程序代码 而测试过程则是依相反的顺序安排的自底向上 逐步集成的过程 低一级测试为上一级测试准备条件 此外还有两者平行地进行测试 如图6 首先对每一个程序模块进行单元测试 消除程序模块内部在逻辑上和功能上的错误和缺陷 再对照软件设计进行集成测试 检测和排除子系统 或系统 结构上的错误 随后再对照需求 进行确认测试 最后从系统全体出发 运行系统 看是否满足要求 图7软件测试与软件开发的并行性 2 软件测试与开发的并行关系 在软件的需求得到确认并通过评审后 概要设计工作和测试计划制定设计工作就要并行进行 如果系统模块已经建立 对各个模块的详细设计 编码 单元测试等工作又可并行 待每个模块完成后 可以进行集成测试 系统测试 并行流程如图7所示 2 4软件测试过程模型 V模型在V模型中 描述了一些不同的测试级别 并说明了这些级别所对应的生命周期中不同的阶段 清楚地描述了这些测试阶段和开发过程期间的对应关系 图8V模型示意图 用户 需求获取 需求定义 需求分析 需求分析书 概要设计 概要设计书 详细设计 详细设计书 编码 程序 软件产品 可交付软件 系统测试 已确认软件 确认测试 已集成软件 集成测试 已测试模块 单元测试 需 求 分 析 评审 评审 评审 评审 评审 评审 评审 评审 测试W模型由于各种原因 开发的每一个环节都可能产生错误 如果坚持各个阶段的技术评审 就能够尽早发现和预防错误 图9为软件开发与测试的W模型 形象地说明了软件测试与开发的这种同步性 图9W模型示意图 优点 测试贯穿于整个软件开发生命周期 测试对象不仅仅是程序 还包括需求和设计规格说明等 测试与开发同步 可以尽早 全面发现问题 缺点 为串行结构 需等上一阶段活动结束后才能开展下一活动 测试H模型与前两种模型相比 H模型充分地体现了测试过程 如图10所示的H模型揭示了 1 软件测试不仅仅指测试的执行 还包括很多其他的活动 2 软件测试是一个独立的流程 贯穿产品的整个开发周期 与其它流程并发进行 3 软件测试要尽早准备 尽早执行 4 软件测试根据被测物的不同是分层次的 不同层次的测试活动可以是按照某个次序先后进行的 但也可能是反复的 图10H模型示意图 软件测试的完整模型 图11软件测试与开发的完整模型 测试在开发阶段的作用 项目规划阶段 负责从单元测试到系统测试的整个测试阶段的监控 需求分析阶段 确定测试需求分析 系统测试计划的制定 评审后成为管理项目 详细设计和概要设计阶段 确保集成测试计划和单元测试计划完成 编码阶段 由开发人员进行自己负责部分的测试代码 在项目较大时 由专人进行编码阶段的测试任务 测试阶段 单元 集成 系统测试 依据测试代码进行测试 并提交相应的测试状态报告和测试结束报告 2 5测试组织中的测试过程 不成熟组织中的测试过程测试没有自己的周期 和开发生命周期串行测试组和一个不成熟的开发组织一起工作 将感到非常痛苦不成熟的开发组织将产生一个非产品化 混乱的 屡受搓折的环境中产生低质量的不另人满意的结果 成熟组织中的测试过程 测试有自己的周期 和开发生命周期并行在一个成熟的开发组织中 测试组可以并能够集中精力在内部流程改进上测试流程的有效改革将会成为促进不成熟组织改进开发流程的催化剂 软件测试流程的质量决定测试是否成功 标准软件测试过程 基本特性 1 计划性 任务人员设备时间相关 2 平行性 开发编码 测试再测试 3 完整性 计划大纲用例 4 重用性 测试再测试回归测试升级多平台 5 可重复性 用例大纲再现Bugs 6 周期性 测试周期回归更新 7 可管理性 测试组织完整的计划良好的准备工作 ISTQB定义的软件测试过程模型 测试阶段 软件测试过程可被分成五个阶段 Theplanningandcontrolphase 计划和控制阶段Thepreparationphase 准备阶段Thespecificationphase 规范阶段Theexecutionphase 测试执行阶段Thecompletionphase 完成阶段 计划与控制阶段 它是整个测试过程中最重要的阶段 为实现可管理且高质量的测试过程提供基础 本阶段的主要工作内容 1 拟定测试计划 2 论证那些使开发过程难于管理和控制的因素 3 明确软件产品的最重要部分 风险评估 准备阶段 开始本阶段的前提条件 完成测试计划的拟定 需求规格说明书 第一版 的确定 本阶段的主要工作内容 对需求规格说明书的仔细研究 将要测试的产品分解成可独立测试的单元 为每个测试单元确定采用的测试技术 为测试的下一个阶段及其活动制定计划 规范阶段 本阶段的主要工作内容 编写测试大纲 测试用例 测试脚本 搭建测试环境 测试数据库 软件环境 硬件环境 测试用例描述的内容 输入 执行过程 预期输出 实施执行阶段 根据测试大纲 测试用例 测试脚本进行测试 1 根据测试大纲 测试用例进行测试 找出预期的测试结果和实际测试结果之间的差异 2 填写软件问题报告 3 确定造成这些差异的原因 产品有缺陷 规格说明书有缺陷 测试环境和测试下属部件有缺陷 测试用例设计不合理 测试报告 与管理层进行沟通的方式已测试部分占产品多大的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论