软件测试基础-测试模型

1.瀑布模型
把测试过程作为在需求分析、概要设计、详细设计和编码全部完成之后的一个阶段。认为测试只是一个收尾工作,而不是主要过程。
 
2.V模型
V模型是瀑布模型的变种,它反映了测试活动与分析和设计的关系
 
V模型指出,单元和集成测试是验证程序设计,开发人员和测试组应检程序的执行是否满足软件设计的要求;系统测试应当验证系统设计,检测系统的功能、性能的质量特性是否达到系统设计的指标,由测试人员和用户进行软件的确认测试和验收测试,追溯软件需求说明书进行测试,以确定软件的实现是否满足用户需求。
 
V模型存在一定的局限性,它仅仅把测试过程作为在需求分析、概要设计、详细设计及编码之后的一个阶段,容易使人理解为测试是软件开发的最后一个阶段,主要是针对程序进行测试寻找错误,而需求分析阶段隐藏的问题一直到后期的验收测试才被发现。
V模型的局限性在于没有明确地说明早期的测试,不能体现尽早地和不断地进行软件测试的原则。
 
3.W模型
在V模型中增加软件个开发阶段应同步进行的测试,被演化为一种W模型。因为开发是“V”,测试也是与此相并行的“V”。
基于“尽早地不断地进行软件测试”的原则,在软件的需求和设计阶段的测试活动应遵循IEEE std 1012-1998《软件验证和确认V&V》的原则。
一个基于V&V原理的W模型示意图如下所示:


W模型可以说是V模型的自然发展,它强调:测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、功能和设计同样需要测试。
W模型也是局限性的。W模型和V模型都把软件的开发视为需求、设计、编码、等一系列串行的活动。同样的,软件开发和测试保持一种线性的前后关系,需要有严格的指令表示上一阶段完全结束,才可正式开始下一个阶段,这样就无法支持迭代、自发性以及变更调整。对于当前很多文档需要时候补充,或者根本没有文档的做法下,开发人员和测试人员都面临同样的困惑。
 
4.H模型
V模型和W模型都没有很好地体现测试流程的完整性。
H模型将测试活动完全独立出来,形成一个完全独立的流程,将测试准备活动和测试执行活动清晰的体现出来。  在H模型中,软甲你测试是一个独立的流程,贯穿于整个产品周期,与其他流程并发地进行。当某个测试时间点就绪时,软件测试即从测试准备阶段进入测试执行阶段。
H模型简单的示意图如下图所示:


这个示意图仅仅演示了再整个生命周期中某个层次上的一次测试的“微循环”。途中的其他流程可以是任意开发流程,如设计流程、编码流程等。也可以是其他非开发流程。也就是说,只要测试条件成熟了,测试准备活动完成了,测试执行活动就可以开始了。
概括地说,H模型揭示了:
  • 软件测试不仅仅指测试的执行,还包括其他很多的活动。
  • 软件测试是一个独立的流程,贯穿于整个产品周期,与其他流程并发地进行。
  • 软件测试要尽早准备、尽早执行
  • 软件测试是根据被测物的不同而分层次进行的。不同层次的测试活动是按照某个次序先后进行的,但也可能是反复的。
5.X模型
X模型示意图如下图所示:


X模型左边描述的是针对单独程序片段所进行的相互分离的编码和测试,侧后将进行频繁的交接,通过集成最终合成为可执行的程序。这一点在图的邮箱方得以体现,而且这些可执行程序还需要进行测试,已通过测试的产品可以进行封版并提交给用户,也可以作为更大规模和范围内集成的一部分。
同时,X模型还定位了探索性测试。这是不进行实现计划的特殊类型的测试,诸如“我这么测一下,结果会怎么样”。
 
6.前置测试模型
前置测试是一个将测试和开发紧密结合的模型,该模型提供了轻松的方式,可以使你的项目加快速度。
前置测试模型入下图所示:


前置测试模型体现了一下的要点:
  • 开发和测试相结合
  • 对每一个交付的内容进行测试
  • 在设计阶段进行测试计划和测试设计
  • 测试和开发结合在一起
  • 让验收测试和技术测试保持相互独立
 
总结:
V模型强调了在整个软件项目开发中需要经历的若干个测试级别,而且每一个级别都与一个开发级别相对应,但它忽略了测试的对象不应该仅仅包括程序,或者说它没有明确地指出应该对软件的需求、设计进行测试,而这一点在W模型中得到了补充。W模型强调了测试计划等工作的先行和对系统需求和系统设计的测试,但W模型和V模型一样也没有专门针对软件测试的流程予以说明。因为事实上,随着软件要求越来越为大家所重视,软件测试也逐步发展成为一个独立于软件开发部的组织,就每一个软件测试的细节而言,它都有一个独立的操作流程。比如现在得第三方测试,就包含了从测试计划和测试案例编写,到测试实施以及测试报告编写的全过程,这个过程在H模型中得到了相应的体现,表现为测试是独立的。也就是说,只要测试提前具备了,就可以开始进行测试了。当然, X模型和前置测试模型又在此基础上增加了许多不确定因素的处理情况,因为在真实项目中,经常会有变更的发生,例如要重新访问前一阶段的内容,或者跟踪并纠正以前提交的内容,修复错误,排除多余的成分,以及增加新发现的功能等。
 
因此,在实际的工作中,我们要灵活地运用各种模型的优点,在W模型的框架下,运用H模型的思想进行独立的测试,并同时将测试和开发紧密结合,寻找恰当的就绪点开始测试并反复迭代测试,最终保证按期完成预定目标。
 
posted on 2020-04-22 10:20  憂憂er  阅读(470)  评论(0)    收藏  举报