当前位置:文档之家› 软件测试生命周期和测试模型

软件测试生命周期和测试模型


软件开发的生命周期
软件开发的生命周期,也叫软件开发流程,是指软件的开发过程中需要经 过哪些环节。软件开发的生命周
维护
软件开发过程
开发人员 构建产品
Software defect, “bug”
Fixed bug Bug introduced as a result of fixing another bug
维护的过程。 一个软件项目的生命周期和人类的生命周期的类比如图 人 类
出生 儿童 青年、中 死亡
少年
年、老年
软 件
可行性研究 需求分析
设计、编 码、测试
软件发 布维护
淘汰
软件生命周期要素
需求分析: 根据客户的要求,清楚了解客户需求中的产品功能、 特性、性能、界面和具体规格等,然后进行分析,确定软件产 品所能达到的目标。
开发的各个阶段比较清晰。
强调早期计划及需求调查。 适合需求稳定的产品开发。 前面未发现的错误会传递并扩散到后面的阶段,可能导致项目失败。 瀑布模型的缺点: 依赖于早期的需求调查,不适应需求的变化。 单一流程不可逆。 风险往往迟至后期才显露,失去及早纠正的机会。 测试仅是编码的一个阶段。 改良: 沿用瀑布模型的线性思想,细化了各个阶段,在某些重要关注的阶段之间 掺入迭代的思想
回顾:软件测试分类
黑盒测试、白盒测试的概念 静态测试、动态测试的概念 单元测试、集成测试、系统测试、验收测试的概念 功能测试、性能测试的概念和应用 回归测试、冒烟测试、随机测试的概念
本章目标
软件工程概念、软件工程的目标 软件的生命周期 开发过程模型:瀑布、原型 、螺旋、RUP、XP等 测试过程模型:V模型、W模型、H模型 软件测试过程和开发过程的关系
软件工程的目标
软件工程的目标: 付出较低的开发成本。 达到要求的软件功能。 取得较好的软件性能 开发的软件易于移植。 需要较低的维护费用。 易于维护 能按时完成开发任务。 能够及时交付使用。 开的软件可靠高。
高可靠性 高性能 按时交付 低开发成本
软件工程的目标之间的相互关系:
软件生命周期
什么是软件生命周期? 软件生命周期是软件工程中非常重要的概念。 软件生命周期:是指软件开发和测试全部过程、活动和任务的结构框 架,是从可行性研究到需求分析、软件设计、编码、测试、发布后的
软件测试周期和测试模型
掌握黑测试过程模型:V模型、W模型、H模型 了解软件测试过程
软件工程的定义
IEEE给出了一个全面的定义: 把系统化的、规范的、可度量的途径应用于软件开发、运行和 维护的过程.也就是把工程化应用于软件中. 通俗定义: 采用工程的概念、原理、技术和方法来开发与维护软件,把经 过时间考验而证明正确的管理技术和当前能够得到的最好的技 术方法结合起来,以经济地开发出高质量的软件并有效地维护 它,这就是软件工程。
快速原型模型
快速原型模型: 在开发真实系统之前,构造一个原型,在该原型的基础上,逐渐完成整 个系统的开发工作。第一步是建造一个快速原型,实现用户与系统的交互, 用户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使 其满足用户的要求,开发人员可以确定用户的真正需求是什么;第二步则在 第一步的基础上开发出用户满意的软件产品。
• 快速分析
原 型 的 表 示
快速 分析 评价
构造
• 需求说明
• 构造原型 运行
• 原型 • 运行原型 • 评价原型 • 修改意见
原 型 的 使 用
快速原型模型
快速原型模型的优点: 较短的开发过程。 更好的满足用户的需求并减少项目失败的风险。 用户对新系统更容易、更快的理解。 快速原型的缺点: 减少对更改和增补的灵活性和适应性。 减少对非预期失败情况的准备。 不适合大型系统的开发(适合开发小型的、灵活性高的系统)
快速原型模型分类
快速原型模型又可分为增量模型、渐进模型、演化模型 增量模型:对于需求不能很快全部明确的系统,软件开发项目难于做到一次 开发成功,此时可以使用增量模型。应尽可能明确已知的需求,完成相应的 需求分析,并按瀑布模型的方法进行第一次的开发工作。在系统集成时,通 过实验找出需求中的欠缺和不足,明确那些未知的软件需求,再迭代进行部 分分析和开发。 渐进模型:此模型主要是针对部分需求尽管明确,但一时难以准确进行定义 的系统设计,如用户的操作界面等。使用此模型时,可以先做初步的需求分 析,之后立即进行设计和编码,随后与系统进行第一次集成。根据集成后反 映的问题进一步做更全面的需求分析、设计、编码、测试。 演化模型:是一种非整体开发的模型。软件在该模型中是“逐渐”开发出来 的,开发出一部分,向用展示一部分,可让用户及早看到部分软件,及早发 现问题,也可以先开发一个原型软件,完成部分主要功能,展示给用户并征
瀑布模型
切入点
线性模型:
1.占有重要的地位,是所有其他模型的一个基础。 2.瀑布模型每 瀑布模型每一个阶段执行一次次,按线性顺序进行的软件开发。 测试的切入点:测试阶段处于软件实现后,必须在代码完成后留出足够的时间预 留给测试活动,否则将导致测试不充分,很多问题到用户使用时才爆发。
瀑布模型
瀑布模型的优点:
Coding
Lock-down Test & Stabilize
Release
软件开发过程模型思考&测试切入点
在软件开发的几十年实践中,人们总结了很多模型,如:瀑布
模型、快速原型模型、螺旋模型、RUP等一系列的模型;这些
模型对于软件开发过程具有很好的指导作用,但是非常遗憾的 是,在这些过程方法中,并没有充分强调测试的价值,也没有 给测试以足够的重视。
求用户的意见,然后逐步完善,最终获得满意的软件产品。演化模型具有较
大的灵活性,适合于软件需求不明确,设计方案有一定风险的软件。
设计: 根据需求分析的结果,考虑如何在逻辑、程序上去实现
所定义的产品功能、特性等,可以分为概要设计和详细设计, 也可分为数据结构设计、软件体系结构设计、应用接口设计、 模块设计、界面设计等。 编程: 将设计转换成计算机可识别的指令。 测试: 对设计、编程进行验证和用户需求确认的过程 维护:维持软件运行,修改软件缺陷、增强已有功能、增加新 功能、升级等。
相关主题