测试模型(V模型、W模型、H模型、X模型)

1 V模型

瀑布模型的变种,把瀑布模型中的测试阶段与之前的分析设计阶段对应起来,即可得到V模型。

测试模型(V模型、W模型、H模型、X模型)

优点:非常明确地标明了测试过程中存在的不同级别,并且每个级别与分析设计阶段对应。每个测试阶段有明确的交付物。在小型软件中效果突出。

局限:过程要求严格,不灵活。测试阶段介入晚,如早期用户定义的需求错误要等到最后的验收测试才能发现。

没有明确地说明早期的测试,无法体现“尽早地和不断地进行软件测试” 的原则。在V模型的基础上,对各个阶段增加一个同步的测试,形成了W模型

2 W模型

测试从用户需求开始,贯穿整个软件开发过程,与软件开发阶段同步进行,测试的内容不仅是代码,也包括需求、分析、设计、部署等阶段。

测试模型(V模型、W模型、H模型、X模型)

进步:从需求开始变引入测试,有利于尽早发现问题,即时采取应对措施,这将显著减少测试的总体时间。加快项目进度。

局限:与V模型一样仍然是瀑布模型的变种,无法进行迭代、自发性和变更处理。

V模型与W模型适用于瀑布模型,很难在现在更受欢迎的迭代式开发上应用,我们需要其他更加灵活的的测试模型,以便更好地进行迭代和应对变更,比如H模型X模型

3 H模型

H模型中,软件的测试活动从开发中独立出来,形成一个独立的流程,贯穿整个软件周期。H模型中每个测试活动的主要流程如下:

  1. 随软件周期开始,进入测试准备阶段(用例、文档、代码等)。
  2. 软件开发活动持续为软件测试提供准备材料,直到达到测试就绪点
  3. 测试执行

测试模型(V模型、W模型、H模型、X模型)

优点:揭露了软件测试是可以和开发并行的。测试活动独立,有较强的灵活性。可以尽早进行测试。整个软件测试活动可以分阶段,分次序执行和迭代。

局限:模型的灵活性要求清晰的管理制度。要求测试工程师能准确管理测试活动和判断测试就绪点。H模型对团队协作要求高。

4 X模型

X模型提出先对程序片段进行独立的测试和编码,再进行频繁的交换,通过集成形成可执行程序(左边部分)。集成的可执行程序进行集成测试,通过集成测试的程序可能成为更大范围集成的一部分,也可能(形成最终产品时)封版提交给客户(右上部分)。另外,可以对集成的程序进行测试计划外的探索性测试(右下部分)。

测试模型(V模型、W模型、H模型、X模型)

优点:通过分离-集成的方法使得测试变得灵活。探索性测试能帮助有经验的测试员发现更多计划之外的错误。

缺点:探索性测试对测试员有一定的经验要求,并且会照成一定的人力、财力、时间损耗。