软件测试--基础知识2--开发模型、测试模型

文章目录

  • 一、开发模型
    • 1、瀑布模型
      • 1、概念
      • 2、测试的切入点
      • 3、优缺点
        • 1)优点
        • 2)缺点
        • 3)改良
    • 2、迭代模型
      • 1)概念
      • 2)优缺点
        • i、优点
    • 3、敏捷开发(Scrum)模型
      • 1)描述
    • 4、快速原型模型
      • 1)描述
      • 2)优缺点
        • i、优点
        • ii、缺点
    • 5、螺旋模型
      • 1)描述
      • 2)优缺点
        • i、优点
        • ii、缺点
    • 6、增量模型
      • 1)描述
      • 2)缺点
  • 二、测试模型
    • 1、V模型
      • 1)单元测试
      • 2)集成测试
      • 3)系统测试
      • 4)验收测试
      • 5)V模型优缺点
    • 2、W模型
      • 1)优缺点
    • 3、H模型-测试外包公司
      • 1)流程
      • 2)优缺点
    • 4、X模型-V模型的改进
      • 1)简介
    • 5、总结
    • 6、测试过程(工作)独立性

一、开发模型

软件生命周期模型

1、瀑布模型

软件测试--基础知识2--开发模型、测试模型_第1张图片

1、概念

  • 是线性模型的一种,在所有模型中占有重要地位,是所有其他模型的基础
  • 每一个阶段执行依次,按线性顺序进行软件开发

2、测试的切入点

测试阶段处于软件实现后,必须在代码完成后留出足够的时间给测试活动,否则将导致测试不充分,很多问题到项目后期才暴露

3、优缺点

1)优点
  • 发的各个阶段比较清晰
  • 强调早期计划及需求调查
  • 适合需求稳定的产品开发
2)缺点
  • 依赖于早期的需求调查,不适应需求的变化
  • 单一流程不可逆
  • 风险往往延至后期才显露,失去及早纠正的机会
  • 问题在项目后期才显露
  • 前面未发现的错误会传递并扩散到后面的阶段,可能导致项目失败
3)改良

沿用瀑布模型的线性思想,细化了各个阶段,在某些重要关注的阶段之间融入小型的迭代(即在每个阶段都进行测试,各部门人员集中起来看这个阶段是否完成的很好

2、迭代模型

软件测试--基础知识2--开发模型、测试模型_第2张图片

1)概念

  • 迭代包括产生产品发布(稳定、可执行的产品版本)的全部开发活动和要使用该发布必需的所有其他元素,强调开发的深入
  • 在某种程度上,开发迭代是一次完整的经过所有工作流程的过程:需求分析、设计、实施和测试工作流程
  • 刚开始的产品就是稳定的可执行的,然后在初级版本的基础上不断的深入开发更多的功能

2)优缺点

i、优点
  1. 降低了在一个增量上的开支风险
  2. 降低了产品无法按照既定进度进入市场的风险
  3. 加快了整个开发工作的进度
  4. 迭代过程这种模式使适应需求的变化会更容易些

3、敏捷开发(Scrum)模型

软件测试--基础知识2--开发模型、测试模型_第3张图片

1)描述

强调快和灵活
敏捷宣言:也叫做敏捷软件开发宣言,正式宣布了对四种核心价值和十二条原则,可以指导迭代的以人为中心的软件开发方法

  • 个体和互动高于流程和工具
  • 工作的软件高于详尽的文档
  • 客户合作高于合同谈判
  • 响应变化高于遵循计划

4、快速原型模型

软件测试--基础知识2--开发模型、测试模型_第4张图片

1)描述

Axure工具–用来制作软件产品的原始模型
在开发真实系统之前,构造一个原型(即雏形),在该原型的基础上,逐渐完成整个系统的开发工作(实现一个基本原型,让用户对原型进行评价,逐步调整,使其满足用户最终需求)

  1. 第一步是建造一个快速原型,实现用户与系统的交互,用户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足用户的要求,开发人员可以确定用户的真正需求是什么
  2. 第二步是在第一步的基础上开发出用户满意的软件产品

2)优缺点

i、优点
  • 克服瀑布模型的缺点,更好的满足用户的需求并减少由于软件需求不明确带来的项目开发风险
  • 适合预先不能确切定义需求的软件系统的开发
ii、缺点
  • 不适合大型系统的开发(适合开发小型的、灵活性高的系统);
  • 前提要有一个展示性的产品原型,因此在一定程度上可能会限制开发人员的创新

5、螺旋模型

软件测试--基础知识2--开发模型、测试模型_第5张图片

1)描述

引进了其他模型都没有的风险分析阶段
螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期大致和瀑布模型相符合,螺旋模型沿着螺旋线旋转,即在坐标的4个象限上分别表示了4个方面的活动
即:制定计划、风险分析、实施开发、客户评估

2)优缺点

i、优点

螺旋模型很大程度上是一种风险驱动的方法体系,因为在每个阶段之前及经常发生的循环之前,都必须首先进行风险评估

ii、缺点

采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能及时标识风险,势必造成重大损失。过多的迭代次数会增加开发成本,延迟提交时间

6、增量模型

1)描述

将软件分为不同的模块,根据不同的需求选择开发的模块

2)缺点

