UML软件工程组织

 

 

软件开发过程中的QA与QC
 
2007-11-29 作者:Judy Shen 来源:Csdn
 

在实际质量工作中,经常会碰到一个问题,即质量保证(Quality Assurance)和质量控制(Quality Control)关系比较容易混淆。QA和QC由于都属于质量管理的范畴,同时在工作中由于二者的工作存在部分交叉、共同的工作内容,因此在项目成员中容易造成职责上的混淆。为了让项目组成员了解二者的区别,并协调一致地开展工作、共同提高软件质量,笔者结合多年的测试经验对这两种角色的关系进行了研究和阐述。

1 QA与QC对比

QA和QC各司其职,相辅相成,统一于质量管理(Quality Management)。拿一部汽车来做比喻吧,质量控制(QC)就是所有那些告诉你汽车当前运动状态的仪器仪表;质量保证(QA)包括各类标准,是告诉你所有部件操作方法的用户手册;而质量管理(QM)则是你要追求的目标,比如希望能平安、高速地驾驶汽车。可以看出,为了实现质量管理的目标,质量保证和质量控制都是不可或缺的部分。

了解了QA和QC的重要性后,我们需要详细了解一下QA和QC的具体区别,如表一所示:

QA

QC

   

Quality Assurance(质量保证)

Quality Control (质量控制)

   

QA工程师

测试工程师、评审员

   

为了确保软件开发过程和结果符合预期的结果,依照过程和计划采取的一系列活动及其结果评价。

为了发现软件产品的错误、缺陷而进行工作的过程。

   

减少并纠正实际的软件开发过程和软件开发结果与预期的软件开发过程和软件开发结果的不符合情况。

为了寻找错误、缺陷,并尽可能的为修复错误提供更多的信息。

   

监控公司质量保证体系的运行状况,审计项目的实际执行情况和公司规范之间的差异,并出具改进建议和统计分析报告。

是过程、产品质量审计者。

对每一个阶段或者关键点的产出物(工件)进行检测,评估产出物是否符合预计的质量要求。关注各阶段的评审和测试缺陷。

是产品质量检查者。

表一 QA与QC基础信息对照表

2 QA与QC工作的区别和统一

在了解了QA和QC的不同之处后,那问题来了:QA和QC该如何在项目各阶段中既关注职能领域、又共同为项目的质量目标协调、一致地开展工作呢?根据不同的项目阶段,笔者将二者的工作内容和工作产品进行了划分,如表二所示。在实际项目中,QA或QC工作人员,可以依据项目所处阶段,快速清楚本阶段的工作内容和产出物。

  类别

项目阶段

QA

QC

工作内容

工作产品

工作内容

工作产品

项目启动

定义产品质量指标

参与项目规划的评审

产品质量指标

 

 

项目计划

编制QA计划

过程审计

项目QA计划

QA阶段工作报告

测试计划管理

参加评审

测试计划

 

需求分析

阶段交付物审计

过程审计

QA阶段工作报告

分析测试需求

参加评审

测试需求

   

阶段交付物审计

过程审计

QA阶段工作报告

设计测试用例

参加评审

可能的话参与部分设计

测试用例

   

阶段交付物审计

过程审计

QA阶段工作报告

单元测试

集成测试

参加评审

缺陷报告

测试报告

   

阶段交付物审计

过程审计

QA阶段工作报告

集成测试

系统测试

性能测试

回归测试

测试管理工作

用户手册验证

测试脚本

缺陷报告

测试报告

用户手册

验证报告

   

产品质量状态评估

过程审计

项目交付审计

产品质量评估报告

QA阶段工作报告

内部接收测试

验收测试

缺陷报告

测试报告

表二 QA与QC各个阶段工作内容及工作产品对照表

3 小结

质量保证(QA)与质量控制(QC)的关系,一直以来都比较让人困惑。本文主要是将二者在实际工作中,如何有效完成各自的使命进行了阐述。当然了,在不同公司,可能有不同的适用情况,所以,本文介绍的内容,仅仅只是个例子,供抛砖引玉用。

虽然不同公司有不同的情况,但是原则都是一样的。QA是从过程和标准来控制开发过程,从而达到提高软件质量的目的。而QC则是通过测试、评审等验证、确认手段来发现软件中的缺陷,并确保该缺陷得到解决,从而达到提高软件质量的目的。

 

组织简介 | 联系我们 |   Copyright 2002 ®  UML软件工程组织 京ICP备10020922号

京公海网安备110108001071号