定义
QA:Quality Assurance (质量保证)
为达到质量要求所采取的动作和活动;为了确保软件开发过程和结果符合预期的结果,依照过程和计划采取的一系列活动及其结果评价。
QC:Quality Control (质量控制)为了表明软件产品满足质量要求,或者说是为了找到产品的潜在错误,而实施的根据需要进行证实的全部有计划、有系统的活动。
区别
(1)QA需要全面掌握组织的过程定义,熟悉所参与项目所用的工程技术;
(2)在项目组中,QA独立于项目经理,不由项目经理进行绩效考核;QC受项目经理领导,通常在项目运行周期内QC的绩效大部分由项目经理考核决定。 (3)QA活动贯穿项目运行的全过程;QC活动一般设置在项目运行的特定阶段,在不同的控制点可能由不同的角色完成。 (4)合格的QA,跟踪和报告项目运行中的发现问题,(findings)只是其工作职责的基础部分,更富有价值的工作包括为项目组提供过程支持,例如为项目经理提供以往类似项目的案例和参考数据,为项目组成员介绍和解释适用的过程定义文件等;QC的活动则主要是发现和报告产品的缺陷。由于各个企业采用的开发流程和测试流程不一样,在各个阶段QC的对应人员不一定都为测试人员 ,如在需求阶段,产生的工件为《需求规格说明书》,对该文档的主要质量控制手段为评审,这时候在此阶段担任QC职责的就是评审小组的成员。
总体来说,
QA:主要是“事先的“质量保证类活动,以预防为主,期望降低错误的发生几率。是针对项目实施过程的管理手段(过程)
QC:主要是“事后的”质量检验类活动为主,默认错误是允许的,期望发现并选出错误。是针对项目产品的技术手段(结果)
打个不恰当的比方, QC是警察,QA是法官,QC只要把违反法律的抓起来就可以了,并不能防止别人犯罪和给别人最终定罪,而法官就是制订法律来预防犯罪,依据法律宣判处置结果。
职责
QA的职责:监控公司质量保证体系的运行状况,审计项目的实际执行情况和公司规范之间的差异,并出具改进建议和统计分析报告。是过程、产品质量审计者。
1、导师的角色-在项目前期,QA辅导项目经理制定项目计划,根据质量标准过程裁剪得到项目过程,帮助项目进行估算,设定质量目标,对项目成员进行过程和规范的培训以及在过程中进行指导;
2、警察的角色-在项目过程中,QA有选择地参加项目的技术评审,定期对项目的工作产品和过程进行评审和审计;
3、医生的角色-在项目过程中,QA可以承担收集、统计、分析度量数据的工作,用于支持管理决策。
QC的职责:
目标
QA:减少并纠正实际的软件开发过程和软件开发结果与预期的软件开发过程和软件开发结果的不符合情况。
QC:为了寻找错误,并尽可能的为修复错误提供更多的信息。
PS:好绕啊,弄明白了吗?一句话,就是QA监控过程,QC检查结果;QA是公司派遣到项目组中,负责项目的过程监控,不受项目经理领导;QC可以由项目团队成员或者其他角色兼任,负责检验成果是否符合既定的要求。