前言

将软件的测试活动进行抽象之后就是软件的测试模型。测试模型明确了测试和开发之间的关系,用来指导整个软件的测试过程。

常见的软件测试模型有 V 模型、W 模型、X 模型、H 模型和敏捷测试 AT 模型。

V 模型

V 模型是最广为人知的测试模型,它从软件开发的瀑布模型演变而来。

image-20221025213532925

V 模型从上到下、从左到右地描述了基本的测试和开发期间的各个级别和阶段。测试人员在测试过程中,首先对编码生成的函数或类进行单元测试,然后进行组件集成进行集成测试,最后模拟终端用户实际业务流程执行系统测试、验收测试。

V 模型的缺点:

  1. 如果被测产品早起存在缺陷,可能到最后的环节才被发现。
  2. 测试在编码之后,所以测试的进度会远远滞后于开发活动。

因此,V 模型很适合于开发周期短的项目而不适合规模较大的项目。

W 模型

W 模型在 V 模型的基础上演变而来,又称为双 V 模型。在 V 模型中,如果开发阶段没有任何输出,那么测试人员是无法开展测试工作,从而导致测试的严重滞后,所以 W 模型提出了测试和开发并行的设计思路:

image-20221025214640601

图中左边的 V 是开发的生命周期,右边的 V 是测试的生命周期,两个 V 实现了测试和开发的分离和并行。测试是伴随着整个开发过程,从一开始就会依次进行开发相对应的测试。

W 模型的优点是可以尽早的开始执行测试,增加了针对前期文档的测试,有利于开发初期发现问题,减少开发的成本。但是仔细观察可以发现 W 模型中的开发和测试过程仍然存在着串行,所以部分测试仍然收到开发过程的影响,单元、集成测试的测试对象仍需要等待开发编码完成。

X 模型

X 模型的左边是针对单独程序片段所进行的相互分离的编码和测试,在测试结束之后将这些程序片段进行频繁的交接,最终集成为可执行的程序,然后再对这些可执行程序进行测试。

X 模型的优点在于支持需求的不断变化,并且加入了探索性测试,便于发现测试计划之外的更多缺陷。

image-20221025220509874

H 模型

H 模型中,软件测试过程活动完全独立,贯穿于整个产品的周期,与其他流程并发地进行。测试过程分为测试准备和测试执行两个部分,流程一旦到达测试就绪点就可以展开测试。

image-20221025225053737

敏捷测试 AT 模型

和敏捷开发模型对应,特点为高度迭代,周期快且强,需要及时、持续地响应需求的平凡变更反馈,测试压力大。敏捷测试即是不断修正被测对象的质量指标,正确建立测试策略,确认客户的有效需求得以圆满实现和确保整个生产过程安全、及时地发布最终产品。

参考

  1. 软件测试的常用模型:V 模型,W 模型,X 模型,H 模型以及敏捷测试模型
  2. 百度-测试模型
  3. 软件测试模型解析-知乎
  4. 软件测试模型-知乎