测试生命周期和开发生命周期,在全生命阶段,我们所有计划和需求两个同步进行。而且是一个循环,往往会有多个周期,第一个循环,第二个循环是迭代式开发,为什么要尽早引入而且要频繁测试。下面讲到IBM的测试模型,在定义阶段,项目要做什么样的东西,项目范围多大,项目要在什么阶段产出什么样的产出物,测试的准备工作,测试的计划会开始启动。测试准备开始了,随后会在设计阶段,还有生成阶段,代码生成阶段,对于单元测试,之后是集成测试,还有系统测试等等都会开始引入。还有测试软件的配置管理,测试环境的建立,需求阶段,定义阶段,一直到后产品上线,全程都有。有人觉得奇怪,软件平台搭建和软件工具配置跟这有什么关系,其实测试跟开发是类似的,有很多要递交的东西,比如测试计划,测试用意,测试数据,测试的报告,测试中间产生的状态,这些东西都是需要有一个测试的平台来管理,因为你不是一个人作战,你是一个团队,项目越大,你测试不是一个人,是一个团队或一个中心,很多人在里面需要一系列的产出物,这是需要有人管理的,不是在你大脑里或你手里的笔记里,这是没有办法沟通的,一个一个信息孤岛是没有办法交流的,而且没有办法互相监测。不知道大家在座有没有感觉,很多做测试管理和测试开发,测试培训人员,他们面对大的挑战,我碰多碰到客户讲现在大挑战,是我不知道现在进度在哪儿,也不知道挑战什么样子,也不知道手下什么样,这是缺乏平台导致的,所以环境的准备从头到尾。

这是测试的各个环节,项目开始阶段,代码设计阶段到执行阶段是一一对应的,项目从初的定义,测试的定义,测试的目标等等,通常讲的是主要的测试计划,各个层面的测试计划。客户接受测试计划、用户接受测试计划、下一个阶段系统测试计划。从这个侧面看像一个倒写的V,所以我们讲V字型测试模型,现在反过来更强调X,为什么叫X?是一个V再加一个V,上下两个V变成X,刚开始可能需求驱动测试,有需求,有项目的立项,有各种各样的计划,反过来,测试又会驱动开发,可能变成X,再往后有更多测试模型叫W,一个V接一个V下去,多次迭代,每次交付了一部分的功能、代码、设计,所以我们测试在不断循环。

我们测试到底为什么服务?测试不仅仅是为开发团队服务,这是很重要的一个思考问题,通常我看到测试团队开发团队协作非常紧密,事实上不仅需要跟它们合作,还需要跟需求的业务分析部门,甚至跟后面的运营部门,产品上线了,或者递交到外部,我们更多的是要以整合业务的角度来看待问题,这是我们很重要的方面。看业务驱动的软件开发测试生命周期,有不同角色划进来,有终用户,上层的管理层,还有测试人员、开发人员,架构设计师,这完全是循环,跨平台,跨部门,在各个阶段都有测试的理念。

讲了很多方法和理念之后,下一个理念要引入的,有这样的方法和理念要建立什么团队来支撑我们的工作,让我们测试中心,测试团队更有效。第一点是人才培养,第二个流程建设非常重要,如果没有成型的流程,整个团队遵循的规则都很难控制的,再下面有质量量化和工程量化管理,测试项目的管理,我会一一做介绍,第一个会讲到人员,对人员有分工,角色与职能的分工。首先会有质量总监,测试经理和项目经理,会有架构设计师和软件配置人员,还有后面的测试人员,后还有质量分析专家,到了后期很重要的环节。所以测试是一门学问,需要很多人,很多人投入,有很多专业知识在里面,我测试有什么价值,怎么提升士气和战斗力时也有人问到这个问题。