常见测试模型有哪些?

  在软件开发过程中,人们根据经验教训并结合未来软件的发展趋势总结出了很多软件开发模型,如瀑布模型、快速原型模型、迭代模型等,这些模型对软件开发过程具有很好的指导作用,但遗憾的是它们对软件测试并没有给予足够的重视,利用这些模型无法更好地指导软件测试工作。

  软件测试是与软件开发紧密相关的一系列有计划的活动,是保证软件质量的重要手段因此人们又相继设计了很多软件测试模型用于指导测试工作。软件测试模型兼顾了软件开发过程,对软件开发和测试进行了很好的融合,它既明确了软件开发与测试之间的关系,又使测试过程与开发过程产生交互,是测试工作的重要参考依据。

  软件测试模型对测试工作具有指导作用,对测试效果与质量都有很大的影响,很多测试专家在实践中不断改进创新,创建了很多实用的软件测试模型。下面介绍几种比较重要的软件测试模型。

V模型

  V模型是由保罗·鲁克(Paul Rook)在20世纪80年代提出的,它是软件测试模型中最具有代表性的模型之一。V模型是瀑布模型的变种,在瀑布模型的后半部分添加了测试工作如下图所示。

V模型

 

  (1)用户需求阶段:一般由甲方业务牵头部门成立需求编写小组,由小组人员编写并完善需求文档,有的项目也可能由乙方来完成。产出物为《XX业务需求》、《XX新增功能工程业务需求》、《XX新增功能及扩容改造业务需求》等

  (2)需求分析阶段:由甲方业务人员、用户、开发人员等完成,针对需求文档进行细致研讨和分析,产出物为《需求分析说明书》、《需求规格说明书》等

  (3)概要设计阶段:该阶段由开发人员完成,产出物为《概要设计说明书》

  (4)详细设计阶段:该阶段由开发人员完成,产出物为《详细设计说明书》

  (5)编码阶段:该阶段由程序员完成,产出物为程序,即源代码

  (6)单元测试阶段:也叫模块测试,是最小的测试单位,理论上以白盒测试为主,测试对象一般就是一个功能、类、函数、窗口、菜单等。实际工作中,考虑成本问题,一般由程序员自己完成。测试依据是《详细设计文档》,从模型图中我们能看出,单元测试与详细设计相对应

  (7)集成测试阶段:也叫组装测试,组装过程一般是逐步完成的,所以会形成很多临时版本,理论上以黑盒测试为主,核心模块适当采用白盒测试。测试依据是《概要设计文档》,从模型图中我们能看出,集成测试与概要设计相对应

  (8)系统测试阶段:是在所有功能组装完成后,对集成了硬件、软件、数据的完整系统进行的测试。测试的重点在于系统在真实环境下的正确运行以及系统的兼容性问题,测试方法为黑盒测试,测试依据是《需求规格说明书》、《需求文档》等文档。从模型图中我们能看出,系统测试与需求分析相对应

  (9)验收测试阶段:也叫用户接受度测试,是由用户参与的验收过程,包括alpha测试和beta测试。从模型图中我们能看出,验收测试阶段与用户需求阶段相对应

  特点:

    V模型是一个从左往右串行的模型

    V模型中开发阶段和测试阶段划分明确,对应关系明确

    V模型中既包括专业级测试(如单元测试、集成测试)又包括用户级测试(如验收测试)

    V模型中没有体现对需求、文档和设计阶段的测试,容易被误解为测试工作只是开发完成后的收尾

    V模型没有体现尽早测试和不断测试原则

  V模型描述了基本的开发过程与测试行为,主要反映了测试活动分析与设计之间的关系。它非常明确地表明了测试过程所包含的不同级别,以及测试各阶段与开发各阶段所对应的关系。V模型的左边是自上而下、逐步细化的开发过程,右边是自下而上、逐步集成的过程,这也符合了软件开发与软件测试的关系。

  V模型应用瀑布模型的思想将复杂的测试工作分成了目标明确的小阶段来完成,具有阶段性、顺序性和依赖性,它既包含了对于源代码的底层测试,也包含了对于软件需求的高层测试。但是V模型也有一定的局限性,它只有在编码之后才能开始测试,早期的需求分析等前期工作没有涵盖其中,因此它不能发现需求分析等早期的错误,这为后期的系统测试、验收测试埋下了隐患。

 

W模型

  W模型是由Ⅴ模型演变而来的,它强调测试应伴随整个软件生命周期。其实W模型是个双V模型,软件开发是一个V模型,而软件测试是与开发同步进行的另一个V模型如下图所示。

W模型

  

  W模型又称双V模型,它由V模型演变而来,弥补了V模型的不足。左边的V是开发的生命周期,右边的V是测试的生命周期。

  W模型的测试范围不仅包括程序,还包括需求分析、软件设计等前期工作,这样有利于尽早地全面发现问题。但是W模型也有自己的局限性,它将软件开发过程分成需求、设计、编码、集成等一系列的串行活动,无法支持迭代、自发性等需要变更调整的项目。

H模型

  为了解决V模型与W模型存在的问题,有专家提出了H模型,H模型将测试活动完全独立了出来,形成一个完全独立的流程,这个流程将测试准备活动和测试执行活动清晰地体现出来。测试流程和其他工作流程是并发执行的,只要某一个工作流程的条件成熟就可以开始进行测试。例如在概要设计工作流程上完成一个测试,其过程如下图所示。

H模型

  H模型只体现了测试过程,未体现开发过程,它表明测试是一个独立的过程

  H模型有一个测试就绪点,即达到准入条件(测试方案、测试策略、测试用例、测试环境、输入输出项等是否明确)才能继续执行

  H模型的测试范围不仅仅是需求、文档和程序,它涉及整个产品包

  H模型体现了尽早测试和不断测试原则

  只是体现了软件生命周期中概要设计层次上的一个测试“微循环”。在H模型中测试级别不存在严格的次序关系,软件生命周期的各阶段的测试工作可以反复触发、迭代,即不同的测试可以反复迭代地进行。在实际测试工作中,H模型并无太多指导意义,读者重点是理解其中的设计意义。

X模型

  X模型的设计原理是将程序分成多个片段反复迭代测试,然后将多个片段集成再进行选代测试,如下图所示。

x模型

  X模型左边描述的是针对单独程序片段进行的相互分离的编码和测试,多个程序片段进行频繁的交接,在X模型的右上部分,将多个片段集成为一个可执行的程序再进行测试。通过集成测试的产品可以进行更大规模的集成,也可以进行封装提交给客户。

  在X模型的右下部分还定位了探索性测试,它能够帮助有经验的测试人员发现更多测试计划之外的软件错误,但这对测试人员要求会高一些。

  上面共介绍了4种软件测试模型,在实际测试工作中,测试人员更多的是结合W模型与H模型进行工作,软件各个方面的测试内容是以W模型为准,而测试周期、测试计划和进度是以H模型为指导。X模型更多是作为最终测试、熟练性测试的模板,例如对一个业务测试已经有2年时间,则可以使用X模型进行模块化的、探索性的方向测试。

posted @   zero_song  阅读(185)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示