精华内容
下载资源
问答
  • 软件测试模型: V模型,W模型,X模型,H模型
    千次阅读
    2020-03-09 23:16:03

    目录

    一. 敏捷测试

    二. 什么是单元测试?

    三. 什么是集成测试?

    四. 什么是系统测试?

    五. 什么是验收测试?

    六. 软件测试模型

    1. V模型

    2. W模型

    3. X模型

    4. H模型

    七. 测试模型的总结

    八. 在实际工作中应灵活地运用各类模型的优点.

    先介绍一下 "敏捷开发模型" 的测试模型, 即 敏捷测试, 有以下几个方案.

    一. 敏捷测试

    1. 不依赖文档.

           由于不依赖文档, 因此要时常和项目组的人沟通 测试人员自己的文档不再需要写测试用例, 而是需要画出思维导图, 将自己的测试点整理出来.

           有些公司虽然使用的是敏捷开发模型, 但要求测试和研发人员要按照传统模型的文档来写, 因为文档十分重要, 是后期了解项目的依据. 因此 测试用例, 需求文档, 研发设计文档都要求按照传统模型进行. 假如一点都不依赖文档, 测试或者开发人员一旦离职, 项目是无法说得清楚的, 因为需求文档和项目差异太大了, 这些变更都在开发人员和测试人员的大脑里, 他们离职了就带走了.

           因此有些公司要求重点写文档. 但有的公司要求其它文档轻, 核心文档重.

    2. 迭代周期频繁.

           由于项目迭代周期频繁, 工作量大, 压力大, 因此需要调整自己, 适者生存. 


    先介绍一下单元测试, 集成测试, 系统测试, 验收测试的基本概念.

    针对一个功能点四类测试所花费的时间(时间从少到多升序): 单元测试< 集成测试< 验收测试=< 系统测试

    二. 什么是单元测试?

           单元测试(unit testing), 是指对软件中的最小可测试单元进行检查和验证.

           对于单元测试中单元的含义, 一般来说, 要根据实际情况去判定其具体含义, 如C语言中单元指一个函数, Java里单元指一个类, 图形化的软件中可以指一个窗口或一个菜单. 总的来说, 单元就是人为规定的最小的被测功能模块.

           单元测试是在软件开发过程中要进行的最低级别的测试活动, 软件的独立单元将在与程序的其他部分相隔离的情况下进行测试.

           单元测试(模块测试)是开发者编写的一小段代码, 用于检验被测代码的一个很小的, 很明确的功能是否正确. 通常而言, 一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为.

           单元测试是由程序员自己完成的, 最终受益的也是程序员自己. 程序员有责任编写功能代码, 同时也有责任为自己的代码编写单元测试. 执行单元测试, 就是为了证明这段代码的行为和我们期望的一致. 

    三. 什么是集成测试?

            集成测试, 也叫组装测试或联合测试. 在单元测试的基础上, 将所有模块按照设计要求(如根据结构图)组装成为子系统或系统, 进行集成测试.

            实践表明, 一些模块虽然能够单独地工作, 但并不能保证连接起来也能正常的工作. 一些局部反应不出来的问题, 在全局上很可能暴露出来.

            集成测试最简单的形式是: 把两个已经测试过的单元组合成一个组件, 测试它们之间的接口. 从这一层意义上来讲, 组件是指多个单元的集成聚合. 在现实方案中, 许多单元组合成组件, 而这些组件又聚合为程序的更大部分. 方法是测试片段的组合, 并最终扩展成进程, 将模块与其他组的模块一起测试. 最后, 将构成进程的所有模块一起测试. 此外, 如果程序由多个进程组成, 应该成对测试它们, 而不是同时测试所有进程. 

    四. 什么是系统测试?

            系统测试(System Testing)是对整个系统的测试, 将硬件, 软件, 操作人员看作一个整体, 检验它是否有不符合系统说明书的地方. 

            这种测试可以发现系统分析和设计中的错误.如安全测试是测试安全措施是否完善, 能不能保证系统不受非法侵入. 再例如, 压力测试是测试系统在正常数据量以及超负荷量(如多个用户同时存取)等情况下是否还能正常地工作.

            系统测试是将经过集成测试的软件, 作为计算机系统的一个部分, 与系统中其他部分结合起来, 在实际运行环境下对计算机系统进行的一系列严格有效地测试, 以发现软件潜在的问题, 保证系统的正常运行.

    五. 什么是验收测试?

            验收测试是部署软件之前的最后一个测试操作. 在软件产品完成了单元测试, 集成测试和系统测试之后, 产品发布之前所进行的软件测试活动. 它是技术测试的最后一个阶段, 也称为 "交付测试".

            验收测试的目的是确保软件准备就绪, 并且可以让最终用户将其用于执行软件的既定功能和任务.

            验收测试是向未来的用户表明系统能够像预定要求那样工作. 经集成测试后, 已经按照设计把所有的模块组装成一个完整的软件系统, 接口错误也已经基本排除了, 接着就应该进一步验证软件的有效性, 这就是验收测试的任务, 即软件的功能和性能如同用户所合理期待的那样.


    六. 软件测试模型

    软件测试有4个模型: V模型, W模型, X模型, H模型. 

    1. V模型

     

    V模型每个阶段"测试人员" 的工作:

    研发阶段:

    • 研发第一阶段"用户需求"阶段, 测试人员不参与
    • 研发第二阶段"需求分析与系统设计"阶段, 测试人员需要学习需求, 确定测试范围, 并制定测试计划
    • 研发第三阶段"概要设计"阶段, 测试人员需要将测试计划细化.
    • 研发第四阶段"详细设计"阶段, 测试人员不参与. 第三第四阶段测试人员参与度很低, 基本是不参与的
    • 研发第五阶段"编码"阶段, 是V模型里的黄金分割线. 在这个阶段, 测试人员的核心工作是"编写测试用例".

    此时, V模型里左边的研发线结束, 下来开始V模型里右边的测试线, 测试线和研发线是一一对应的

    测试阶段:

    • 测试第一阶段"单元测试"阶段, 详细设计阶段对应的是单元测试阶段. 这个阶段普通测试人员不参与. 由白盒测试工程师和研发人员参与

           单元测试用的是"白盒测试"方法

    • 测试第二阶段"集成测试"阶段, 集成测试阶段对应的是概要设计阶段, 这个阶段既涉及到了代码, 又涉及到了功能, 因此这个阶段仍然是由白盒测试工程师和研发人员参与.

           集成测试用的是"灰盒测试(白+黑)"方法

    • 测试第三阶段"系统测试"阶段, 是测试人员花费时间最长的阶段.

           这个阶段, 测试人员需要完成的工作有五项: 数据搭建, 环境准备, 测试执行, 缺陷管理, 测试报告的输出

           系统测试用的是"黑盒测试"方法, 人员就是普通功能测试

    • 测试第四阶段"验收测试"阶段

           验收测试用的是"黑盒测试"方法, 测试人员是"用户"

    2. W模型

          W模型也可以看做是 "双V模型", 有两个 V, 一个是研发V, 一个是测试V, 将研发和测试的工作并行了起来, 使研发和测试的工作可以同时进行, 因此解决了V模型的三个缺点

    研发V中: V模型的左边的阶段是不变的, 黄金分割线是 "编码" 阶段

    1.  右边第一个阶段对应集成测试的是 "集成" 阶段;
    2.  右边第二个阶段对应系统测试的 "实施" 阶段,
    3.  右边第三个阶段对应验收测试的 "交付" 阶段. 交付之后用户才可以验收

    测试V中: V模型的右边的阶段是不变的, 黄金分割线是 "单元测试" 阶段

    1.    左边第一个阶段对应用户需求的是 "验收测试准备" 阶段, 为验收测试阶段做准备
    2.    左边第二个阶段对应需求分析与系统的是 "系统测试准备" 阶段, 为系统测试阶段做准备, 提前准备好项目需要用到 的测试工具以测试方法等
    3.    左边第三个阶段对应概要设计的是 "集成测试准备" 阶段, 为集成测试做准备,
    4.    左边第四个阶段对应详细设计的是 "单元测试准备" 阶段, 为单元测试做准备, 需要提前掌握单元测试相关知识, 提前搭建好单元测试框架.

           在V模型中, 用户需求, 概要设计, 详细设计阶段, 测试人员参与度很低, 基本不参与, 但是在W模型中, 测试人员是需要参与的. 测试人员在W模型的所有阶段全程参与.

    开发V和测试V的黄金分割线 "编码" 和 "单元测试" 是对应的

    •        对于编码阶段:  在V模型的"编码"阶段中, 测试人员做的工作是 编写测试用例; 而在W模型的"编码"阶段中, 测试人员既要编写测试用例又要单元测试
    •        对于单元测试阶段:  单元测试完成一个模块就可以进行测试. 而在W模型的其他阶段中, 测试人员的工作和 V模型中的工作是一样的, 此处不再赘述.

    W模型整体来看也是 "串型"的, 比如没有进行设计, 是无法直接拿着需求进行编码的; 没有编码是不能进行单元测试; 因此,W模型是有缺点的, W模型不适合 "敏捷" 这种需求频繁变更的开发模型.

    3. X模型

            X模型是对V模型的改进, X模型提出针对单独的程序片段进行相互分离的编码和测试. 此后通过频繁的交接, 通过集成, 最终合成为可执行的程序.

            X模型的左边描述的是针对单独程序片段所进行的相互分离的编码和测试, 此后将进行频繁的交接, 通过集成, 最终成为可执行的程序. 然后再对这些可执行程序进行测试. 已通过集成测试的成品可以进行封装并提交给用户, 也可以作为更大规模和范围内集成的一部分. 多根并行的曲线表示变更可以在各个部分发生.

            X模型还定位了探索性测试, 这是不进行事先计划的特殊类型的测试, 这一方式往往能帮助有经验的测试人员在测试计划之外发现更多的软件错误. 但这样可能对测试造成人力, 物力和财力的浪费, 对测试员的熟练程度要求比较高.

    4. H模型

            H模型中, 软件测试过程活动完全独立, 贯穿于整个产品的周期, 与其他流程并发地进行, 某个测试点准备就绪时, 就可以从测试准备阶段进行到测试执行阶段. 软件测试可以尽早的进行, 并且可以根据被测物的不同而分层次进行.

            H模型揭示了一个原理: 软件测试是一个独立的流程, 贯穿产品整个生命周期, 与其他流程并发地进行. H模型指出软件测试要尽早准备, 尽早执行. 不同的测试活动可以是按照某个次序先后进行的, 但也可能是反复的, 只要某个测试达到准备就绪点, 测试执行活动就可以开展.

    七. 测试模型的总结

    1. V模型

         V模型是软件开发瀑布模型的变种, 主要反映测试活动与分析和设计的关系;

         局限性: 把测试作为编码之后的最后一个活动, 需求分析等前期产生的问题直到后期的验收测试才能发现

    2. W模型

         在V模型的基础上, 增加了开发阶段的同步测试, 形成W模型; 测试和开发同步进行, 有利于尽早发现问题

         局限性: 仍把开发活动看成是从需求开始到编码结束的串型活动, 只有上一阶段完成后, 才可以开始下一阶段的活动, 不能支持迭代, 自发性以及变更调整

    3. H模型

         在H模型中, 软件测试过程完全独立, 贯穿整个项目的周期, 与其他流程并发地进行, 某个测试点准备就绪时, 就可以从测试准备阶段进行到测试执行阶段; 软件测试可以进行尽早进行; 软件测试可以根据被测物的不同而分层次进行

    八. 在实际工作中应灵活地运用各类模型的优点.

    V模型: 强调了在整个软件开发项目中需要经历的若干个测试级别, 并与每一个开发级别对应; 忽略了测试的对象不应该仅仅包括程序, 没有明确指出对需求和设计的测试

    W模型: 补充了V模型中忽略的内容, 强调了测试计划等工作的先行和对系统需求和系统设计的测试; 与V模型相同, 没有对软件测试的流程进行说明

    H模型: 强调测试独立的, 只要测试准备完成, 就可以执行测试.

     

     

     

    更多相关内容
  • V模型

    千次阅读 2020-07-29 09:13:37
    V模型V模型V模型 一 适用项目类型 二 优势 三 劣势 四 描述 五 特点

    V 模 型 V模型 V

    一 适用项目类型

    • V模式是一种传统软件开发模型,一般适用于一些传统信息系统应用的开发

    二 优势

    三 劣势

    • V模型仅仅把测试过程作为在需求分析、系统设计及编码之后的一个阶段,忽视了测试对需求分析,系统设计的验证,需求的满足情况一直到后期的验收测试才被验证
    • 解决的思路是,当一个软件开发的时候,研发人员和测试人员需要同时工作,测试在软件做需求分析的同时就会有测试用例的跟踪,这样,可以尽快找出程序错误和需求偏离,从而更高效的提高程序质量,最大可能的减少成本,同时满足用户的实际软件需求

    四 描述

    • 是瀑布模型的一种改进
    • 将测试和开发视为同等重要,对于开发阶段都有与之对应的测试阶段
    • V模型大体可以划分为以下几个不同的阶段步骤:客户需求分析、软件需求分析、概要设计、详细设计、软件编码、单元测试、集成测试、系统测试、验收测试。
    • V模型从整体上看起来,就是一个V字型的结构,由左右两边组成。左边的下划线分别代表了需求分析、概要设计、详细设计、编码。右边的上划线代表了单元测试、集成测试、系统测试与验收测试。看起来V模型就是一个对称的结构,它的重要意义在于,非常明确的表明了测试过程中存在的不同的级别,并且非常清晰的描述了这些测试阶段和开发阶段的对应关系
    • 一般来讲:单元测试所对应的是详细设计环节,也就是说,单元测试的测试用例是和详细设计一起出现的,在研发人员做详细设计的时候,相应的测试人员也就把测试用例写了出来;
    • 集成测试对应概要设计,在做模块功能分析及模块接口,数据传输方法的时候,就把集成测试用例根据概要设计中模块功能及接口等实现方法编写出来,以备以后作集成测试的时候可以直接引用
    • 系统测试,就是根据需求分析而来,在系统分析人员作系统分析,编写需求说明书的时候测试人员就根据客户需求说明书,把最后能实现系统功能的各种测试用例写出来,为做最后系统测试作准备。
    • 验收测试与用户需求对应,是非设计流程。

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    五 特点

    展开全文
  • 软件过程模型 软件生命周期 从设计、投入使用到被淘汰的全过程 注意这里不只是设计、连维护也是 每个过程会产生相应的文档 软件过程模型 也称为软件开发模型、软件生存周期模型 结构框架 能直观表达软件开发全...

    软件过程模型

    软件生命周期

    • 从设计、投入使用到被淘汰的全过程
    • 注意这里不只是设计、连维护也是
    • 每个过程会产生相应的文档

    在这里插入图片描述软件过程模型

    • 也称为软件开发模型、软件生存周期模型
    • 结构框架
    • 能直观表达软件开发全过程

    能力成熟度模型

    • 用来评估软件的生产能力
    • CMM是目前国际上使用流行的一种软件生产过程行业标准模型,可定义、评价软件开发过程的成熟度,并提供提高软件质量的指导。
    • CMM模型分为五级:初始级(1级)、可重复级(2级)、定义级(3级)、管理级(4级)、优化级(5级)共5个成熟度等级,低级别是实现高级别的基础

    在这里插入图片描述
    对应说明:
    (1)初始级(initial)。

    • 工作无序,项目进行过程中常放弃当初的计划。
      管理无章法,缺乏健全的管理制度。开发项目成效不稳定,项目成功主要依靠项目负责人的经验和能力,他一但离去,工作秩序面目全非

    (2)可重复级(Repeatable)。

    • 管理制度化,建立了基本的管理制度和规程,管理工作有章可循。
      初步实现标准化,开发工作比较好地按标准实施。
      变更依法进行,做到基线化,稳定可跟踪,新项目计划和管理基于过去实践经验,具有重复以前成功项目的环境和条件。
      核心:建立基本的项目管理和实践来跟踪项目费用、进度和功能特性

    (3)已定义级(Defined)。

    • 许多组织追求的目标
      开发过程,包括技术工作和管理工作,均已实现标准化、文档化。
      建立了完善的培训制度和专家评审制度,全部技术活动和管理活动均可控制,对项目进行中的过程、岗位和职责均有共同的理解 。
      核心:使用标准开发过程(或方法论)构建(或集成)系统

    (4)已管理级(Managed)。

    • 产品和过程已建立了定量的质量目标。
      开发活动中的生产率和质量是可量度的。
      已建立过程数据库。
      已实现项目产品和过程的控制。
      可预测过程和产品质量趋势,如预测偏差,实现及时纠正。
      核心:管理层寻求更主动地应对系统的开发问题

    (5)优化级(Optimizing)。

    • 可集中精力改进过程,采用新技术、新方法。
      拥有防止出现缺陷、识别薄弱环节以及加以改进的手段。
      可取得过程有效性的统计数据,并可据进行分析,从而得出最佳方法。
      核心:连续地监督和改进标准化的系统开发过程

    传统的软件过程模型

    瀑布模型

    • 瀑布模型(Waterfall Model) 是一个软件生命周期模型,开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,项目开发进程从一个阶段“流动”到下一个阶段,这也是瀑布模型名称的由来。
    • 是一种使用广泛,以文档为驱动的模型
    • 每个阶段都有与其相关联的里程碑和可交付产品
    • 每个阶段结束前完成文档审查,及早改正错误

    特点

    • 阶段间具有顺序性和依赖性
      必须等前一阶段的工作完成之后,才能开始后一阶段的工作。前一阶段的输出文档就是后一阶段的输入文档。
    • 推迟实现的观点
      清楚的区分逻辑设计与物理设计,尽可能推程序的物理实现,是因为编码之前阶段的工作没做或做得不扎实,过早地考虑进行程序实现,往往导致大量返工,有时甚至发生无法弥补的问题,带来灾难性的后果。
    • 质量保证的观点
      每个阶段都必须完成规定的文档,没有交出合格的文档就是没有完成该阶段的任务。
      每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。

    在这里插入图片描述
    实际模型

    • 原因
      传统的瀑布模型过于理想化,人在工作过程中不可能不犯错误。
    • 当后面阶段发现前面阶段的错误时,需要沿图中左侧的反馈线返回前面的阶段,修正前面阶段的产品之后再回来继续完成后面阶段的任务。

    在这里插入图片描述
    缺点

    • 瀑布模型是由文档驱动,在可运行的软件产品交付给用户之前,用户只能通过文档来了解产品是什么样的。瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要。也不适合需求模糊的系统。
    • 测试只是其中一个阶段,缺乏全过程测试思想

    在这里插入图片描述
    应用场合

    • 适用于系统需求明确且稳定、技术成熟、工程管理较严格的场合,如军工、航天、医疗

    V模型

    • V模型的中心思想是,研发人员和测试人员需要同时工作,在软件做需求分析的同时就会有测试用例的跟踪,这样可以尽快找出程序错误和需求偏离,从而更高效的提高程序质量,最大可能的减少成本,同时满足用户的实际软件需求。
    • V模型的重要意义在于,非常明确的表明了测试过程中存在的不同的级别,并且非常清晰的描述了这些测试阶段和开发阶段的对应关系。
      单元测试:是否满足详细设计的要求
      集成测试:验证已测试过的部分是否可以很好地结合在一起
      系统测试:检验系统功能、性能是否达到系统的要求。
      验收测试:确定软件的时限是否满足用户需求或合同需求

    特点

    • V模型体现的主要思想是开发和测试同等重要,左侧代表的是开发活动,而右侧代表的是测试活动。
    • V模型针对每个开发阶段,都有一个测试级别与之相对应。
    • 测试依旧是开发生命周期中的阶段,与瀑布模型不同的是,有多个测试级别与开发阶段对应。
    • V模型适用于需求明确和需求变更不频繁的情形。

    缺点

    • 虽然测试尽早的进入到开发阶段,但是真正进行软件测试是在编码之后,这样忽视了测试对需求分析,系统设计的验证,时间效率上也大打折扣。

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    原型模型

    博客出处

    • 在开发真实系统之前,通过构建一个可以运行的软件原型,使开发人员与用户达成共识,以便理解和澄清问题,最终在确定的客户需求基础上开发客户满意的软件产品。

    • 根据运用原型的目的和方式不同,可以将原型模型分为快速原型模型(抛弃型)和原型进化模型(渐进型)。
      在这里插入图片描述
      在这里插入图片描述

    快速原型模型

    • 快速原型模型是原型模型在软件分析、设计阶段的应用,用来解决用户对软件系统在需求上的模糊认识,或用来试探某种设计是否能够获得预期结果。

    特点

    • 快速原型是用来获取用户需求的,或是用来试探设计是否有效的。一旦需求或设计确定下来了,原型就将被抛弃。因此,快速原型要求快速构建、容易修改,以节约原型创建成本、加快开发速度。快速原型往往采用一些快速生成工具创建,例如 4GL 语言。目前,Microsoft Visual Basic、Inprise Delphi 等基于组件的可视化开发工具,也被应用于原型创建之中,并且都是非常有效的快速原型创建工具,而且还可用于原型进化。

    • 快速原型是暂时使用的,因此并不要求完整。它往往针对某个局部问题建立专门原型, 如界面原型、工作流原型、查询原型等。

    • 快速原型不能贯穿软件的整个生命周期,它需要和其他的过程模型相结合才能产生作 用。例如,在瀑布模型中应用快速原型,以解决瀑布模型在需求分析时期存在的不足。

    • 在这里插入图片描述

    原型进化模型(演化模型)

    • 原型进化对开发过程的考虑是,针对有待开发的软件系统,先开发一个原型系统给用户使用,然后根据用户使用情况的意见反馈,对原型系统不断修改,使它逐步接近并最终到达开发目标跟快速原型不同的是,快速原型在完成需求定义后将被抛弃,而原型进化所要创建的原型则是一个今后将要投入应用的系统,只是所创建的原型系统在功能、性能等方面还有许多不足,还没有达到最终开发目标,需要不断改进。 原型进化的工作流程如图所示。

    在这里插入图片描述

    特点

    • 原型进化模型将原型用于开发的全过程,原型由最基本的核心开始,逐步增加新的功能和新的需求,反复修改反复扩充,最后发展为用户满意的最终系统。
    • 原型进化模型是通过不断发布新的软件版本而使软件逐步完善的,因此,这种开发模式特别适合于那些用户急需的软件产品开发。它能够快速地向用户交付可以投入实际运行的软件成果,并能够很好地适应软件用户对需求规格的变更。原型进化模型能够适应软件需求的中途变更

    问题

    • 原型进化模型虽说使开发进程加快了,但不能像瀑布模型那样提供明确的里程碑管理,随着开发过程中版本的快速更新,项目管理、软件配置管理会变得复杂起来,管理者难以把握开发进度。因此,对于大型软件项目,原型进化模型缺乏有效的管理规程

    • 开发过程中软件版本的快速变更,还可能损伤软件的内部结构,使其缺乏整体性和稳定性。另外,用于反映软件版本变更的文档也有可能跟不上软件的变更速度。这些问题必将影响到今后软件的维护

    增量模型

    原博文

    • 把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。
      -
    • 增量模型对软件过程的考虑是:在整体上按照瀑布模型的流程实施项目开发,以方便对项目的管理;但在软件的实际创建中,则将软件系统按功能分解为许多增量构件,并以构件为单位逐个地创建与交付,直到全部增量构件创建完毕,并都被集成到系统之中交付用户使用。如同原型进化模型一样,增量模型逐步地向用户交付软件产品,但不同于原型进化模型的是,增量模型在开发过程中所交付的不是完整的新版软件,而只是新增加的构件

    增量模型的优点

    • 增量模型的最大特点就是将待开发的软件系统模块化和组件化。基于这个特点,增量模型具有以下优点。
      1、将待开发的软件系统模块化,可以分批次地提交软件产品,使用户可以及时了解软件项目的进展。
      2、以组件为单位进行开发降低了软件开发的风险。一个开发周期内的错误不会影响到整个软件系统。
      3、开发顺序灵活。开发人员可以对组件的实现顺序进行优先级排序,先完成需求稳定的核心组件。当组件的优先级发生变化时,还能及时地对实现顺序进行调整。

    增量模型的缺点:

    • 1、要求待开发的软件系统可以被模块化。如果待开发的软件系统很难被模块化,那么将会给增量开发带来很多麻烦
      2、由于各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构。  
      3、在开发过程中,需求的变化是不可避免的。增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而使软件过程的控制失去整体性

    增量模型适用范围:

    • 1、软件产品可以分批次地进行交付。
      2、待开发的软件系统能够被模块化。
      3、软件开发人员对应用领域不熟悉,难以一次性地进行系统开发。
      4、项目管理人员把握全局的水平较高。

    螺旋模型

    • 螺旋模型是快速原型法以进化的开发方式为中心,在每个项目阶段使用瀑布模型法。这种模型的每一个周期都包括需求定义、风险分析、工程实现和评审4个阶段,由这4个阶段进行迭代。螺旋模型即是一种引入了风险分析与规避机制的过程模型,是瀑布模型、快速原型方法和风险分析方法的有机结合。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失

    在这里插入图片描述
    在这里插入图片描述

    优点

    • 设计上的灵活性,可以在项目的各个阶段进行变更。

    • 以小的分段来构建大型系统,使成本计算变得简单容易。

    • 客户参与每个阶段的开发,保证了项目不偏离正确方向及项目的可控性。

    • 客户始终掌握项目的最新信息, 能够和管理层有效地交互。

    • 客户认可这种公司内部的开发方式带来的良好的沟通和高质量的产品。

    在这里插入图片描述
    在这里插入图片描述

    喷泉模型

    • 喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。该模型认为软件开发过程自下而上周期的各阶段是相互重叠和多次反复的,就像水喷上去又可以落下来,类似一个喷泉。各个开发阶段没有特定的次序要求,并且可以交互进行,可以在某个开发阶段中随时补充其他任何开发阶段中的遗漏。

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 测试模型

    一、测试模型概述

    软件测试和软件开发一样,都遵循软件工程原理,遵循管理学原理,所以理解好软件的开发模型会便于理解测试模型。
    软件测试的一般流程:
    在这里插入图片描述
    我们发现一般的软件测试流程和软件开发的流程一样,但是这样的流程测试介入的比较晚,对于前期重大的bug很难修复,所以测试的流程进行总结,总结出以下几个常用的测试模型:
    V模型,W模型(双V模型),H模型。

    二、V模型

    在这里插入图片描述

    1.V模型介绍

    V模型和瀑布模型有一些共同的特性,V模型中的过程从左到右,描述了基本的开发过程和测试行为。
    1.1 单元测试:是模块测试,验证软件的基本组成单位的正确性,是白盒测试。
    1.2 集成测试:是模块见的测试,测试接口(软件各模块之间的接口和软件与硬件之间的接口)是否正确,是灰盒测试(白盒和黑盒结合)。
    1.3 系统测试:系统测试包括:冒烟测试、系统测试、回归测试。
    冒烟测试:主干流程测试,确认软件的基本功能正常,可以进行后续的测试工作。
    系统测试:是检测系统的功能、质量、性能能否满足系统的要求,包括功能、性能、界面、可靠性、兼容性等等,是黑盒测试。
    回顾测试:修改了旧代码之后重新进行测试,确认修改后的代码没有引入新的错误或导致其他代码产生新的错误。
    1.4 验收测试:是确保软件的实现能否满足用户的需求或合同的要求。

    2.优缺点

    优点:
    2.1 每一个阶段都清晰明了,便于控制开发的每一个过程。
    2.2 既包含单元测试又包含系统测试。

    缺点:
    3.1 测试介入的比较晚,对于前期的一些缺陷无从发现和修改。
    3.2 测试和开发串行。

    三、W模型

    **在这里插入图片描述**

    1. W模型介绍

    V模型的局限性在于没有明确地说明早期的测试,无法体现“尽早和不断进行软件测试”的原则,在V模型中增加软件各开发阶段应同步进行的测试,演化为W模型,在模型中不难看出,开发时"V",测试是与此并行的"V"。
    W模型是V模型的发展,强调的是测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、功能和设计同样要测试。测试与开发是同步进行的,从而有利于尽早的发现问题。

    2. 优缺点

    优点
    2.1 测试伴随着软件的整个生命周期,例如,在需求分析结束后就可以进行需求分析测试。
    2.2 测试于开发是并行独立进行的。

    缺点
    3.1 对有些项目,开发过程中根本没有文档产生,故W模型无法使用。
    3.2 对于需求和设计的测试技术要求很高,实践起来很困难。

    四、H模型

    在这里插入图片描述

    1. H模型介绍

    H模型中,软件测试过程活动完全独立,贯穿于整个产品周期,与其他流程并发的进行,某个测试点准备就绪时,就可以从测试准备阶段进行到测试执行阶段。软件测试可以尽早的进行,并且可以根据被测物的不同而分层次进行。

    2. 优缺点

    优点
    2.1 开发的H模型揭示了软件测试除测试执行外,还有很多工作。
    2.2 软件测试完全独立,贯穿整个生命周期,且与其他流程并发进行。
    2.3 软件测试活动可以尽早准备,尽早执行,具有很强的灵活性。

    缺点
    3.1 管理型要求高:由于模型很灵活,必须要定义清晰的规则和管理制度,否则测试过程将非常难以管理和控制。
    3.2 技能要求高:H模型要求能够很好的定义每个迭代的规模,不能太大也不能太小。
    3.3 测试就绪点分析困难:测试很多时候,你并不知道测试准备到什么时候是合适的,就绪点在哪里,就绪点的标准是什么,这就对后续的测试执行的启动带来很大的困难。

    五、总结

    1. V模型:强调了在整个软件项目开发中需求经历的若干个测试级别,并与每一个开发级别对应;忽略了测试的对象不应该仅仅包括程序,没有明确指出对需求、设计的测试。
    2. W模型:补充了V模型中忽略的内容,强调了测试设计等工作的先行和对系统需求和系统设计的测试;与V模型相同,没有对软件测试的流程进行说明。
    3. H模型:强调测试是独立的,只要测试准备完成,就可以执行测试。
    展开全文
  • 测试流程V模型和双v模型

    千次阅读 2019-12-03 21:30:49
    软件测试的v模型和双v(w)模型 1,V模型 2,双V(W)模型 双v模型v模型最大的区别是,双v模型测试最早介入,不会把问题拖到后期放大后再来解决
  • V模型、W模型、测试工具的介绍

    千次阅读 2022-02-25 15:13:31
    首先呢 我们来说一下V模型 它是
  • 测试生命周期模型V模型W模型瀑布模型H模型快速原型模型X模型 V模型、W模型、瀑布模型、 H模型、快速原型模型、X模型 V模型 V模型:需求分析-概要设计-详细设计-编码-单元测试-集成测试-系统测试-验收测试 V模型的优...
  • 文章目录1 软件测试流程2 软件测试过程模型2.1 V模型(重点)2.2 W模型(重点)2.3 H模型2.4 X模型3 软件测试过程理念 1 软件测试流程 软件测试流程独立于开发之外的流程。在执行测试时,与开发有交集。 牢记该流程...
  • V模型、W模型、H模型 测试模型的概念 随着测试过程的管理和发展,测试人员通过大量的实践,从而总结出了不少测试模型,如常见的V模型、W模型、H模型等。这些模型与开发紧密结合,对测试活动进行了抽象,成为了测试...
  • 软件测试模型主要包括V模型、W模型、H模型、X模型和前置模型等。 V模型      V模型是软件开发瀑布模型的变种,它反映了测试活动和设计之间的关系。描述了基本的开发过程和测试行为,...
  • 软件开发经典流程图 在这里插入图片描述 一、瀑布模型 模型图 定义:瀑布模型(Waterfall Model)是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如...二、V 模型 模型图 定义:RAD (Rap Appli
  • 软件测试模型-V模型

    千次阅读 2020-06-17 14:41:32
    V 模型:是瀑布模型的改进,相当于瀑布模型的细化版。 具体的流程如图所示: V 模型的优点: 1、包含了底层测试(单元测试)和高层测试(系统测试); 2、清除地表示了开发和测试的各个阶段; 3、自上而下逐步求精...
  • V模型和W模型

    万次阅读 多人点赞 2019-05-06 18:11:04
    V模型(是瀑布模型的进阶) 明确的标注了测试过程中存在不同的测试类型,明确的表示出了开发阶段与测试各阶段的对应关系 单元测试是否满足详细设计的要求 集成测试验证之前已测试过的部分是否可以很好的结合在...
  • 软件测试双V模型

    千次阅读 2021-03-09 14:04:18
    测试的V模型 以“编码”为黄金分割线,将整个过程分为开发和测试,并且开发和测试之间是串行的关系 单元测试:是模块测试,验证软件的基本组成单位的正确性,是白盒测试 集成测试:是模块间的测试,测试接口(软件...
  • MATLAB 代码 基于C-V模型的水平集图像分割
  • 软件测试:V模型和W模型详解

    千次阅读 2021-03-14 10:13:59
      软件测试中有W模型和V模型,这是我们在测试过程中经常用到的两个模型,本篇博客我们就一起深入的学习了解这两个模型~ V模型 V模型最早是在20世纪80年代后期提出的,目的是改进软件开发的效率和结果,它是瀑布...
  • 软件测试模型——V模型 & W模型

    万次阅读 多人点赞 2018-08-19 15:53:45
    软件测试的V模型 以“编码”为黄金分割线,将整个过程分为开发和测试,并且开发和测试之间是串行的关系 单元测试和集成测试:是测试程序的执行能否满足软件设计的需求 系统测试:是检测系统的功能、质量、性能...
  • 开发模型之V模型

    千次阅读 2019-10-01 11:11:41
    V模型的目的在于改进软件开发的效率和效果。 2.常见理论性描述: V模型从整体上看起来,就是一个V字型的结构,由左右两边组成。 左边的下划线分别代表了需求分析、概要设计、详细设计、编码,又称为软件开发...
  • 一、基于ASPICE的V模型 1、ASPICE概述 ASPICE 全称是“Automotive Software Process Improvement and Capacity Determination”,汽车软件过程改进及能力评定,是汽车行业用于评价软件开发团队的研发能力水平的...
  • V模型与测试级别

    千次阅读 2018-09-26 17:19:50
    V模型体现的主要思想是开发和测试同等重要,左侧代表的是开发活动,而右侧代表的是测试活动; V模型针对每个开发阶段,都有一个测试级别与之想对应; 测试依旧是开发生命周期中的阶段,与瀑布模型不同的是,有...
  • V模型和W模型的区别是什么?

    万次阅读 2020-03-08 09:58:16
    V模型 V模型早是由Paul Rook在20世纪80年代后期提出的,目的是改进软件开发的效率和效果,是瀑布模型的变种 明确的标注了测试过程中存在的不同类型的测试,并且清楚的描述了这些测试阶段和开发过程期间各阶段的...
  • 1.V模型V模型和瀑布模型有一些共同的特性,V模型中的过程从左到右,描述了基本的开发 过程和测试行为。 优点:V模型的价值在于它非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发...
  • 1 V模型 瀑布模型的变种,把瀑布模型中的测试阶段与之前的分析设计阶段对应起来,即可得到V模型。 优点:非常明确地标明了测试过程中存在的不同级别,并且每个级别与分析设计阶段对应。每个测试阶段有明确的交付物...
  • 软件开发V模型--解读

    万次阅读 2018-07-04 10:03:42
    其模型构图形似字母V,所以又称V模型。 他通过开发和测试同时进行的方式来缩短开发周期,提高开发效率。可以说,V模型是软件开发测试中最重要的一种模型。 V模型大体可以划分为下面几个不同的阶段步骤,既需求分析...
  • V模型 W模型

    千次阅读 2022-02-25 19:27:08
    V模型 V模型的优点以及缺点 (1)V模型流程分为: 需求分析——概要设计——详细设计——编码——单元测试——集成测试——系统测试——验收测试 优点: 1、每一个阶段都清晰明了,便于控制开发的每一个过程 2、既...
  • 文章目录一:V模型1. V模型的优点2. v模型的缺点二:W模型1. W模型的优点2. W模型的缺点三:H模型1. H模型的优点:2. H模型的缺点三. 总结 一:V模型 V模型本身是软件开发中瀑布模型的变种,它反映了测试活动与分析...
  • 软件测试V模型简介

    万次阅读 2018-03-07 21:14:33
    V模型大体可以划分为以下几个不同的阶段步骤:需求分析、概要设计、详细设计、软件编码、单元测试、集成测试、系统测试、验收测试。需求分析即首先要明确客户需要的是什么,需要软件做成什么样子,需要有哪几项功能...
  • 项目开发流程(V模型

    千次阅读 2020-11-24 11:23:06
    瀑布模型: 螺旋模型: v模型:(画图)

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 475,282
精华内容 190,112
关键字:

v模型

友情链接: 9783319406626-c2.zip