zoukankan      html  css  js  c++  java
  • 软件测试模型

    1.V模型
      在软件测试方面,V模型是最广为人知的模型,他是软件开发瀑布模型的变种,V模型是在快速应用开发(RapApplicationDevelopment,RAD)模型基础上演变而来,由于整个开发过程构成一个V字型而得名,详情见图1。尽管很多富有实际经验的测试人员还是不太熟悉V模型,或者其它的模型。V模型已存在了很长时间,和瀑布开发模型有着一些共同的特性,由此也和瀑布模型一样地受到了批评和质疑。V模型中的过程从左到右,描述了基本的开发过程和测试行为。V模型的价值在于它非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系。
    从上图可以看出:
      强调软件开发的协作和速度,反映测试活动和分析设计关系,将软件实现和验证有机结合起来;
      明确界定了测试过程存在不同的级别;
      明确了不同的测试阶段和研发过程中的各个阶段的对应关系;
      仅仅把测试过程作为在需求分析、系统设计及编码之后的一个阶段,忽视了测试对需求分析;
      系统设计的验证,一直到后期的验收测试才被发现;
      没有明确的说明早起的测试,不能体现“尽早地、不断地进行软件测试”的原则。
    2. W模型
      V模型的局限性在于没有明确地说明早期的测试,无法体现“尽早地和不断地进行软件测试”的原则。在V模型中增加软件各开发阶段应同步进行的测试,演化为W模型(如下图)。在模型中不难看出,开发是“V”,测试是与此并行的“V”,详情见图2。基于“尽早地和不断地进行软件测试”的原则,在软件的需求和设计阶段的测试活动应遵循IEEE1012-1998《软件验证与确认(V&V)》的原则。
      W模型由Evolutif公司提出,相对于V模型,W模型更科学。W模型是V模型的发展,强调的是测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、功能和设计同样要测试。测试与开发是同步进行的,从而有利于尽早地发现问题。
      W模型也有局限性。W模型和V模型都把软件的开发视为需求、设计、编码等一系列串行的活动,无法支持迭代、自发性以及变更调整。
      W模型,也就是双V模型,并不是在V模型上又搞出一个来,而是开发阶段与测试设计阶段同步进行,比如在进行需求分析,软件功能规格说明书评审,软件功能规格说明书基线化后,系统测试计划,方案,用例也设计完毕,接着是概要设计与集成测试设计,详细设计与单元测试设计,直到编码完成后,进行代码审查,继续执行单元测试、集成测试、系统测试。
     
      从上图可以看出:
      W模型强调测试伴随着整个软件开发周期,测试与开发并行进行,有利于尽早发现问题;
      测试的对象不单单是程序,还有需求和设计等;
      W模型有利于即时了解项目的测试风险,及早制定应对方案,加快项目进度;
      软件开发和测试保持着线性的前后关系,无法支持迭代、自发性以及需求变更调整等。
     
    3. X模型

      X模型是由Marick提出的,他的目标是弥补V模型的一些缺陷,例如:交接、经常性的集成等问题。

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

         X模型还定位了探索性测试(右下方)。这是不进行事先计划的特殊类型的测试,诸如“我这么测一下结果会怎么样?”,这一方式往往能帮助有经验的测试人员在测试计划之外发现更多的软件错误。

          但V模型的一个强项是它明确的需求角色的确认,而X模型没有这么做,这大概是X模型的一个不足之处。 而且由于X模型从没有被文档化,其内容一开始需要从V模型的相关内容中进行推断,因为它还没有完全从文字上成为V模型的全面扩展。

     

    4. H模型

        V模型和W模型均存在一些不妥之处。如前所述,它们都把软件的开发视为需求、设计、编码等一系列串行的活动,而事实上,这些活动在大部分时间内是可以交叉进行的,所以,相应的测试之间也不存在严格的次序关系。同时,各层次的测试(单元测试、集成测试、系统测试等)也存在反复触发、迭代的关系。

      为了解决以上问题,有专家提出了H模型。它将测试活动完全独立出来,形成了一个完全独立的流程,将测试准备活动和测试执行活动清晰地体现出来。

    这个示意图演示了在整个生产周期中某个层次上的一次测试“微循环”。图中标注的其它流程可以是任意的开发流程,例如设计流程或者编码流程。也就是说, 只要测试条件成熟了,测试准备活动完成了,测试执行活动就可以进行了。

     

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

    总结:

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

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

    2.软件测试过程模型-W模型

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

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

    3.软件测试过程模型-H模型

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

     

  • 相关阅读:
    安全编码1
    VPP tips
    VPP概述汇总
    C语言安全编码摘录
    TCP-proxy
    Scipy Lecture Notes学习笔记(一)Getting started with Python for science 1.4. Matplotlib: plotting
    Scipy Lecture Notes学习笔记(一)Getting started with Python for science 1.3. NumPy: creating and manipulating numerical data
    Scipy Lecture Notes学习笔记(一)Getting started with Python for science 1.2. The Python language
    Scipy Lecture Notes学习笔记(一)Getting started with Python for science 1.1. Python scientific computing ecosystem
    25马5跑道,求最快的五匹马的需要比赛的次数
  • 原文地址:https://www.cnblogs.com/ellie-test/p/4350488.html
Copyright © 2011-2022 走看看