在质量管理领域,质量保证(QA)与质量控制(QC)是两个重要概念。质量保证主要关注于提供满足质量要求的信任,而质量控制则致力于满足具体的质量标准。在ISO 9000:2000标准中,质量保证被定义为“质量管理的一部分,致力于提供质量要求会得到满足的信任”。质量控制则被定义为“质量管理的一部分,致力于满足质量要求”。
在软件/信息化行业中,质量保证的定义包括“质量保证是指为使软件产品符合规定需求所进行的一系列有计划的必要工作。”(GB/T 12504-1990《计算机软件质量保证计划规范》)。而质量控制的定义则为“为使某项目或产品符合已建立的技术需求提供足够的置信度,而必须采取的有计划和有系统的全部动作的模式。”(GB/T 11457—1995《软件工程术语》)。尽管这两个标准没有直接定义质量控制,但它们都强调了质量保证和质量控制的重要性。
在软件组织或项目团队中,QA与QC的角色有着不同的侧重点。具备必要资质的QA是组织中的高级人才,需要全面掌握组织的过程定义,熟悉所参与项目所用的工程技术;QC则包括软件测试设计员等高级人才,以及一般的测试员等中、初级人才。国外一些软件企业要求QA应具备两年以上的软件开发经验,半年以上的分析员、设计员经验;不仅要接受QA方面的培训,还要接受履行项目经理职责方面的培训。在项目组中,QA独立于项目经理,不由项目经理进行绩效考核;QC受项目经理领导,通常在项目运行周期内QC的绩效大部分由项目经理考核决定。
QA活动贯穿项目运行的全过程,而QC活动一般设置在项目运行的特定阶段。对称职的QA,跟踪和报告项目运行中的发现只是其工作职责的基础部分,更富有价值的工作包括为项目组提供过程支持,例如为项目经理提供以往类似项目的案例和参考数据,为项目组成员介绍和解释适用的过程定义文件等;QC的活动则主要是发现和报告产品的缺陷。