为什么要测试,我们测试的目标是什么?作为测试人员和测试经理或了解测试目的软件开发人员也许不需要了解,但现在理念完全改变了,所有人都应该了解测试,不管是项目管理还是开发人员,以及其他团队成员。现在强调测试驱动,业务驱动。测试的目的是什么?最重要的目的是满足用户的需要。讲到测试重要性,很重要的是成本问题,在软件开发有这么一些阶段,有需求分析阶段,设计阶段,编码阶段,还有测试和最终的交付阶段,到产品上线的过程,如果我们发现问题越早,我们付出代价越低,如果到了生产线以后发现问题成本几乎是以前的95倍,因为这个问题会有很多流程,如果到了产品生产线环境里,带来的费用是非常巨大的。作为测试人员发现BUG应该很有成就感,这对公司有很大的贡献。
讲到每个阶段产生代码的个数,这是国际知名的软件工程研究所发现的规律,每个程序员每小时产生4.2个缺陷,这数据会根据不同的开发语言,技术层面不同会有所差异,这是一个平均值。而且大部分的缺陷产生于生产、开发阶段,在编码阶段产生很多的缺陷,到后面成本投入越来越高,尽早发现缺陷,尽早解决它,以降低我们的成本。
既然测试那么重要,给客户带来信心,帮助我们提高质量,帮助我们改进生产力等,我们如何做呢?首先有一个概念全寿命测试的概念,为什么叫全寿命,在软件测试各个阶段都要引入测试的理念,要同各个团队打交道,测试团队并不只是后端,进入最终代码一级才有的工作,在我们之前会跟很多部门有沟通、交流,有需求,还有跟市场的部门,还有沟通渠道,还有对外交流,项目管理,IT部门,比如要有测试网络,有IT部门的介入,有系列工具的部署,架构设计方法论等等,这一系列都需要有组织级的行为,需要在不同阶段有不同协作的机制。看一下不同测试阶段的划分,这是最早项目的起始阶段,需求分析,到了项目问题的分析到了设计阶段,到系统测试、安装和维护阶段,传统的测试阶段会在设计的后期,会有一些设计文档可能会有测试人员介入或了解,到编码后期测试工作会进来,这理念和过去讲的传统测试不一样的,为什么要这样设计?有他自身的依据,因为越到后面发现问题成本越高,而且传统的说法,在测试阶段发现很多BUG,很多BUG的分类很多是在设计这一块出现的,并不是在编码,设计的理念或需求分析就有偏差,在这个阶段要抓住这个问题。
测试生命周期和开发生命周期,在全生命阶段,我们所有计划和需求两个同步进行。而且是一个循环,往往会有多个周期,第一个循环,第二个循环是迭代式开发,为什么要尽早引入而且要频繁测试。下面讲到IBM的测试模型,在定义阶段,项目要做什么样的东西,项目范围多大,项目要在什么阶段产出什么样的产出物,测试的准备工作,测试的计划就会开始启动。测试准备开始了,随后会在设计阶段,还有生成阶段,代码生成阶段,对于单元测试,之后是集成测试,还有系统测试等等都会开始引入。还有测试软件的配置管理,测试环境的建立,需求阶段,定义阶段,一直到最后产品上线,全程都有。有人觉得奇怪,软件平台搭建和软件工具配置跟这有什么关系,其实测试跟开发是类似的,有很多要递交的东西,比如测试计划,测试用意,测试数据,测试的报告,测试中间产生的状态,这些东西都是需要有一个测试的平台来管理,因为你不是一个人作战,你是一个团队,项目越大,你测试不是一个人,是一个团队或一个中心,很多人在里面需要一系列的产出物,这是需要有人管理的,不是在你大脑里或你手里的笔记里,这是没有办法沟通的,一个一个信息孤岛是没有办法交流的,而且没有办法互相监测。不知道大家在座有没有感觉,很多做测试管理和测试开发,测试培训人员,他们面对最大的挑战,我碰多碰到客户讲现在最大挑战,是我不知道现在进度在哪儿,也不知道挑战什么样子,也不知道手下什么样,这就是缺乏平台导致的,所以环境的准备从头到尾。
这是测试的各个环节,项目开始阶段,代码设计阶段到执行阶段是一一对应的,项目从最初的定义,测试的定义,测试的目标等等,通常讲的是主要的测试计划,各个层面的测试计划。客户接受测试计划、用户接受测试计划、下一个阶段系统测试计划。从这个侧面看像一个倒写的V,所以我们讲V字型测试模型,现在反过来更强调X,为什么叫X?就是一个V再加一个V,上下两个V就变成X,刚开始可能需求驱动测试,有需求,有项目的立项,有各种各样的计划,反过来,测试又会驱动开发,可能就变成X,再往后有更多测试模型叫W,一个V接一个V下去,多次迭代,每次交付了一部分的功能、代码、设计,所以我们测试在不断循环。
文章来源于领测软件测试网 https://www.ltesting.net/