摘要:QA活动是CMMI实施中较难贯彻的过程。本文针对目前国内的QA过程实施情况,从QA的地位、原则、活动、实施等方面进行了阐述。同时讨论了QA与QC、测试之间的关系,以及实施QA活动的最佳实践,为组织实施过程改进提供了基础。
1 概述
在使用CMMI模型实施过程改进时,需建立QA(Quality Assurance)的组织职能和角色,并实施“过程和产品质量保证”活动。这些活动目的在于使项目工作人员和所有各层管理者能适当地了解整个项目生存周期中工作产品和过程的情况,从而支持交付高质量的产品和服务。
由于CMMI模型是建立在西方的企业文化背景下,包含有三权分立的思想,所以对于国内IT及软件企业而言,如何理解和建立QA机制,更好地利用CMMI模型进行过程改进就显得非常重要。但是,目前国内IT及软件企业对于QA的意义和认识存在误区,导致在实施过程改进活动中,QA活动流于形式或没有发挥出其真正作用。到底QA在组织中应扮演什么样的角色,CMMI的QA的与ISO9000的QA或QC(Quality Control)概念有何区别,QA与测试是什么关系,如何实施QA活动,等等,本文针对这些进行阐述,以解决企业CMMI实施过程中的薄弱环节。
2 QA的地位及活动
2.1 QA的地位
图1显示了在CMMI实施过程中QA所处的地位。
图1 QA的组织结构
QA活动的目标是以独立审查方式,从第三方的角度监控软件开发任务的执行,就项目是否正遵循已制定的计划、标准和规程给开发人员和管理层提供反映产品和过程质量的信息和数据,提高项目透明度,同时辅助软件工程组交付高质量的软件产品。所以对过程和产品质量保证的客观评价是项目成功的关键,一般是通过独立于项目的QA小组来提供这种客观性。每个从事QA活动的人都要进行质量保证方面的培训。从事某个产品的QA活动的那些人不应该是直接介入该工作产品开发或维护的人。同时,应该有一条向适当的管理层独立报告问题的渠道,以便在必要时逐级上报不符合问题。
不过,在某些组织里,不要求这种独立性而实现过程和产品质量保证角色可能更合适。例如,在一个具有开放的、面向质量的文化环境的组织里,可以由同行担任(部分或全部)过程和产品质量保证角色,可以把质量保证功能镶嵌在过程中。
QA应具备以下职责:
通过监控开发过程来保证工作产品质量
保证开发出来的产品和开发过程符合相应标准与规程;
保证产品、过程中存在的不符合问题得到处理,必要时将问题反映给高级管理者
确保项目组制定的计划、标准和规程适合项目组需要,同时满足评审需要
向开发人员提供反馈
2.2 QA的活动
QA的工作内容为:
1) 客观评价过程和工作产品:对于所实施的过程和相关工作产品以及服务对适用的过程描述、标准和规程的遵循情况进行客观评价。
2) 提供客观情况:客观地跟踪和通报不符合问题,并且确保解决它们。
因此,QA的活动步骤如图2所示。
图2 QA的活动步骤
由上可知,QA涉及以下活动:
对照适用的过程描述、标准和规程客观地评价所执行的过程、工作产品和服务;
识别不符合问题,并形成文件:
向项目工作人员和管理者反馈质量保证活动情况;
确保不符合问题得到处理。
3 QA与QC、测试之间的关系
3.1 QA和QC
QA和QC区别在于:
QC:检验产品的质量,保证产品符合客户的需求;是产品质量检查者;
QA:评审过程和产品的质量,特别要保证过程被正确执行,通过保证过程质量来保证产品质量 。