【IT168技术文章】2、CMMI模型对软件测试的支持和扩充
CMMI模型主张在开发过程中注重对过程和产品的度量,以量化的形式提供对管理过程的支持,以及对过程进行相应的评估和改进。这实际上就是对软件测试技术的一种应用和扩充。CMMI模型将测量和分析作为一个单独的过程域,充分体现了对开发过程中的测量技术的重视,该过程域的目的就是开发和维持度量能力,以便支持对管理信息的需要。
测量和分析过程域共有三个目标,其中两个为特定目标,一个为共性目标。
第一个目标是协调测量和分析活动。为实现这一目标,模型中给出了四个方面的特定实践,它们分别是确定测量对象,建立测量目标;详细说明度量值,以处理测量目标;规定数据收集和存储规程,说明如何获得并存储测量数据;规定分析规程,说明如何对度量数据进行分析和报告,并且安排优先顺序。该目标中所针对的测量对象既包括组织所开发出的软件产品、半成品以及过程产品,也包括对开发过程本身的度量。因此,在测量和分析过程中不仅要用到传统软件测试中的一些技术和方法,还需要在测量过程中引入统计过程控制等理论方法,提供对过程度量和改进的支持。
第二个目标是提供度量结果,以便处理信息需要和目标。为实现这一目标,模型中也给出了以下几方面的特定实践:收集度量数据,即获得制定的度量数据;分析并解释度量数据;管理并存储度量数据、度量规范和分析结果;通报分析结果,向所有的干系人报告测量和分析活动的结果。在这一目标中,主要关注的是对测量结果的分析和使用。在传统的软件测试中,只要产品通过了需求方的验收,达到了合同要求,开发组织一般也就不再重视对软件测试结果数据的管理和使用。从过程改进的角度来说,这是很不科学的。基于CMMI的集成化过程改进和评估,提出了建立开发过程数据库的思想,作为组织进行过程改进的基础。而建立过程数据的过程中,实际上也就是对测试和度量数据的积累和存储过程。从这一点来说,在开发过程中开展软件测试以及针对开发过程的度量,是建立过程数据库的必要步骤。
第三个目标是共性目标,即将测量和分析活动制度化为可管理的过程。这一目标主要关注的是对软件测试和过程度量活动的管理以及制度化。针对这一共性目标,CMMI模型从四个不同方面给出了10个共性实践。首先,作为执行测量和分析活动的承诺,要求组织建立方针,为策划和执行“测量和分析”过程提供组织级的支持;其次,在执行能力方面,组织应该制定测量和分析过程计划;提供必要的资源;分配相应的责任;并且对相关人员进行培训。第三,为了指导该过程的实施,组织应该将测量和分析过程指定的工作产品置于配置管理的适当层次;确定与过程相关的干系人并使之介入;同时还要对测量和分析过程进行监督和控制。最后,作为对测量和分析活动的验证实施,组织应该客观评价测量和分析过程以及过程的工作产品和服务的遵循情况;同时,由高层管理者审查测量和分析过程的活动、状态和分析结果,并解决相应的问题。这一共性目标的实现,实际上就是把测量和分析活动制度化为一种组织级的行为,在整个组织的范围内加强了对软件测试和过程度量活动的组织和管理工作。
从以上分析可以看出,CMMI模型主要从以下三个方面扩充的传统的软件测试技术:
(1)从单纯的对软件产品的测试活动,扩展为软件产品的测试和开发过程的度量。
这一方面主要体现在过程度量对软件测试的依赖和应用。对开发过程进行度量,需要利用对软件产品、半成品以及工作产品的测试结果,从而建立对软件产品缺陷对开发过程的可跟踪性。从这一点来说,对开发过程的度量,实际上也就是针对软件产品的测试活动的扩展,其与传统的软件测试的不同之处就在于关注对软件测试结果数据的分析和利用,将测试数据有效转换成为能够标识过程缺陷的统计数据。
(2)软件测试由原来的事后测试行为发展为全过程测试和分析,成为一种缺陷预防的有效方式。
统计技术方法的应用,将传统的软件测试活动扩展为一种全过程测试行为。从质量工程的角度来说,这是一种质量保证思想的转变。传统的软件测试,只针对软件产品而开展,找到缺陷之后再加以改正和修补,这是一种“亡羊补牢”的质量管理方式;而针对开发全过程所开展的软件测试和过程度量,则注重根据对测试数据的统计分析结果,来判断软件产品的未来质量趋势,并提前予以控制和预防,属于一种“防患于未然”的质量管理方式。与传统的软件测试相比,全过程测试不仅可以有效降低产品的质量风险,而且还可以提前对软件产品缺陷进行规避,这不仅缩短了对缺陷的反馈周期和整个项目的开发周期,而且也大大降低了对软件产品的维修和维护费用,对于软件产品的整个生命周期都有很重大的意义。
(3)软件测试与开发过程的其他阶段不再是串行工作方式,而是与整个开发过程并行进行。
与瀑布模型相比,CMMI模型中所描述的软件测试和过程度量工作与整个开发过程是并行进行的,是一种基于并行工程的测试和度量行为。基于并行工程开展的软件测试活动,存在于软件生命周期的各个阶段,其基本特点是以质量保证和客户要求为核心开展对软件产品和开发过程的测试和度量,力争将缺陷控制在软件开发过程的每一个阶段,从而可以有效缩短开发周期,降低质量风险,并且可以及时吸取经验教训,提供对过程改进的支持。这也体现了CMMI模型对并行工程思想的一种支持和应用。
除了测量和分析过程域之外,CMMI4中的量化过程管理过程域也是对软件测试和过程度量技术的一种更高层次上的应用。在该过程域中,测试和度量已经不仅仅是一种被管理的过程,而且其本身也成为了一种有效的辅助管理手段,从定量化的角度对软件开发过程的管理和组织活动给出了支持。开发过程管理从定性到定量的转化,是CMMI集成化过程改进所追求的目标之一,也是开发组织一直追求的一种更高水平的管理方式。因此,随着软件开发组织过程能力的不断提高,软件测试和度量技术也将会得到不断的发展和完善。