软件质量保证真的能保证软件产品质量吗?

在CMMI 1.3和GJB5000A中,有个过程域叫过程和产品质量保证。通过实施它的四个专用实践,由专人监督评价软件开发过程和产品,确保满足既定的标准和规范要求,这就是刚实施GB5000A的项目团队对软件质量保证的初始印象。

那么实施过程和产品质量保证过程,由专人来发现软件开发过程和产品中不符合标准和规范的问题,这样的软件质量保证,真的能保证软件产品质量吗?

如果遵循的标准和规范是适合软件项目的,标准和规范的条款是具体的、清晰的、对软件质量有帮助的,如果负责评价过程和产品的专人(QA)有足够的能力,熟悉标准和规范,能够及时指出软件开发过程和产品与标准和规范的偏差,那么这样的软件质量保证,也应该能对软件产品质量有帮助。

如果跳出CMMI的体系,回归到软件工程,软件质量保证的概念和内涵会有很大的不同。

在软件工程理论中,软件质量保证是这样定义的:

软件质量保证是指在软件交付客户之前,组织和专家通过各种手段来确保和证明软件的质量水平的过程。

从这个定义可以看出,它与CMMI/GJB5000A中的软件质量保证有两个不同:

一是进行软件质量保证的主体不同。软件工程定义的软件质量保证主体是组织和专家,CMMI体系中这一主体是QA。

二是进行软件质量保证的目标不同。软件工程定义的软件质量保证的目标就是确保和证明软件质量水平,CMMI体系中则是确保符合标准和规范。

从软件质量保证的定义来看,软件工程定义的软件质量保证更能保证软件产品质量。

而且软件工程定义的软件质量保证人员的能力要求也更高,比如:

这些人员都学习过质量检测和质量控制;许多人员都通过了六西格玛黑带认证;软件质量保证组不只负责测试,并且也不可能不做任何测试。

这些能力并不在CMMI体系的软件质量保证人员的能力范围之内。而质量检测、质量控制、测试,这些能力是能够使软件产品质量得到保证的。

另外,从软件质量保证组的职能来看,软件工程定义的软件质量保证组有很多CMMI体系下不具备的职能,但是对软件产品质量保证却很有帮助。比如:

  • 在软件开发中使用六西格玛方法。
  • 在软件开发中使用质量功能展开方法。
  • 评估质量水平方面的潜在缺陷以及缺陷去除效率。
  • 比较起来,软件工程定义的软件质量保证,比CMMI体系的软件质量保证更能保证软件产品的质量。对于实施CMMI/GJB5000A的组织来说,应该从软件工程的软件质量保证最佳实践进行学习和借鉴,只要对软件产品质量有帮助的,就把它吸收进来。至于软件质量保证组的主体、职能、人员能力这些差异,都可以在CMMI体系中重新分解,只要补上CMMI体系的短板,就能够更好地保证软件产品质量。

    所以只要坚定软件质量保证的终极目标是保证软件产品质量,并为之不断调整和改进,那么软件质量保证就真的能够保证软件产品质量。

    参考书目:《软件工程最佳实践》

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2019年1月2日
    下一篇 2019年1月3日

    相关推荐