测试流程并非一些数字或文字的简单排列。合理可控的测试流程,犹如一条两边带有防护网的钢索桥,大家走在上面,既安全又可靠。即使是新加入测试团队的成员,也可以很安稳地度过一关又一关,把每一环节的测试工作顺利地贯穿起来,形成一个可见、可控、有序的测试系统链。
下面通过两个案例“让大家一起忙起来”和“软件运行得犹如蜗牛在爬行”介绍如何把工作中出现的问题,通过改进测试流程的方式来解决。这种流程的改进正是一种适合公司业务发展的流程设计。
认识测试流程
当在工作中出现问题后,常会听到一些测试人员说“是不是测试流程有问题?”那么这个测试流程到底是指什么呢?
从狭义上讲,测试流程是指完成某项测试任务时,对如何完成任务做的先后安排,如先有测试计划,然后是设计测试方案及测试用例,接着是执行测试活动,最后输出测试报告,一件测试任务到此结束。然而,在实际工作中,测试的依据是需求,测试的对象主要是软件,不可能与其他团队成员没有联系,测试流程中需要考虑这些因素对测试各环节输入/输出的影响。
从广义上讲,测试流程是所有关于测试事务的抽象统一体,流程有静态性,同时也有动态发展的特点。从静态来看,主要指已有的测试流程规范,包括测试工作指南、测试计划、测试方案、测试用例设计模板等,这些属于测试流程体系中的文档输出指导范畴。还有属于测试管理流程范畴的内容,包括测试新员工入职指引、项目测试手册、测试配置管理手册、测试知识经验库、培训库等。还有如功能测试方法库、系统测试方法集、经典Bug分析集,灰盒测试、白盒测试指南等一系列技术性的流程、规范或指南。这些流程体系、知识库的积累,并不是一朝而就,是一个测试团队成长的重要标志。也正因为如此,流程体系有动态发展的一面,随着公司内外环境的变化,固有的流程体系有些可能过时,有些仍可继续使用,需要根据不断变化的需求做合适的调整。
测试并非空中来客,也非外星人那样另类、独立。需求、开发、测试在软件产品的整个开发链中,三者之间的关系特别紧密,犹如一个三足鼎立的主体,如下图所示。它们之间的工作方式可以是串行式,也可以是迭代式,当然也可以是并行式工作,这取决于研发团队采用什么样的开发模式。项目的研发是公司的生命线及核心竞争力,对公司的发展承担着重要角色。同样地,一个项目的开发模式,对测试流程体系的建设与发展变化有着重要意义。通常情况下,意味着对原流程体系的局部保留与改进,但也可能需另立一套全新的流程予以支持。总之,对待测试流程不能仅是看静的一面,静只是暂时的,它犹如行程中的流水,需适时适地顺势而变化,方能流得更长更远。
软件需求、开发、测试三足鼎立示意图
测试流程的实质是一种资源平台,且是核心资源,但与其他资源,如人力、物力资源相比,它具有一定的独特性,多数情况下流程看不见、摸不着,甚至说不清、道不明。然而测试的流程又确实存在于测试组织运作的方方面面,直接影响着所有测试人员的绩效,这就是流程隐含着的魅力。测试流程虽是一种资源,但不具有独立性,若是脱离了人这个主体,流程是无法创造价值的,几乎不名一文。
通过前面的流程内容介绍可看到,所有的流程规范都是设计出来的,是设计的结果。实际上正是透过各测试环节任务的安排,将测试的资源(流程规范)以适当的活动转化成了为测试所提供的服务。
相关链接: