测试模型的V模型,W模型,X模型,H模型
V V 模型模型,W,W 模型模型,X,X 模型模型,H,H 模型模型 一、一、V V 模型模型 在软件测试方面,V 模型是最广为人知的模型,尽管很多富有实际经验的测试人员还是 不太熟悉 V 模型,或者其它的模型。V 模型已存在了很长时间,和瀑布开发模型有着一些共 同的特性,由此也和瀑布模型一样地受到了批评和质疑。 V 模型中的过程从左到右,描述了 基本的开发 过程和测试行为。V 模型的价值在于它非常明确地标明了测试过程中存在的不 同级别,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系。局限性: 把 测试作为编码之后的最后一个活动, 需求分析等前期产生的错误直到后期的验收测试才能发 现. 1 1.从水平对应关系看.从水平对应关系看 左边是设计和分析,是软件设计实现的过程,同时伴随着质量保证活动——审核的过 程,也就是静态的测试过程;右边是对左边结果的验证, 是动态测试的过程,即对设计和分 析的结果进行测试,以确认是否满足用户的需求。如: 需求分析和功能设计对应验收测试,说明在做需求分析、产品功能设计的同时, 测试人员就可以阅读、审查需求分析的结果,从而了解产品的设计特性、用户 的真正需求,确定测试目标,可以准备用例(Use Case)并策划测试活动。 当系统设计人员在做系统设计时,测试人员可以了解系统是如何实现的,基于什 么样的平台,这样可以设计系统的测试方案和测试计划,并事先准备系统的测 试环境,包括硬件和第三方软件的采购。因为这些准备工作,实际上是要花去 很多时间。 当设计人员在做在做详细设计时,测试人员可以参与设计,对设计进行评审,找 出设计的缺陷,同时设计功能、新特性等各方面的测试用例,完善测试计划, 并基于这些测试用例以开发测试脚本。 在编程的同时,进行单元测试,是一种很有效的办法,可以尽快找出程序中的错 误,充分的单元测试可以大幅度提高程序质量、减少成本。 从中可以看出, V 模型使我们能清楚地看到质量保证活动和项目同时展开, 项目一启动, 软件测试的工作也就启动了,避免了瀑布模型所带来的误区——软件测试是在代码完成之后 进行。 2 2.从垂直方向看.从垂直方向看 水平虚线上部表明,其需求分析、定义和验收测试等主要工作是面向用户,要和用户 进行充分的沟通和交流,或者是和用户一起完成。水平虚线下部的大部分工作,相对来说, 都是技术工作,在开发组织内部进行,主要是由工程师、技术人员完成。 从垂直方向看,越在下面,白盒测试方法使用越多,到了集成、系统测试,更多是将白盒测 试方法和黑盒测试方法结合起来使用, 形成灰盒测试方法。而在验收测试过程中,由于用户 一般要参与,使用黑盒测试方法。 二、二、W W 模型模型 V 模型的局限性在于没有明确地说明早期的测试,无法体现“尽早地和不断地进行软件 测试” 的原则。在V 模型中增加软件各开发阶段应同步进行的测试,演化为W 模型(如下 图)。在模型中不难看出,开发是“ V”,测试是与此并行的“V”。基于“尽早地和不断地 进行软件测试”的原则,在软件的需求和设计阶段的测试活 动应遵循 IEEE1012-1998《软 件验证与确认(V&V)》的原则。 W 模型由 Evolutif 公司提出,相对于 V 模型,W 模型更科学。W 模型是 V 模型的发展, 强调的是测试伴随着整个软件开发周期, 而且测试的对象不仅仅是程序, 需求、功能和设计 同样要测试。测试与开发是同步进行的,从而有利于尽早地发现问题。 W 模型也有局限性。W 模型和 V 模型都把软件的开发视为需求、设计、编码等一系列串 行的活动,无法支持迭代、自发性以及变更调整。 三、三、X X 模型模型 X模型也是对V模型的改进,X模型提出针对单独的程序片段进行相互分离的编码和测试, 此后通过频繁的交接,通过集成最终合成为可执行的程序。 X 模型的左边描述的是针对单独程序片段所进行的相互分离的编码和测试, 此后将进行 频繁的交接,通过集成最终成为可执行的程序,然后再对这些可执 行程序进行测试。己通 过集成测试的成品可以进行封装并提交给用户, 也可以作为更大规模和范围内集成的一部分。 多根并行的曲线表示变更可以在各个部分发生。由图中可见, X 模型还定位了探索性测试, 这是不进行事先计划的特殊类型的测试, 这一方式往往能帮助有经验的测试人员在测试计划 之外发现更多的软件错误。但 这样可能对测试造成人力、物力和财力的浪费,对测试员的 熟练程度要求比较高。 四、四、H H 模型模型 H 模型中, 软件测试过程活动完全独立,贯穿于整个产品的周期,与其他流程并发地进 行,某个测试点准备就绪时,就可以从测试准备阶段进行到测试执行阶段。 软件测试可以尽早 的进行,并且可以根据被测物的不同而分层次进行。 这个示意图演示了在整个生产周期中某个层次上的一次测试 “微循环”。图中标注的其 它流程可以是任意的开发流程,例如设计流程或者编码流程。也就是说, 只要测试条件成熟 了,测试准备活动完成了,测试执行活动就可以进行了。 H 模型揭示了一个原理:软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流 程并发地进行。H 模型指出软件测试要尽早准备, 尽早执行。不同的测试活动可以是按照某 个次序先后进行的,但也可能是反复的,只要某个测试达到准备就绪点,测试执行活动就可以 开展 1.软件测试过程模型-V 模型是软件开发瀑布模型的变种, 主要反映测试活动与分析和设计 的关系; 局限性: 把测试作为编码之后的最后一个活动, 需求分析等前期产生的错误直到后期的验收 测试才能发现 2.软件测试过程模型-W 模型 在 V 模型的基础上,增加千开发阶段的同步测试,形成 W 模型;测试与开发同步进行, 有利 用尽早的发现问题 局限性:仍把开发活动看成是从需求开始到编码结束的串行活动, 只有上一阶段完成后, 才 可以开始下一阶段的活动,不能支持迭代,自发性以及变更调整 3.软件测试过程模型-H 模型 在 H 模型中, 软件测试过程活动完全独立, 贯穿于整个产品的周期, 与其他流程并发地进行, 某个测试点准备就绪时, 就可以从测试准备阶段进行到测试执行阶段; 软件测试可以进行尽 早的进行;软件测试可以根据被测物的不同而分层次进行 各种模型的优点: V 模型: 强调了在整个软件项目开发中需要经历的若干个测试级别, 并与每一个开发级别对 应;忽略了测试的对象不应该仅仅包括程序,没有明确指出对需求、设计的测试 W 模型: 补充了 V 模型中忽略的内容, 强调了测试计划等工作的先行和对系统需求和系统设 计的测试;与 V 模型相同,没有对软件测试的流程进行说明 H 模型: 强调测试是独立的,只要测试准备完成,就可以执行测试 本文出自 “都市布衣” 博客,请务必保留此出处