软件测试有三种模型,分别是V模型,W模型和H模型。每种模型都有自己的优点和缺点。
V模型
V模型如下图所示:
V模型的优点
V模型明确地标识出了在开发过程中一般应完成的测试级别,以及这些测试级别与代码生成前各项开发活动的对应关系——单元测试依据详细设计检查代码是否正确实现了单元的功能;集成测试依据概要设计检查各单元间的接口是否正确实现;系统测试依据需求规格检查软件是否作为一个整体有效运行;验收测试则是由用户代表依据用户需求检查软件是否真正满足用户的实际需要。
V模型的缺点
V模型把测试活动全部安排在编码活动之后,这样可能会导致需求开发和设计阶段的错误直到编码完成之后才发现,这不符合尽早测试的原则,会增加很多开发成本,以至于影响软件交付工期。
W模型
W模型如下图所示:
W模型的优点
W模型是对V模型的一种改进。W模型中,软件开发和测试是紧密结合的,每个开发活动完成后就同步进行测试活动——需求分析完成后进行需求测试;设计完成后进行设计测试;编码完成后进行单元测试;集成完成后进行集成测试;系统构建完成后进行系统测试;完成交付准备工作之后进行验收测试。
W模型的缺点
W模型中开发活动都是串行的,开发和测试也是一种线性的关系——只有开发活动完成了才能进行测试活动。这种方式使得W模型无法适应敏捷、迭代开发,以及灵活的变更调整。
H模型
H模型如下图所示:
H模型的优点
H模型中的测试活动是一个独立的流程,只要满足了测试就绪条件,就可以开始测试活动。这种灵活的组织方式,使得H模型完全具备了前两个模型的优点——既可以与所有的开发活动紧密结合,又足够灵活满足敏捷和迭代的开发模型。
H模型的缺点
H模型的灵活也造就它难以驾驭的特点。如果管理者没有足够的经验就实施H模型,可能会事倍功半,测试活动的成本收益比会比较低。
根据以上测试3种模型的特点,建议一般的软件开发过程采用W模型,实施敏捷和迭代开发的可以考虑采用H模型。
源自公众号 软件工程之思