传统测试流程技术分享
| ⼀⽂带你了解测试流程体系
本⽂节选⾃霍格沃兹测试学院内部教材
软件测试是软件质量保证的关键步骤。越早发现软件中存在的问题,修复问题的成本就越低,软件质量也就越⾼,软件发布后的维护费⽤越低。
为了能更好的保障软件质量,在软件测试的实践中,慢慢形成了⼀些流程⽤来达到这⼀⽬标。下⾯就来介绍⼀下常⻅的测试流程。
在传统的测试流程中包含了如图所⽰的步骤。
下⾯分别介绍下每⼀步流程的含义。
单元测试是对软件中的基本组成单位进⾏的测试。⽬的是检验软件基本组成单位的正确性。
测试阶段:编码后
测试对象:最⼩模块
测试⼈员:开发
测试依据:代码、注释、详细设计⽂档
单元测试
测试⽅法:⽩盒测试
集成测试
集成测试是在软件系统集成过程中所进⾏的测试。⽬的是检查软件模块之间的接⼝是否正确。
测试阶段:单元测试完成后
测试对象:模块间的接⼝
测试⼈员:开发
测试依据:单元测试模块、概要设计⽂档
测试⽅法:⿊盒与⽩盒结合
冒烟测试
冒烟测试是在软件开发过程中的⼀种针对软件版本包的快速基本功能验证策略,是对软件基本功能进⾏确认验证的⼿段。
测试阶段:提测后
测试对象:整个系统
测试⼈员:测试
测试依据:冒烟测试⽤例
测试⽅法:⿊盒测试(⼿⼯或⾃动化⼿段)
系统测试
系统测试是对已经集成好的软件系统进⾏彻底的测试,以验证软件系统的正确性和性能等是否满⾜其规约所指定的要求。
测试阶段:冒烟测试通过后
测试对象:整个系统
测试⼈员:测试
测试依据:需求⽂档、测试⽅案、测试⽤例
测试⽅法:⿊盒测试
⼀般系统的主要测试⼯作都集中系统测试阶段。根据不同的系统,所进⾏的测试种类也很多。
在系统测试中,⼜包括如下测试种类:
功能测试:功能测试是对产品的各功能进⾏验证,以检查是否满⾜需求的要求。
性能测试:性能测试是通过⾃动化测试⼯具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进⾏测试。
安全测试:安全测试检查系统对⾮法⼊侵的防范能⼒。
兼容测试:兼容性测试主要是测试系统在不同的软硬件环境下是否能够正常的运⾏。
验收测试
验收测试是部署软件之前的最后⼀个测试操作。验收测试的⽬的是确保软件准备就绪,向软件购买都展⽰该软件系统满⾜其⽤⼾的需求。
测试阶段:发布前
测试对象:整个系统
测试⼈员:⽤⼾/需求⽅
测试依据:需求、验收标准
测试⽅法:⿊盒测试
软件测试过程是⼀种抽象的模型,⽤于定义软件测试的流程和⽅法。众所周知,开发过程的质量决定了软件的质量,同样的,测试过程的质量将直接影响测试结果的准确性和有效性。软件测试过程和软件开发过程⼀样,都遵循软件⼯程原理,遵循管理学原理。
随着测试过程管理的发展,软件测试专家通过实践总结出了很多很好的测试过程模型。这些模型将测试活动进⾏了抽象,并与开发活动有机的进⾏了结合,是测试过程管理的重要参考依据。
下⾯介绍⼏种常⻅的测试模型。
软件测试流程V 模型
V 模型是开发模型中瀑布模型的⼀种改进。瀑布模型将软件⽣命周期划分为计划、分析、设计、编码、测试和维护六个阶段,由于早期的错误可能要等到开发后期的测试阶段才能发现,所以可能带来严重的后
果。V 模型在这点改进了瀑布模型,在软件开发的⽣存期,开发活动和测试活动⼏乎同时开始,在开发活动进⾏的时候,测试活动开始进⾏相应的⽂档准备⼯作,从⽽改进软件开发的效率和效果。
V 模型的优点是明确的标注了测试过程中存在着那些不同的测试类型,并且可以清楚的表达测试阶段和开发过程各阶段的对应关系。
但是,它也有⼀些缺点。⽐如容易让⼈误解为测试是在开发完成之后的⼀个阶段。⽽且由于它的顺序性,当编码完成之后,正式进⼊测试时,这时发现的⼀些 Bug 可能不容易到其根源,并且代码修改起来很困难。在实际⼯作中,因为需求变更较⼤,使⽤ V 模型可能导致要重复变更需求、设计、编码、测试,返⼯量会⽐较⼤。
W 模型从 V 模型演化过来。相对于 V 模型,W 模型增加了软件各开发阶段中应同步进⾏的验证和确认活动。
W 模型由两个 V 字型模型组成,分别代表测试与开发过程,图中明确表⽰出了测试与开发的并⾏关系。
W 模型
测试与开发是同步进⾏的,有利于尽早的全⾯发现问题。
W 模型认为测试伴随着整个软件开发周期,⽽且测试的对象不仅仅是程序,需求、设计等同样要测试。W 模型有利于尽早地全⾯的发现问题。例如,需求分析完成后,测试⼈员就应该参与到对需求的验证和确认活动中,以尽早地出缺陷所在。
对需求的测试也有利于及时了解项⽬难度和测试⻛险,及早制定应对措施,这将显著减少总体测试时间,加快项⽬进度。
使⽤ W 模型的优点很明显。⾸先测试的活动与软件开发同步进⾏,⽽且测试的对象不仅仅是程序,还包括需求和设计。这样可以尽早发现软件缺陷可降低软件开发的成本。
但是 W 模型还是有⼀些缺点存在。⽐如开发和测试依然是线性的关系,需求的变更和调整,依然不⽅便。⽽且如果没有⽂档,根本⽆法执⾏ W 模型。使⽤ W 模型对于项⽬组成员的技术要求也更⾼。
H 模型
相对于 V 模型和 W 模型,H 模型将测试活动完全独⽴出来,形成了⼀个完全独⽴的流程,将测试准备活动和测试执⾏活动清晰地体现出来。
这个⽰意图仅仅演⽰了在整个⽣产周期中某个层次上的⼀次测试“微循环”。图中标注的其他流程可以是任意的开发流程,例如,设计流程或编码流程。也就是说,只要测试条件成熟了,测试准备活动完成了,测试执⾏活动就可以(或者说需要)进⾏了。
H 模型中包含了如下概念:
测试准备:所有测试活动的准备判断是否到测试就绪点。
测试就绪点:测试准⼊准则,即是否可以开始执⾏测试的条件。
测试执⾏:具体的执⾏测试的程序。
其它流程:设计流程或编码流程。
H 模型揭⽰了软件测试除测试执⾏外,还有很多⼯作。它让测试活动完全独⽴贯穿整个⽣命周期与其它流程并发进⾏。在 H 模型中,软件测试活动可以尽早准备尽早执⾏,具有很强的灵活性。⽽且软件测试可以根据被测对象的不同⽽分层次、分阶段、分次序的执⾏,同时也是可以被迭代的。
但是 H 模型对于管理要求很⾼,因为需要定义清晰的规则和管理制度,否则测试过程将很难管理和控制。⽽且对于技能要求也很⾼,因为 H 模型要求能够很好的定义每个迭代的规模,不能太⼤也不能太⼩。在 H 模型中,测试就绪点的分析也⽐较困难。因为测试过程中,并不知道测试准备到什么时候是合适的,就绪点在哪,就绪点标准是什么,这就对后续的测试执⾏启动带来很⼤的困难。