软件测试基础-测试模型
上一篇 /
下一篇 2008-04-28 16:58:55
/ 个人分类:软件测试基础
8、软件测试过程模型
⑴ V模型
瀑布模型:人们通常把测试过程作为在需求分析、概要设计、详细设计和编码全部完成之后的一个阶段。
V模型是软件开发瀑布模型的一个变种。
用户需求→需求分析、系统设计→概要设计→详细设计→编码
验收测试←系统测试、确认测试←集成测试←单元测试
V模型的局限性:它仅仅把测试过程作为在需求分析、概要设计、详细设计以及编码之后的一个阶段。容易使人理解测试是软件开发的最后一个阶段,主要是针对程序进行测试寻找错误,而需求分析阶段隐藏的问题一直到后期的验收测试才被发现。没有说明早期的测试,没有体现“尽早的和不间断地进行软件测试”的原则。
⑵W模型
V模型的局限性在于没有明确地说明早期的测试,无法体现“尽早地和不断地进行软件测试”的原则。在V模型中增加软件各开发阶段应同步进行的测试,演化为W模型。在模型中不难看出,开发是“V”,测试是与此并行的“V”。基于“尽早地和不断地进行软件测试”的原则,在软件的需求和设计阶段的测试活动应遵循IEEE1012-1998《软件验证与确认(V&V)》的原则
W模型是V模型的发展,强调的是测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、功能和设计同样要测试。测试与开发是同步进行的,从而有利于尽早地发现问题。
W模型的局限性:模型和V模型都把软件的开发视为需求、设计、编码等一系列串行的活动,软件测试和开发保持一种线性的前后关系,需要有严格的指令表示上一阶段完全结束,下一阶段才可以开始,无法支持迭代、自发性以及变更调整
⑶H模型
它将测试活动完全独立出来,形成一个完全独立的流程,将测试准备活动和测试执行活动清晰地体现出来。
在H模型中,软件测试模型是一个独立的流程,贯穿于整个产品周期,与其他流程并发地进行。当某个测试时间点就绪时,软件测试即从测试准备阶段进入测试执行阶段。
X模型:目标是弥补V模型的一些缺陷
模型还定位了探索性测试(右下方)。这是不进行事先计划的特殊类型的测试,诸如“我这么测一下结果会怎么样?”,这一方式往往能帮助有经验的测试人员在测试计划之外发现更多的软件错误
尽管很多项目缺乏足够的需求,V模型还是从需求处理开始。V模型提示我们要对各开发阶段中已经得到的内容进行测试,但它没有规定我们要取得多少内容。如果没有任何的需求资料,开发人员知道他们要做什么吗?V模型的一个强项是它明确的需求角色的确认,而X模型没有这么做,这大概是X模型的一个不足之处。
Marick也质疑了单元测试和集成测试的区别,因为在某些场合人们可能会跳过单元测试而热衷于直接进行集成测试。Marick担心人们盲目地跟随“学院派的V模型”,按照模型所指导的步骤进行工作,而实际上某些做法并不切合实用。我已经尽自己的努力把Marick的关于需要很多具有可伸缩性的行为的期望结合进了X模型,这样,X模型并不要求在进行作为创建可执行程序(图中右上方)的一个组成部分的集成测试之前,对每一个程序片段都进行单元测试(图中左侧的行为)。但X模型没能提供是否要跳过单元测试的判断准则
前置测试模型:
1、开发和测试相结合
业务需求最好在设计和开发之前就被正确定义
2、对每一个交付内容进行测试
源程序并不是唯一的测试内容,其他的测试对象,包括可行性报告、业务需求说明以及设计文档(对V模型的扩展)
3、在设计阶段进行测试计划和测试设计
4、验收测试和技术测试相互独立
验收测试可以在实施阶段的第一步来执行,也可以在开发阶段的最后一步执行。
5、测试和开发结合在一起
测试模型的使用:
V模型 | 强调了软件开发过程中需要经历的各个测试级别,并与每一个开发级别对应;忽略了测试不应该仅仅是程序。没有明确指出对需求和设计的测试 |
W模型 | 补充了V模型忽略的内容,强调了测试工作的现行和对系统需求以及系统设计的测试;与V模型一样都没有对测试流程进行说明。 |
H模型 | 强调测试是独立的,只要测试准备完成,就可以执行测试(第三方测试) |
收藏
举报
TAG:
软件测试基础