V,W,H模型的详细介绍
- 格式:doc
- 大小:112.00 KB
- 文档页数:4
8、V模型、W模型、H模型软件测试&软件⼯程·软件测试与软件⼯程息息相关,软件测试是软件⼯程组成中不可或缺的⼀部分。
·在软件⼯程、项⽬管理、质量管理得到规范化应⽤的企业,软件测试也会进⾏得⽐较顺利,软件测试发挥的价值也会更⼤。
·要关注软件⼯程、质量管理以及配置管理与软件测试的关系;在不同的开发模式下,如何进⾏软件测试。
测试模型随着测试过程的管理和发展,测试⼈员通过⼤量的实践,从⽽总结出了不少测试模型,如常见的V模型、W模型、H模型等。
这些模型与开发紧密结合,对测试活动进⾏了抽象,成为了测试过程管理的重要参考依据。
V模型V模型⽰意图(重要)V模型(测试)1、单元测试⼜称模块测诚,针对软件设计中的最⼩单位—程庄模块,进⾏正确性检查的测试⼯作。
单元测试需要从程序的内部结构出发设计测试⽤例。
多个模块可以平⾏地独⽴进⾏单元测试。
单元定义:C中指⼀个函数,Java中指⼀个类,在图形化的软件中,单元⼀般指1个窗⼝,1个菜单。
2、集成测试⼜叫组装测试,通常在单元测试的基础上,将所有程序模块进⾏有序的、递增的测试。
重点测试不同模块的接⼝部分。
3、系统测试(system testing):指的是将整个软件系统看为⼀个整体进⾏测试,包括对功能、性能、以及软件所运⾏的软硬件环境进⾏测试。
系统测试在系统集成完毕后进⾏测试,前期主要测试系统的功能是否满⾜需求,后期主要测试系统运⾏的性能是否满⾜需求,以及系统在不同的软硬件环境中的兼容性等。
4、验收测试α测试:Alpha是内测版本,即现在所说的C8,⽐版本表⽰该软件仅仅是⼀个初步完成品,通常只在软件开发者内部交流,也有很少⼀部分发布给专业测试⼈员。
⼀般⽽⾔,该版本软件的bug较多,普通⽤户最好不要安装。
β测试:Beta是公测版本,是对所有⽤户开放的测试版本。
该版本相对于a颜已有了很⼤的改进,消除了严重的错误,但还是存在着⼀些陷需要经过⼤规模的发布试来进⼀步消除。
软件开发与测试模型1.软件开发模型(1)基本概念软件开发⽣命周期模型是软件产品从最初构思到退役的过程。
(2)常见的开发模型⼤爆炸模型、边写边改模型、瀑布模型、螺旋模型、敏捷软件开发a.⼤爆炸模型直接冲过河去。
⼀⼤堆东西(⼈⼒和资⾦)放在⼀起,巨⼤的能量释放,要么产⽣了优秀的产品,要么是⼀堆废品。
特点⼤爆炸模式是最简单的软件开发模式,计划、进度安排和正规开发过程都⼏乎没有,所有精⼒都花在开发软件和编写代码上;⼀般,⼤爆炸模式⼏乎没有测试,即使有也要挤在产品发布前,通常都会避免在此模式下进⾏测试。
b.边写边改模型摸着⽯头过河。
项⽬⼩组在未刻意采⽤其他开发模式时默认的开发模式。
它在⼤爆炸模式基础上更进了⼀步,⾄少考虑到了产品需求。
开发⼩组通常最初只有粗略的想法,接着进⾏⼀些简单的设计,然后开始漫长的来回编写、测试和修改缺陷的过程,直到觉得⾜够才发布产品。
特点此种模式没有计划和⽂档编制,项⽬能够迅速展现成果,所以⽐较适合⽤完就扔的项⽬;与⼤爆炸模式类似,测试在边写边改模式中未特别强调,但是在编写代码和修复缺陷过程中举⾜轻重;软件测试会陷⼊⽆休⽌的循环往复,因为每天都可能在测试新版本;此种模式是测试期间最有可能碰到的模型。
c.瀑布模型制定周密计划。
1970年,温斯顿·罗伊斯(WinstonRoyce)提出,直到80年代早期,它⼀直是唯⼀被⼴泛采⽤的软件开发模型。
采⽤瀑布模式的项⽬从最初的构思到最终产品要经过⼀系列步骤。
每⼀个步骤结束时,项⽬⼩组组织审查,并决定是否进⼊下⼀步。
如果项⽬未准备好进⼊下⼀步,就停滞下来直到准备好。
特点从测试的⾓度看来,瀑布模式⽐截⾄到⽬前为⽌的其他模式更有优势。
瀑布模式所有⼀切都有完整细致的说明。
当软件提交到测试⼩组时,所有细节都已确定并有⽂档记录,⽽且实现在软件之中。
由此,测试⼩组得以制定精确的计划和进度。
测试对象⾮常明确,在分辨是功能还是缺陷上也没有⼀点问题。
在瀑布模型中,测试被认为是在软件开发过程的后期阶段进⾏的“⼀次性”活动,这带来⼀个巨⼤的缺点,因为测试仅在最后进⾏,所以⼀些根本性问题可能出现在早期,但是直到准备发布产品时才可能发现。
V模型:优点:1.既有底层测试又有高层测试。
底层:单元测试。
高层:系统测试。
2.将开发阶段清楚的表现出来,便于控制开发的过程。
当所有阶段都结束时,软件开发就结束了。
缺点:1.容易让人误解为测试是在开发完成之后的一个阶段。
2.由于它的顺序性,当编码完成之后,正式进入测试时,这时发现的一些bug可能不容易找到其根源,并且代码修改起来很困难。
3.实际中,由于需求变更较大,导致要重复变更需求、设计、编码、测试。
返工量大。
W模型:优点:1.将测试贯穿到整个软件的生命周期中,且除了代码要测试,需求、设计等都要测试。
2.更早的介入到软件开发中,能尽早的发现缺陷进行修复。
3.测试与开发独立起来,并与开发并行。
缺点:1.对有些项目,开发过程中根本没有文档产生,故W模型无法使用。
2.对于需求和设计的测试技术要求很高,实践起来很困难。
X模型:优点:X模型定位了探索性测试,这是不进行事先计划的特殊类型的测试,这一方式往往能帮助有经验的测试人员在测试计划之外发现更多的软件错误。
缺点:可能对测试造成人力、物理和财力的浪费,对测试员的熟练程度要求比较高。
1.软件测试过程模型—V模型是软件开发瀑布模型的变种,主要反映测试活动与分析和设计的关系;局限性:把测试作为编码之后的最后一个活动,需求分析等前期产生的错误直到后期的验收测试才能发现2.软件测试过程模型—W模型在V模型的基础上,增加个开发阶段的同步测试,形成W模型;测试与开发同步进行,有利于尽早的发现问题局限性:仍把开发活动看成是从需求开始到编码结束的串行活动,只有上一阶段完成后,才可以开始下一阶段的活动,不能支持迭代,自发性以及变更调整3.软件测试过程模型—H模型在H模型中,软件测试过程活动完全独立,贯穿于整个产品的周期,与其他流程并发地进行,某个测试点准备就绪时,就可以从测试准备阶段进行到测试执行阶段;软件测试可以尽早的进行;软件测试可以根据被测物的不同而分层次进行测试模型使用软件在实际工作中应灵活地运用各种模型的优点:V模型:强调了在整个软件项目开发中需要经历的若干个测试级别,并与每一个开发级别对应;忽略了测试的对象不应该仅仅包括程序,没有明确指出对需求、设计的测试W模型:补充了V模型中忽略的内容,强调了测试计划等工作的先行何对系统需求和系统设计的测试;与V模型相同,没有对软件测试的流程进行说明H模型:强调测试是独立的,只要测试准备完了,就可以执行测试了1、瀑布模型有以下优点1)为项目提供了按阶段划分的检查点。
软件测试----H模型
H模型将测试活动完全独⽴出来,形成⼀个完整的流程,同时将测试准备和测试执⾏清晰表现出来。
测试流程:
--测试准备:所有测试活动的准备判断是否到测试就绪点。
--测试就绪点:测试准⼊准则,即是否可以开始执⾏测试的条件
--测试执⾏:具体的执⾏测试的程序
其它流程:回归测试、冒烟测试、探索性测试
H模型优点:
(1)开发的H模型揭⽰了软件测试除测试执⾏外,还有很多⼯作。
(2)软件测试完全独⽴贯穿整个⽣命周期与其它流程并发进⾏;
(3)软件测试活动可以尽早准备尽早执⾏,具有很强的灵活性;
(4)软件测试可以根据被测对象的不同⽽分层次、分阶段、分次序的执⾏,同时也是可以被迭代的。
H模型的缺点:
(1)管理型要求⾼:要定义清晰的规则和管理制度,否则测试过程将很难管理和控制
(2)技能要求⾼:H模型要求能够很好的定义每个迭代的规模,不能太⼤也不能太⼩;
(3)测试就绪点分析困难:测试很多时候,你并不知道测试准备到什么时候是合适的,就绪点在哪,就绪点标准是什么,对后续的测试执⾏启动带来很⼤的困难
(4)对整个项⽬组的⼈员要求⾮常⾼:在很好的制度下,⼤家都能⾼效的1⼯作,否则容易混乱(对整个项⽬⾜够熟悉)。
例如:你分了⼀个很⼩的迭代,但因为⼈员技能不⾜,使得⽆法完成,那么整个项⽬会受到很⼤的⼲扰。
总结:
V模型适⽤于中⼩企业
W模型适⽤于中⼤型企业
H模型⼈员要求⾮常⾼,很少有⼈使⽤。
传统测试流程技术分享| ⼀⽂带你了解测试流程体系本⽂节选⾃霍格沃兹测试学院内部教材软件测试是软件质量保证的关键步骤。
越早发现软件中存在的问题,修复问题的成本就越低,软件质量也就越⾼,软件发布后的维护费⽤越低。
为了能更好的保障软件质量,在软件测试的实践中,慢慢形成了⼀些流程⽤来达到这⼀⽬标。
下⾯就来介绍⼀下常⻅的测试流程。
在传统的测试流程中包含了如图所⽰的步骤。
下⾯分别介绍下每⼀步流程的含义。
单元测试是对软件中的基本组成单位进⾏的测试。
⽬的是检验软件基本组成单位的正确性。
测试阶段:编码后测试对象:最⼩模块测试⼈员:开发测试依据:代码、注释、详细设计⽂档单元测试测试⽅法:⽩盒测试集成测试集成测试是在软件系统集成过程中所进⾏的测试。
⽬的是检查软件模块之间的接⼝是否正确。
测试阶段:单元测试完成后测试对象:模块间的接⼝测试⼈员:开发测试依据:单元测试模块、概要设计⽂档测试⽅法:⿊盒与⽩盒结合冒烟测试冒烟测试是在软件开发过程中的⼀种针对软件版本包的快速基本功能验证策略,是对软件基本功能进⾏确认验证的⼿段。
测试阶段:提测后测试对象:整个系统测试⼈员:测试测试依据:冒烟测试⽤例测试⽅法:⿊盒测试(⼿⼯或⾃动化⼿段)系统测试系统测试是对已经集成好的软件系统进⾏彻底的测试,以验证软件系统的正确性和性能等是否满⾜其规约所指定的要求。
测试阶段:冒烟测试通过后测试对象:整个系统测试⼈员:测试测试依据:需求⽂档、测试⽅案、测试⽤例测试⽅法:⿊盒测试⼀般系统的主要测试⼯作都集中系统测试阶段。
根据不同的系统,所进⾏的测试种类也很多。
在系统测试中,⼜包括如下测试种类:功能测试:功能测试是对产品的各功能进⾏验证,以检查是否满⾜需求的要求。
性能测试:性能测试是通过⾃动化测试⼯具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进⾏测试。
安全测试:安全测试检查系统对⾮法⼊侵的防范能⼒。
兼容测试:兼容性测试主要是测试系统在不同的软硬件环境下是否能够正常的运⾏。
1.软件测试定义(三种观点)(1)IEEE 在1983年将软件测试定义为“使用人工或自动手段运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别”,该定义明确地提出了软件测试以检验是否满足需求为目标。
(2)Myers则认为软件测试“是为了发现错误而执行程序的过程”,明确提出了“寻找错误”是测试目的。
(3)从软件质量保证的角度看,软件测试是一种重要的软件质量保证活动,其动机是通过一些经济、高效的方法,捕捉软件中的错误,从而达到保证软件内在质量的目的。
2.测试模型(1)v模型V模型的价值主要在于它非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间的对应关系:●单元测试的主要目的是根据详细设计说明书来验证和确认每个单元模块是否符合预期的要求,发现编码过程中可能存在的各种错误。
●集成测试主要目的是根据概要设计来验证和确认各个模块是否已正确集成到一起,主要是检查各单元与其它模块之间的接口上可能存在的错误●确认测试主要目的是根据需求分析来验证和确认软件是否符合用户的预期要求。
●系统测试主要目的是根据需求定义,验证和确认系统作为一个整体是否能够正常有效地运行。
(2)w模型与V 模型相比,在W 模型中,测试的对象不仅仅是程序还包括需求和设计。
应用该模型的优点在于,每个软件开发活动结束后就可以执行相应的测试,如:在需求分析结束后,就可以进行需求分析测试。
(3)H 模型H 模型揭示了:① 软件测试不仅仅指测试的执行, 还包括很多其他的活动。
② 软件测试是一个独立的流程, 贯穿产品的整个开发周期, 与其它流程并发进行。
③ 软件测试要尽早准备, 尽早执行。
④ 软件测试根据被测物的不同是分层次的. 不同层次的测试活动可以是按照某个次序先后进行的,但也可能是反复的。
3.相关术语(1)测试用例(Test Case)是为特定的目的而设计的一组测试输入、执行条件和预期的结果。
一、 V模型
V模型是最广为人知的测试模型。
最典型的V模型版本一般会在其开始部分对软件开发过程进行描述,如下图所示:
图1 V模型的各级开发阶段
这是古老的瀑布模型。
作为开发模型,
在V模型中,测试过程被加在开发过程的后半部分,如下图所示:
图2 V模型示意图
单元测试所检测代码的开发是否符合详细设计的要求。
集成测试所检测此前测试过的各组成部分是否能完好地结合到一起。
系统测试所检测已集成在一起的产品是否符合系统规格说明书的要求。
而验收测试则检测产品是否符合最终用户的需求。
预验收测试
可行性分析-------> 验收测试
↘ 预系统测试↗
需求分析-----> 系统测试
↘ 预集成测试↗
概要设计----> 集成测试
↘ 预单元测试↗
详细设计-> 单元测试
↘ ↗
编码
这就是软件测试的V模型
V模型的缺陷
仅仅把测试过程作为在需求分析、系统设计及编码之后的一个阶段
忽视了测试对需求分析,系统设计的验证,一直到后期的验收测试才被发现。
二、W模型
W模型由Evolutif公司公司提出,相对于V模型,W模型增加了软件各开发阶段中应同步进行的验证和确认活动。
如下图所示,W模型由两个V字型模型组成,分别代表测试与开发过程,图中明确表示出了测试与开发的并行关系。
W模型强调:测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、设计等同样要测试,也就是说,测试与开发是同步进行的。
W模型有利于尽早地全面的发现问题。
例如,需求分析完成后,测试人员就应该参与到对需求的验证和确认活动中,以尽早地找出缺陷所在。
同时,对需求的测试也有利于及时了解项目难度和测试风险,及早制定应对措施,这将显著减少总体测试时间,加快项目进度。
但W模型也存在局限性。
在W模型中,需求、设计、编码等活动被视为串行的,同时,测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段工作。
这样就无法支持迭代的开发模型。
对于当前软件开发复杂多变的情况,W模型并不能解除测试管理面临着困惑。
W模型的优点
测试的活动与软件开发同步进行
测试的对象不仅仅是程序,还包括需求和设计
尽早发现软件缺陷可降低软件开发的成本
三 H模型
它将测试活动完全独立出来,形成了一个完全独立的流程,将测试准备活动和测试执行活动清晰地体现出来,如图1-3所示。
这个示意图仅仅演示了在整个生产周期中某个层次上的一次测试“微循环”。
图中标注的其他流程可以是任意的开发流程。
例如,设计流程或编码流程。
也就是说,只要测试条件成熟了,测试准备活动完成了,测试执行活动就可以(或者说需要)进行了。
H模型揭示了一个原理:软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发地进行。
H模型指出软件测试要尽早准备,尽早执行。
不同的测试活动可以是按照某个次序先后进行的,但也可能是反复的,只要某个测试达到准备就绪点,测试执行活动就可以开展。