QA与QC解析

上一篇 / 下一篇  2010-04-09 17:24:09 / 个人分类:知识补充

    面试的HR第一个问题就是谈谈你对QA与QC的理解,之前只在一本书上看到过一段非常简短的介绍。因为没有真正理解两者的含义,回答得稀里糊涂的,感觉很不好,于是下来在网络上搜查了相关的内容,摘录一下,与各位正在学习中的朋友一起来看看大家对这两个名词的理解,加深一下认识,不当之处,敬请指正。

    严格说来,QA和QC都属于质量管理的一环.QA的目标是预防缺陷和错误的发生,而QC则是找出缺陷和错误.这两种方式在运作上的方向是有不同,qa是属于防御性的方法,而QC采取主动出击的方法.
    还有一种理解是,软件质量由组织,流程,和技术三个方面来决定,其中QA是从流程方面来保证软件质量,而测试是从技术方面来保证软件质量,包括静态测试和动态测试.QC属于质量管理活动的一类,包含测试,跟踪和监督等活动(这是从具体质量活动类型来划分).

     QA(QualityAssurance)即“质量保证”,QC(QualityControl)是“质量控制”。QA监控公司质量保证体系的运行状况,对公司的质量保证体系的质量负责QC对每一个阶段或者关键点的产出物(工件)进行检测,对产出物的质量负责。
    如果将软件的生产比喻成一条产品加工生产线的话,那QA只负责生产线本身的质量保证,而不管生产线中单个产品的实际质量情况,QA通过保证生产线的质量来间接保证软件产品的质量。

   针对软件企业的软件开发过程而言,QA可以进一步明确为SQA,即:软件质量保证,只负责软件开发流程的质量(关注流程),企业内相对应的角色为软件质量保证人员,有的企业就直接称之为SQA。QC可以进一步明确为SQC,即:软件质量控制,只负责软件开发过程中各个阶段产出的工件的质量(关注结果),产出的工件可能是相关的文档或者代码等,企业内相对应的角色为软件测试人员。
    SQA和SQC虽然主要的工作都是为了保证软件的质量,但是着眼点不尽相同。SQA通过控制过程来保证软件产品的质量,而SQC是通过控制每个阶段的“结果”来保证软件产品的质量。

   如果企业中只有SQA而没有SQC,企业得到了一个很好的流程(生产线),但是如果我们的生产源头没有得到有效控制,进入生产线的材料是残次品,那不管我们的流程控制得多好,最终的产品的质量都不会高。

   因为在软件产品的开发过程当中,几乎所有的原材料都是自己生产的,如需求规格说明书、概要设计、详细设计等,单靠过程的控制无法得到无缺陷的“原材料”。由于软件开发的固有特性,我们在每一步的生产加工过程中,都会引入新的缺陷,不管流程多么完美。所以,在每一阶段完成后,都需要对上一阶段的工作产品进行检验,评估这个阶段的工作产品是否符合预定的质量要求,只有这样才能保证最终软件产品的质量。

   如果企业当中只有SQC而没有SQA的角色,在每一个阶段SQC都找出了相应的缺陷,如果单从质量保证的观点来看,在理想情况下,上述的软件企业的质量的确是没有问题,因为在每一个阶段,通过大量专业SQC(测试)的努力工作,找出了软件产品中的全部缺陷,这样的产品质量当然没有问题了。

   但是我们从另外一个角度看:首先软件中的缺陷在理论上是不可能被全部找出来的,这主要由于软件测试的不可遍布性。其次,维护一个上述的软件测试团队,成本是相当高的,目前国际上还没有哪个商业性的公司能够维护得起。另外,如果在软件生产的过程中,只单一强调对结果的检验环节,而忽视过程控制,会造成持续的返工,极大地推迟交付产品的日期,最终造成软件开发的失败。提高软件的质量,不是持续不断地进行测试,而是要改变软件开发的方式,改变我们的流程,在过程中保证软件产品的质量。
   
   所以SQA和SQC缺一不可,两种角色必须相互配合,在“过程”和“结果”都正确的基础上,才能有效改善软件产品的质量。

   


TAG:

引用 删除 uiui   /   2010-04-16 22:44:04
有些概念如果功底不深,很难说出个123
jm_gold的个人空间 引用 删除 fanjianmin   /   2010-04-11 16:38:39
 

评分:0

我来说两句

铁皮小巫

铁皮小巫

我想当个好学生

日历

« 2024-03-25  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 17302
  • 日志数: 15
  • 建立时间: 2009-11-01
  • 更新时间: 2010-04-30

RSS订阅

Open Toolbar