UML软件工程组织

 

 

QA与QC的原义区别和在软件组织中的具体区别


2008-11-12 来源:网络
 

1.QA是Quality Assurance 的简称,中文意思是质量保证;QC是Quality Control的简称,中文意思是质量控制。按照ISO9000:2000,QA的定义是“质量管理的一部分,致力于提供质量要求会得到满足的信任”,QC的定义则是“质量管理的一部分,致力于满足质量要求”。说白了,QA则是对人、对过程,致力于使管理者、顾客和其他相关方相信有能力满足质量要求,更多的是体现在流程制度上;QC是对人事、对物,直接致力于满足质量要求,体现在质量把关的具体工作过程中。

在软件/信息化方面的一些标准中,QA的定义包括:“质量保证是指为使软件产品符合规定需求所进行的一系列有计划的必要工作。”(GB/T 12504-1990计算机软件质量保证计划规范);“为使某项目或产品符合已建立的技术需求提供足够的置信度,而必须采取的有计划和有系统的全部动作的模式。”(GB/T11457—1995软件工程术语)。在这两个标准中都没有直接关于QC的定义。 按照不同的目的、从不同的角度对同一个术语的定义往往存在差异,例如GB/T 12504-1990、GB/T11457—1995分别对QA的定义就存在差异,按照GB/T 12504-1990的QA定义涵盖的范围较宽,包含了QC的内容。

2.QA与QC的侧重点比较在一个软件组织或项目团队中,存在QA和QC两类角色,这两类角色工作的主要侧重点比较如下:QA与QC的其他重大区别还包括: 具备必要资质的QA是组织中的高级人才,需要全面掌握组织的过程定义,熟悉所参与项目所用的工程技术;QC则既包括软件测试设计员等高级人才,也包括一般的测试员等中、初级人才。国外有软件企业要求QA应具备两年以上的软件开发经验,半年以上的分析员、设计员经验;不仅要接受QA方面的培训,还要接受履行项目经理职责方面的培训。 在项目组中,QA独立于项目经理,不由项目经理进行绩效考核;QC受项目经理领导,通常在项目运行周期内QC的绩效大部分由项目经理考核决定。 QA活动贯穿项目运行的全过程;QC活动一般设置在项目运行的特定阶段,在不同的控制点可能由不同的角色完成。 对称职的QA,跟踪和报告项目运行中的发现(Findings)只是其工作职责的基础部分,更富有价值的工作包括为项目组提供过程支持,例如为项目经理提供以往类似项目的案例和参考数据,为项目组成员介绍和解释适用的过程定义文件等;QC的活动则主要是发现和报告产品的缺陷。

3.QA的工作内容 国际标准、国家标准都是通用的,软件组织是具体的、鲜活的。不同组织中QA的工作职责和内容会有共同性,也会有特异性,可以分层次考虑QA的工作内容和特点:

3.1 过程遵从性 保证过程遵从性是QA的根本职责,即保证项目组按组织规定的过程运行。通常各类组织,不仅是软件组织中的QA都致力于保证过程遵从性,以证实能以稳定的质量提供产品和服务,得到具备满足质量要求能力的信任。

3.2 计划符合性 保证项目的计划符合性首先是项目经理的责任,不是QA的根本职责。有些组织中QA不必认真关注计划符合性;但是,项目的规模、工作量、进度、缺陷等方面的计划符合性是高层管理者的关注重点,QA作为高层管理者的耳目有必要跟踪和报告计划符合性。在许多软件组织中跟踪和报告计划符合性是QA的常规工作内容。

3.3 工件正确性 工作产品(Work Product)简称工件,指项目运行中产生的各种文档、代码、程序等。在多数软件组织中,QA通常不直接跟踪和报告工件正确性。其根本原因是这样做将会导致QA在项目工作中陷得太深,不利于保持QA的独立性和客观性。其他原因还包括QA的能力、时间资源都可能不足以支持其去跟踪和报告工件正确性。

4.基于实际情况理解和处理QA的工作内容 怎样定义QA的具体职责范围是各组织自己的事,质量管理标准和过程改进模型都只会要求某个职责要有机构、角色履行,不会要求组织一定要设立某个机构、某种角色,或某种角色必须是怎样的职责。即使在同一个组织中,根据不同的应用目的也可以作不同的处理。 例如,在一个通过了SW-CMM三级的软件组织, QA计划的最小范围只包括支持、跟踪和报告项目组的活动,当项目工件中存在外包部件时要跟踪和报告外包部件开发方的相关活动,当项目与特定顾客的需求、部署和实施有关时要负责与该顾客就质量管理问题,包括产品和服务缺陷等问题进行沟通。组织内部使用的QA与需求管理计划、配置管理计划、工件评审计划、沟通计划、风险管理计划、培训计划、测试计划、开发计划等是分离的;但对大型的企业信息化建设项目,如果顾客需要,提交给顾客以展示本组织质量保证能力的QA计划需要包括包括QA、QC的多方面计划,例如评审计划和测试计划,比较接近GB/T 12504-1990中的QA活动范围。

以下主要总结一下QA的工作:

  • 建立软件质量保证活动的实体;
  • 制订软件质量保证计划;
  • 坚持各阶段的评审和审计,跟踪其结果,并作合适处理;
  • 监控软件产品的质量;
  • 采集软件质量保证活动的数据;
  • 度量软件质量保证活动……;
  • 而我们通常讨论到的同行评审就是其中的一个质量保证活动。

通过上面的内容,可以清楚的认识到:QA不是测试,测试也不是QA,他们之间有着比较明确的职责界准,一人不能兼两职,要不就出现自测自检的现象了,这也是质量/测试活动中最忌讳的事情。

 

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

京公海网安备110108001071号