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

  但是我们从另外一个角度看一下这个问题:首先软件中的缺陷在理论上是不可能被全部找出来的,由于软件测试的不可遍历性。其次,如果我们维护一个上述的软件测试团队,成本是相当高的,目前国际上还没有那个商业性的公司能够维护的起(微软的产品还会有大量的缺陷),也是说在实际操作过程中几乎没有公司会同意上述的做法。另外,如果我们在软件生产的过程中,只单一的强调对结果的检验环节,而忽视过程控制,会造成持续的返工、极大的推迟交付产品的日期,终造成软件开发的失败。这样的做法像我们想减肥,不是去节食、多做运动,而是去不断的称体重想达到减肥的目的一样可笑。所以,我们想提高软件的质量,不是持续不断的进行测试,而是要改变软件开发的方式,改变我们的流程,在过程中保证软件产品的质量。

  通过以上分析发现,如果想有效的保证软件产品的质量,SQA和SQC缺一不可,两种角色必须相互配合,在“过程”和“结果”都正确的基础上,才能有效改善软件产品的质量。


  质量的持续改进

 

  软件质量的提高,过程的改进是一个循序渐进的过程,不可能一蹴而。针对软件企业而言,如何调配有限的资源,针对质量保证的短板,来有针对性的做出质量改进的规划才是企业迫切需要解决的问题。

  首先,企业必须对软件质量的保证提出切实的目标,质量保证的目标不是为了过级,拿到认证,这些只是附带的结果。企业质量保证的目标应该是提高产品的竞争力,重塑企业的文化。

  其次,在质量保证的技术层面,SQA人员和SQC人员的互动,会为企业选择质量保证的短板提出建设性的意见。

  SQC(测试)人员在工作过程中会产生出大量的过程数据,SQA人员通过对这些数据的统计分析,发现企业的问题所在,进而反馈到流程的改进活动中,再通过SQC人员搜集的大量数据来验证流程改进的有效性,终达到质量的持续改进。

  质量是企业的根本,不管我们现在的产品销售情况如何,企业之间的竞争早晚会过渡到质量的竞争上来,所以只有我们自己练好内功,才有希望打造出我们自己的百年老店。