V模型
原理:V模型是软件开发瀑布模型的变种,主要反映测试活动与分析和设计的关系,从左到右,描述了基本的开发过程和测试行为。V模型的策略既包括低层测试又包括了高层测试,低层测试是为了源代码的正确性,高层测试是为了使整个系统满足用户的需求。
如图所示,图中的箭头表示时间方向,左边下降的是开发过程各阶段,与此相对应的是右边上升的部分,即个测试过程的各个阶段。
它在测试中的地位,就和瀑布模型在开发中的地位一样,是一种最基础的模型,其他模型都是从这个模型演化来的。
价值体现:它非常明确地标明了测试过程中存在的不同级别,强调了在整个软件项目开发中需要经历的若干个测试级别,并与每一个开发级别对应。
局限性:把测试作为编码之后的最后一个活动,需求分析等前期产生的错误直到后期的验收测试才能发现。忽略了测试的对象不应该仅仅包括程序,没有明确指出对需求、设计的测试。言简意赅的说:没有明确说明早期的测试,不能体现“尽早地和不断地进行软件测试”的原则。
W模型
原理:在V模型中增加软件各开发阶段应同步进行的测试,别演化为一种W模型,因为实际上开发是“V”,测试也是与此相并行的“V”。W模型可以说是V模型自然而然的发展。它强调,测试伴随着整个软件开发周期,而且测试的对象不仅仅是层序,需求,功能和设计同样要测试。
价值体现:我们可以认为,W模型,测试与开发是同步进行的,从而有利于今早的发现问题。强调了测试计划等工作的先行和对系统需求和系统设计的测试;
局限性:仍把开发活动看成是从需求开始到编码结束的串行活动,只有上一阶段完成后,才可以开始下一阶段的活动,不能支持迭代,自发性以及变更调整。
H模型
原理:H模型将测试活动从开发流程完全独立出来,使测试流程形成一个完全独立的流程,将测试准备活动与测试执行活动清晰地体现出来。
图中的流程仅仅演示了再整个生产周期中某个层次上的一次测试“微循环”。图中的其他流程可以是任意开发流程。也