一眨眼干软件测试已经有十多年时间了,大大小小公司也换了好几个,不同项目中所采用的测试模型也各有不同,就来唠叨唠叨测试模型。啥是测试模型呢(Test Model),是测试和测试对象的基本特征、基本关系的抽象。它是测试理论家们根据大量的实际测试应用总结出来的,能够代表某一类应用的内在规律,并对应于适合此类应用的一组测试框架性的东西。 软件开发的主机模型有瀑布模型、原型模型、螺旋模型、增量模型以及Rational统一过程模型等,这些模型对于软件开发过程具有很好的指导作用,但是在这些过程方法中,软件测试的地位和价值并没有体现出来,也没有给软件测试以足够的重视,而软件测试是与软件开发紧密相关的一系列有计划、系统性的活动,显示软件测试也同样需要软件模型去指导实践,所以根据不同的开发模型引申出对应的测试模型。软件测试模型主要有以下几种: l V模型 l W模型 l H模型 l X模型 l 前置测试模型 在软件测试方面,V模型是大家最耳熟能详、广为人知的模型,V模型实际是软件开发瀑布模型的变种,反映了测试活动与分析和设计的关系。V模型的价值在于它非常明确的标明了测试过程中存在的不同级别,并且清楚的描述了这些测试阶段和开发过程期间各阶段的对应关系。其优点是:将复杂的测试工作阶段划分为各个小阶段来实现,能从多个角度测试系统中找出更多的缺陷,其缺点是:软件测试容易误导为软件开发的最后一个阶段,对于需求、设计阶段产生的问题不能很早发现,质量控制和测试效率未高效发挥。 由于V模型在软件开发编码完成后才介入测试工作,导致一些在需求和设计中的问题在后期验收测试中才被发现,这样不能体现“尽早地和不断地进行软件测试”的原则,所以,由V模型演化成一种W模型。W模型相当于两个V模型的叠加,一个是开发的V,一个是测试的V,开发和测试同步进行。其优点是:测试和开发同步进行,有利尽早发现问题,增加非程序角度测试系统的思想,测试准备及设计工作提前,提高测试质量及效率,其缺点是:把软件开发视为需求、设计、编码等一系列串行的活动,无法支持迭代、自发性以及变更调整。 软件项目不可能在需求非常明确的情况下才开始进行的,一般情况下,在最初的需求被评审通过后,开发工作就开始进行,当初版软件完成提交后,产品人员会根据实际情况更改部分需求或补充完善新的需求功能。所以在需求、设计、编码、测试活动中存在着反复触发、迭代和增量的关系,这时,就有专家提出了H模型,H模型将测试活动完全独立出来,形成一个完全独立的流程,将测试准备活动和测试执行活动清晰地体现出来,也就是说,只要测试条件成熟了,测试准备活动完成了,测试执行活动就可以进行了。H模型的优点是:将测试从开发中独立出来,利于研究更深的测试技术,同时测试多个项目是时,可对测试技术重复利用,高效调整测试人员,缺陷修复时不受项目组内部人员限制,其缺点是:独立的测试组对系统认识不够深入,影响测试质量及测试效率。 X模块也是对V模型的改进,X模型提出针对单独的程序片段进行相互分离的编码和测试,此后通过频繁的交接和集成最终合成为可执行的程序,可以将通过集成测试的产品封装并提交给客户,也可以作为更大规模和范围内集成的一部分。X模型的优点是:强调单元测试及集成测试的重要性,引入探索性测试使测试模型与现实更接近,其缺点是:只强调测试过程中的部分内容,没有对需求测试、验收测试等内容进行说明。 前置测试模型将测试和开发紧密结合,提供了一种轻松的方式,可以使项目加快速度,在开发阶段以“编码-测试-编码-测试”的方式来体现,当程序片段一旦编写完成,就会立即进行测试。一般情况下,先进行的测试是单元测试,因为开发人员认为通过测试来发现错误是最经济的方式。前置测试模型用较低的成本来及早发现错误,并且充分强调了测试对确保系统的高质量的重要意义。在整个开发过程中,反复使用了各种测试技术以使开发人员、经理和用户节省其时间,简化其工作。
|