什么是测试模型:
软件测试与软件开发一样都是遵循软件工程原理,测试专家通过实践、经验总结出来的测试模型。这些模型将测试活动、测试与开发的关系、测试管理给出了抽象具体的定义。
1.经典的“V模型”:
从左到右,描述了基本的开发过程及测试行为;非常明确的表明了在测试过程中存在的不同级别,描述了软件开发过程与测试阶段间的对应关系。
单元测试、集成测试:是检测程序的执行是否满足软件设计的要求。
系统测试:是检测系统功能、性能的质量特性是否达到系统要求的指标。
验收测试:确定软件的实现是否满足用户的需求或者合同指定的要求。
虽然“V模型”定义出了测试阶段与开发过程之间的对应关系,但是其还是存在一定的局限性。该模型测试活动是在编码完成之后才开始进入,智能针对程序进行测试。感觉却少了对开发前期的需求分析、系统设计等活动的验证与确认,往往在这部分问题只有在验收测试时才可能发现问题。
2.在介绍一个对“V”模型完善过后的“W模型”:
W模型是从V模型演化而来的,软件开发是V模型、软件测试也是一个V模型。相对于V模型,W模型增加了软件各个开发阶段与测试活动同步进行验证和测试活动。
该测试模型伴随整个软件生命周期,而且测试的对象除了程序,需求分析、系统设计都包括了。测试与开发是同步进行的,有利于尽早发现问题。
虽然同步进行,但是还是有局限性,必须再上一个阶段工作全部完成,才能正式开始下一阶段的工作,缺少支持迭代开发模式。对当前复杂多变的需求,W模型也不能有效解除软件测试管理面临的困惑。
还有一种模型就是“瀑布模型”:
它的优点在于需求确定的情况下,自上而下的步骤进行软件设计开发,可以在迭代开发模式中使用该模型。但对于测试而言,该模型并没有很好的把测试的作用和价值体现出来。
因为测试和用户一样只有等到开发后期才能看到产品原型,同样也只有这样才知道软件是否满足用户需求,测试意义不大。再按阶段划分来完成测试工作,会产生大量的文档增加了一定的工作量,而且风险无法有效控制。
另外一种就是“H模型”:
旨在测试活动在需求分析阶段就开始介入,尽早的发现问题,控制软件开发成本,保证软件质量。