前言
软件测试和软件开发一样,都遵循软件工程原理,遵循管理学原理,测试专家通过实践总结出了很好很多的测试模型,这些模型将测试活动进行了抽象,明确了测试与开发之间的关系,是测试管理得的重要参考依据。
瀑布模型
瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。
优点:
1、为项目提供了按阶段划分的检查点;
2、当前一阶段完成后,只需要去关注后续阶段;
3、可在迭代模型中和应用瀑布模型,瀑布模型多使用增量迭代,每次迭代产生一个可运行的版本,同时增加更多的功能,每次跌打必须经过质量和集成测试;
缺点:
1、各个阶段的划分完全固定,阶段之间产生大量的文档,极大的增加了工作量;
2、由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发结果,从而增加了开发风险;
3、早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果;
4、瀑布模型的突出缺点是不适应用户需求的变化;
V模型
V模型是一个著名的,以测试驱动的开发模型,该模型强调开发过程中测试贯穿始终,是瀑布模型的一个变体;
对应关系:
单元测试对应详细设计,也就是说,单元测试的测试用例是和详细设计一起出现的,在研发人员做详细设计的时候,相应的测试人员也就把测试用例写了出来;
集成测试对应概要设计,在做模块功能分析及模块接口,数据传输方法的时候,就把集成测试用例根据概要设计中模块功能及接口等实现方法编写出来,以备以后作集成测试的时候可以直接引用;
系统测试对应系统设计,在系统分析人员做系统分析,编写需求说明书的时候测试人员就根据客户需求说明书,把最后能实现系统功能的各种测试用例写出来,为做最后系统测试做准备;
验收测试与用户需求对应,是非设计流程;
优点:
1、V模型清楚的标识出了软件开发的阶段;
2、它采用自顶向下逐步求精的方式把整个开发过程分成不同阶段,在每个开发阶段都有测试工作的介入,因此便于控制开发过程,当所有的阶段都完成之后,该软件的开发过程也随之结束;
缺点:
1、V模型一大缺点正是它自身的顺序性所导致的,到了测试阶段,程序已经完成,错误已经产生,很多前期的错误一直到测试阶段才发现,甚至无法发现,往往无从修改了;
2、同时实际的开发过程中,在需求阶段很难把用户的需求完成全明确下来,因此,当需求变更时将会导致阶段反复,而且都要重复需求,设计,编码,测试等过程,返工量非常大,模型灵活比较低;
W模型:
W模型相对于V模型增加了软件开发阶段中同步进行的验证和确认活动;
优点:
1、开发强调测试伴随整个软件开发周期,而且测试的对象不仅仅是程序,需求和概要设计同样要测试;
2、更早的接入测试,可以发现开发初期的缺陷,那么可以用更加低的成本进行缺陷修复,便于控制项目过程;
缺点:
在W模型中,需求,设计编码的等活动被视为串行的多,同时测试和开发活动也保持着一种线性的前后关系,上依旧单完全结束,才可正式开始下一阶段工作,这样就无法支持低的大地的开发模型,对于当前软件开发复杂多变的情况,W模型并不能解除测试管理面临的困惑;
H模型
相对于V模型和W模型,H模型将测试活动完全独立起来,形成了一个完全的独立的流程,将测试准备活动和测试执行活动清晰的体现出来;
H模型指出软件测试要尽早准备,尽早执行,只要某个测试达到准备就绪点,测试活动就可以开展,并且不同的测试活动可按照某个次序先后进行,但也可以是反复进行的;
优点:
1、开发的H模型揭示了软件测试除测试执行外,还有很多工作;
2、软件测试完全独立,贯穿整个生命周期,且与其他流程并发进行;
3、软件测试活动可以尽早准备,尽早执行,具有很强的灵活性;
4、软件测试可以根据被测物的不同而分层次,分阶段,分次序的执行,同时也是可以迭代的;
缺点:
1、管理型要求高,由于模型很灵活,必须要定义清晰的规划和管理制度,否则测试过程非常难以管理和控制;
2、技能要求高,H模型要求能够很好定义每个迭代的规模,不能太大也不能太小;
3、测试就绪点分析困难,测试很多时候,并不知道测试准备到什么时候是合适的,就绪点在哪里,就绪点的标准是什么,这就对后续的测试执行的启动带来很大困难;
感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取