1. QA、QC的定义 QA是英文Quality Assurance 的简称,中文含义是质量保证;QC是英文 Quality Control的简称,中文含义是质量控制。 按照ISO9000:2000,QA的定义是“质量管理的一部分,致力于提供质量要求会得到满足的信任”,QC的定义则是“质量管理的一部分,致力于满足质量要求”。 简言之,QC是对人事、对物,直接致力于满足质量要求;QA则是对人、对过程,致力于使管理者、顾客和其他相关方相信有能力满足质量要求。 在软件/信息化方面的一些标准中,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两类角色,这两类角色工作的主要侧重点比较如下: 角 色------QC----- --QA 工作对象 -----产 品-----过程 工作方式-----事后反应-----事先预防 功能类型-----生产功能-----人员功能 缺陷应对-----发现缺陷-----预防缺陷 工作风格-----被动务实-----主动、务虚 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的具体职责范围是各组织自己的事,质量管理标准和过程改进模型都只会要求某个职责要有机构、角色履行,不会要求组织一定要设立某个机构、某种角色,或某种角色必须是怎样的职责。即使在同一个组织中,根据不同的应用目的也可以作不同的处理。
|