打破原有的软件结构和框架,可能会带来一定的风险
增量模型一般会和迭代模型一起运用
增加了的模块使用增量模型,优化或修复了什么功能使用迭代模型。

二、测试模型

V模型,W模型,H模型,x模型

1、V模型

V模型是最早的测试模型,是开发模型中瀑布模型的变种,反应了测试活动与分析和设计的关系
软件测试--基础知识2--开发模型、测试模型_第6张图片

1)单元测试

又称模块测试,针对软件设计中的最小单元—程序模块

2)集成测试

又叫组装测试,通常在单元测试的基础上,将所有程序模块进行有序的、递增的测试,重点测试不同模块的接口部分

3)系统测试

  • 指的是将整个软件系统看为一个整体进行测试,包括功能、性能、以及软件所运行的软硬件环境进行测试
  • 系统测试在系统集成完毕后进行测试,前期主要测试系统的功能是否满足需求,后期主要测试系统运行的性能是否满足需求,以及系统在不同的软硬件环境中的兼容性

4)验收测试

  • alpha测试:是内测版本,开发人员自己测试,不面向客户(开发环境下的测试);主要看有没有功能缺失或系统错误
  • beta测试:是公测版本,对所有用户开放的版本(在实际环境中的测试);主要看客户对软件外观、使用方便等的反应
  • γ(ganmma)测试:指的是软件版本正式法相的候选版本

5)V模型优缺点

优点:

  • V模型即包含了底层测试又包含了高层测试
    • 底层测试:检验源代码质量的测试,如单元测试
    • 高层测试:检验整个系统的需要,如系统测试
  • V模型清楚的标识出软件开发的阶段
  • 采用自顶向下逐步求精的方式把整个开发过程分成不同的阶段,每个阶段分工明确,便于控制开发过程。当所有阶段都完成之后,软件的开发过程也随之结束

缺点:

  • V模型仅仅把测试过程作为在需求分析、系统设计及编码之后的一个阶段,忽视了测试对需求分析、系统设计的验证
  • 需求的满足情况一直到后期的验收测试才被验证
  • 没有体现出 “尽早地不断地进行软件测试” 的原则

改良:
每个步骤都可以进行小的迭代工作

2、W模型

  • W模型就是双V模型,在软件的需求和设计阶段也有测试,开发一个V,测试一个V,组成W模型
  • 测试伴随整个软件开发周期,并且测试的对象不仅仅是程序,需求和设计同样需要测试
    软件测试--基础知识2--开发模型、测试模型_第7张图片

1)优缺点

优点:

  • 测试的活动与软件开发同步进行
  • 测试对象不仅仅是程序,包括需求和设计
  • 尽早发现软件缺陷可以降低软件开发的成本

缺点:

  • 在W模型中,需求、设计、编码等活动被视为串行的,这样就无法支持灵活的迭代。

3、H模型-测试外包公司

为了解决无法迭代的问题,提出H模型,即将测试活动完全独立出来,形成一个完全独立的流程,同时将测试准备和测试执行表现出来
软件测试--基础知识2--开发模型、测试模型_第8张图片

1)流程

测试流程:

  • 测试准备:所有测试执行活动的准备;判断是否到测试就绪点;
  • 测试就绪点:测试准入准则,即是否可以开始执行测试的条件
  • 测试执行:具体的执行测试的程序

其他流程:

  • 具体开发中的流程,如:设计流程

2)优缺点

优点:

  • H模型将测试活动完全独立出来,形成了一个完全独立的流程,将测试准备活动和测试执行活动清晰的体现出来
  • H模型揭示了一个原理:软件测试是一个独立的流程
  • H模型指出软件测试要尽早准备,尽早执行;只要某个测试达到准备就绪点,测试执行活动就可以开展,并且不同的测试活动可按照某个次序先后进行,也可以反复进行
    缺点:
  • 管理型要求高:由于模型很灵活,必须要定义清晰的规则和管理制度,否则测试过程将难以管理和控制
  • 技能要求高:H模型要求能够很好的定义每个迭代的规模,不能太大也不能太小
  • 测试就绪点分析困难:测试就绪点没有固定的标准,因此很难把握什么时候测试准备就绪,后续的测试执行也很难开展
  • 对于整个项目组的人员要求非常高:需要每个人员对整体项目都很了解,在整个系统中,如果某个阶段某个环节的人员技能有限,无法在规定时间内有效完成任务,会耽误整个项目的推进

4、X模型-V模型的改进

软件测试--基础知识2--开发模型、测试模型_第9张图片

1)简介

  • X模型是对V模型的改进,X模型提出针对单独的程序片段进行相互分离的编码和测试,此后通过频繁的交接,通过集成最终合成为可执行的程序
  • X模型还定位了探索性测试,这是不进行事先计划的特殊型的测试,这一方式往往能帮助有经验的测试人员在测试计划之外发现更多的软件错误

5、总结

V模型适用于中小型企业;W模型适用于中大型企业(因为人员要求高);H模型人员要求非常高,很少有公司使用。

6、测试过程(工作)独立性

A、研发团队内部的测试岗位
B、企业内部的独立于研发部门的测试岗位
C、专门的测试外包公司的岗位
D、开发人员自己的测试
测试独立性由高到底排列顺序:
C>B>A>D

你可能感兴趣的:(软件测试,测试基础)