和朋友谈到软件质量工作时,经常会提及到软件质量控制、质量保证和质量管理。我想对于这三者,很多人也仅仅是知道而已,有多少人认真的思考过这三者的区别?

  其实质量控制、质量保证、质量管理代表软件质量工作的不同层次的内容。

  软件质量控制其实是基本方法,通过一系列的技术来科学地测量过程的状态。如缺陷率、测试覆盖率等都是属于软件质量控制范畴,它们反映了测试过程状态的好坏、是否满足了要求。测试过程好比一辆汽车,而缺陷率、测试覆盖率等像汽车上的仪表,人们可以通过仪表上的数据来看出汽车当前运行状态是否正常、运行的效能如何等?总之,质量控制是一个确保产品满足需求的过程

  软件质量保证则是过程的参考、指南的集合。如ISO9000、CMM/CMMI。通俗的说质量保证想汽车的检验合格证一样。它提供的是一种信任和为这种信任而进行的一系列有计划有组织的活动。它着重内部的检查,确保已获取认可的标准和步骤都已经遵循,保证问题能及时发现和处理。质量保证工作的对象是产品和开发过程中的行为。好比制造一辆汽车,需要根据一系列标准化的流程和步骤进行,并同时在过程中实施监控,检查是否有偏差,并向管理者提供产品及过程的可视性

  软件质量管理则是实际操作的思想,它教你如何建立质量文化和管理思想。质量管理控制和协调组织的质量活动,包括质量控制、质量保证和质量改进。简单的说,这个像是汽车生产商的管理层,他负责汽车制造过程中各项工作的协调,他将所有影响质量的因素(包括技术、管理、人力等),都采取有效的方法进行控制,尽大可能减少、预防不合格项的产生,终达到生产出合格产品的目的