编者按:这是测试的各个环节,项目开始阶段,代码设计阶段到执行阶段是一一对应的,项目从初的定义,测试的定义,测试的目标等等,通常讲的是主要的测试计划,各个层面的测试计划。Rational的佳实践测试方法,要测试工作量化,测试度量标准,建立测试任务的流程,还有测试案例管理统一模板,统一管理,一定要建立相应的测试管理的平台,缺陷和变更的管理,以及自动化的实现。

为什么要测试,我们测试的目标是什么?作为测试人员和测试经理或了解测试目的软件开发人员也许不需要了解,但现在理念完全改变了,所有人都应该了解测试,不管是项目管理还是开发人员,以及其他团队成员。现在强调测试驱动,业务驱动。测试的目的是什么?重要的目的是满足用户的需要。讲到测试重要性,很重要的是成本问题,在软件开发有这么一些阶段,有需求分析阶段,设计阶段,编码阶段,还有测试和终的交付阶段,到产品上线的过程,如果我们发现问题越早,我们付出代价越低,如果到了生产线以后发现问题成本几乎是以前的95倍,因为这个问题会有很多流程,如果到了产品生产线环境里,带来的费用是非常巨大的。作为测试人员发现BUG应该很有成感,这对公司有很大的贡献。

讲到每个阶段产生代码的个数,这是国际知名的软件工程研究所发现的规律,每个程序员每小时产生4.2个缺陷,这数据会根据不同的开发语言,技术层面不同会有所差异,这是一个平均值。而且大部分的缺陷产生于生产、开发阶段,在编码阶段产生很多的缺陷,到后面成本投入越来越高,尽早发现缺陷,尽早解决它,以降低我们的成本。

既然测试那么重要,给客户带来信心,帮助我们提高质量,帮助我们改进生产力等,我们如何做呢?首先有一个概念全寿命测试的概念,为什么叫全寿命,在软件测试各个阶段都要引入测试的理念,要同各个团队打交道,测试团队并不只是后端,进入终代码一级才有的工作,在我们之前会跟很多部门有沟通、交流,有需求,还有跟市场的部门,还有沟通渠道,还有对外交流,项目管理,IT部门,比如要有测试网络,有IT部门的介入,有系列工具的部署,架构设计方法论等等,这一系列都需要有组织级的行为,需要在不同阶段有不同协作的机制。看一下不同测试阶段的划分,这是早项目的起始阶段,需求分析,到了项目问题的分析到了设计阶段,到系统测试、安装和维护阶段,传统的测试阶段会在设计的后期,会有一些设计文档可能会有测试人员介入或了解,到编码后期测试工作会进来,这理念和过去讲的传统测试不一样的,为什么要这样设计?有他自身的依据,因为越到后面发现问题成本越高,而且传统的说法,在测试阶段发现很多BUG,很多BUG的分类很多是在设计这一块出现的,并不是在编码,设计的理念或需求分析有偏差,在这个阶段要抓住这个问题。