|
知识路径: > 软件评测知识 > 软件测试过程模型 >
|
考试要求:掌握
相关知识点:9个
|
|
|
|
|
由于V模型受到了很多人的质疑,因此,也有人提出了一些不同的观点和意见。在此,我们向大家介绍另外一种测试模型,即X模型,其目标是弥补V模型的一些缺陷。
|
|
|
X模型的基本思想是由Marick提出的,但首先Marick不建议建立一个替代模型,同时,他也认为他的观点并不足以支撑一个模型的完整描述。不过,Robin F. Goldsmith先生在自己的文章里将其思想定义为X模型,理由是,在Marick的观点中已经具备一个模型所需要的一些主要内容,其中也包括了像探索性测试这样的亮点。软件测试X模型如下图所示。
|
|
|
|
|
Marick对V模型最主要的批评是V模型无法引导项目的全部过程。他认为一个模型必须能处理开发的所有方面,包括交接、频繁重复的集成以及需求文档的缺乏等。Marick认为一个模型不应该规定那些和当前所公认的实践不一致的行为。
|
|
|
X模型左边描述的是针对单独程序片段所进行的相互分离的编码和测试,此后,将进行频繁的交接,通过集成最终合成为可执行的程序。这一点在图的右上方得以体现,而且这些可执行程序还需要进行测试,已通过集成测试的成品可以进行封版并提交给用户,也可以作为更大规模和范围内集成的一部分。
|
|
|
同时,X模型还定位了探索性测试,即如上图中右下方所示。这是不进行事先计划的特殊类型的测试,诸如“我这么测一下,结果会怎么样”,这一方式往往能帮助有经验的测试人员在测试计划之外发现更多的软件错误。
|
|
|
Marick对V模型提出质疑,也是因为V模型是基于一套必须按照一定顺序严格排列的开发步骤,而这很可能并没有反映实际的实践过程。因为在实践过程中,很多项目是缺乏足够的需求的,而V模型还是从需求处理开始。
|
|
|
Marick也质疑了单元测试和集成测试的区别,因为在某些场合人们可能会跳过单元测试而热衷于直接进行集成测试。Marick担心人们盲目地跟随“学院派的V模型”,按照模型所指导的步骤进行工作,而实际上某些做法并不切合实用。
|
|
|
|
前置测试模型是由Robin F. Goldsmith等人提出的,它是一个将测试和开发紧密结合的模型,该模型提供了轻松的方式,可以使你的项目加快速度。前置测试模型如下图所示。
|
|
|
|
|
|
. 开发和测试相结合:前置测试模型将开发和测试的生命周期整合在一起,标识了项目生命周期从开始到结束之间的关键行为。并且标识了这些行为在项目周期中的价值所在。如果其中有些行为没有得到很好的执行,那么项目成功的可能性就会因此而有所降低。如果有业务需求,则系统开发过程将更有效率。我们认为在没有业务需求的情况下进行开发和测试是不可能的。而且,业务需求最好在设计和开发之前就被正确定义。
|
|
|
. 对每一个交付内容进行测试:每一个交付的开发结果都必须通过一定的方式进行测试。源程序代码并不是惟一需要测试的内容。图中的椭圆框表示了其他一些要测试的对象,包括可行性报告、业务需求说明,以及系统设计文档等。这同V模型中开发和测试的对应关系是一致的,并且在其基础上有所扩展,变得更为明确。
|
|
|
. 在设计阶段进行测试计划和测试设计:设计阶段是作测试计划和测试设计的最好时机。很多组织要么根本不作测试计划和测试设计,要么在即将开始执行测试之前才飞快地完成测试计划和测试设计。在这种情况下,测试只是验证了程序的正确性,而不是验证整个系统本该实现的东西。
|
|
|
. 测试和开发结合在一起:前置测试将测试执行和开发结合在一起,并在开发阶段以编码—测试—编码—测试的方式来体现。也就是说,程序片段一旦编写完成,就会立即进行测试。一般情况下,先进行的测试是单元测试,因为开发人员认为通过测试来发现错误是最经济的方式。但也可参考X模型,即一个程序片段也需要相关的集成测试,甚至有时还需要一些特殊测试。对于一个特定的程序片段,其测试的顺序可以按照V模型的规定,但其中还会交织一些程序片段的开发,而不是按阶段完全地隔离。
|
|
|
. 让验收测试和技术测试保持相互独立:验收测试应该独立于技术测试,这样可以提供双重的保险,以保证设计及程序编码能够符合最终用户的需求。验收测试既可以在实施阶段的第一步来执行,也可以在开发阶段的最后一步执行。前置测试模型提倡验收测试和技术测试沿循两条不同的路线来进行,每条路线分别地验证系统是否能够如预期设想的那样进行正常工作。这样,当单独设计好的验收测试完成了系统的验证时,我们即可确信这是一个正确的系统。
|
|
|