在衡量软件企业的是研发和管理能力的是CMM以及后面推出的CMMI,很多公司通过CMM的各个级别的认证,为企业承接项目添加了砝码,而对于软件测试行业来说,还没有出现一个认证机构,测评一个从事软件测试项目的企业具有的能力。其实在几年前,已经推出的TMM(Testing Maturity Model),而我个人认为使用TCMM(Testing Capability Maturity Model)更为合适,TCMM也分为五级。下面我们就看看是如何划分的,来评判一下各位同仁自己所在的公司,所在的级别。
TCMM Level 1:Initial(初始级)
测试处于一个混乱的状态,还不能把测试同调试分开,在编码完成后才进行测试工作,测试和调试交叉在一起,目的就是发现软件中的bug。测试的目的是表明程序没有错。软件产品发布后没有质量保证。缺乏测试相应的测试资源、例如专职测试人员和测试工具,测试人员没有经过培训。这种类型的公司属于这个阶段,处于这个阶段的公司在测试中缺乏成熟的测试目标,测试处于可无可有的地位。
TCMM Level 2:Phase Definition(阶段定义级)
测试同调试分开且把测试作做为编码后的一个阶段。尽管测试别看做是一个有计划的行为,但是由于测试的不成熟仅在编码后制定测试计划,因为测试完全是针对于源代码的。处于这个级别的公司测试的首要目的就是验证软件符合需求,会采用基本的测试技术和方法,由于测试处于软件生命周期的末尾环节,导致出现很多无法弥补的质量问题。另外,在需求和设计阶段产生的很多问题被引入到编码中,但基于源代码的测试导致产生了很多的问题无法解决。
TCMM Level 3:Integration(集成级)
测试不再是编码后的一个阶段,而是把测试贯穿在整个软件生命周期中。就象软件测试领域的V模型,在需求阶段软件测试就介入了,测试是建立在满足用户或客户的需求上,根据需求设计测试用例和作为测试的依据。处于这个级别的公司测试工作由具有独立的部门负责,测试部门与开发部门分开,独立开展工作。测试部门有自己的技术培训并且有测试工具辅助进行测试工作。尽管处于这个阶段的公司认识到了评审在质量控制中的重要性,但是并没有建立起有效的评审制度,还不能在软件生命周期的各个阶段实施评审制度。没有建立起质量控制和质量度量标准。
TCMM Level 4:Management and Measurement(管理和度量级)
测试是一个度量和质量控制过程。在软件生命周期中评审作为测试和软件质量控制的一部分,被测试的软件产品标准包括可靠性、可用性和可维护性等。在测试项目中设计的测试用例别保存在测试用例数据库中便于重用和回归测试。使用缺陷管理系统管理软件缺陷并划分缺陷的级别。但是处于这个阶段的公司还没有建立起缺陷预防机制,且缺乏自动地对测试中产生的数据进行收集和分析的手段。
TCMM Level 5:Optimization(优化级)
具有缺陷预防和质量控制的能力。建立TCMM4基础上的测试公司已经建立起测试规范和流程,测试是受控的和被管理的。而达到TCMM5的公司,则坚决贯彻落实测试规范和流程且不断地进行测试过程改进,在实践中运用缺陷预防和质量控制措施。整个测试过程是被以往经验所驱动的,且是可信任和可靠的。选择和评估测试工具存在一个既定的流程。测试工具支持测试用例的运行和管理,辅助设计用例和维护测试相关资料,缺陷收集和分析,为缺陷预防和质量控制提供支持。
看了上面对于测试能力成熟度模型的分析,我们不难看出,目前我们国内从事软件测试的公司所处的级别,很多公司还处于2级或3级,这虽然与现在软件测试还是一个尚未成熟的行业有关,测试技术和测试工具还在发展之中,各个公司都在摸索阶段,从事测试外包的公司会好一些,这些公司为微软、IBM、Motorala等公司提供测试服务,基本上是按照委托方的要求或带领下进行测试工作,而国内做软件产品和承接软件开项目的公司,虽然有的建立了独立的测试团队,制定了测试规范和测试流程或者评审制度,但是测试工作还是在摸索阶段,现在是百家争鸣、百花齐放的阶段,除了引入国外的测试理论之外,目前国内也有很多人在研究测试理论,但是还没有出来领军人物。很多公司做软件测试时,几乎大多没有现成的经验可参考,所以目前急需建立软件测试的行业标准,推动测试行业的发展,让测试有依据可查。