在CMMI 1.3和GJB5000A中,有个过程域叫过程和产品质量保证。通过实施它的四个专用实践,由专人监督评价软件开发过程和产品,确保满足既定的标准和规范要求,这就是刚实施GB5000A的项目团队对软件质量保证的初始印象。
那么实施过程和产品质量保证过程,由专人来发现软件开发过程和产品中不符合标准和规范的问题,这样的软件质量保证,真的能保证软件产品质量吗?
如果遵循的标准和规范是适合软件项目的,标准和规范的条款是具体的、清晰的、对软件质量有帮助的,如果负责评价过程和产品的专人(QA)有足够的能力,熟悉标准和规范,能够及时指出软件开发过程和产品与标准和规范的偏差,那么这样的软件质量保证,也应该能对软件产品质量有帮助。
如果跳出CMMI的体系,回归到软件工程,软件质量保证的概念和内涵会有很大的不同。
在软件工程理论中,软件质量保证是这样定义的:
软件质量保证是指在软件交付客户之前,组织和专家通过各种手段来确保和证明软件的质量水平的过程。
从这个定义可以看出,它与CMMI/GJB5000A中的软件质量保证有两个不同:
一是进行软件质量保证的主体不同。软件工程定义的软件质量保证主体是组织和专家,CMMI体系中这一主体是QA。
二是进行软件质量保证的目标不同。软件工程定义的软件质量保证的目标就是确保和证明软件质量水平,CMMI体系中则是确保符合标准和规范。
从软件质量保证的定义来看,软件工程定义的软件质量保证更能保证软件产品质量。
而且软件工程定义的软件质量保证人员的能力要求也更高,比如:
这些人员都学习过质量检测和质量控制;许多人员都通过了六西格玛黑带认证;软件质量保证组不只负责测试,并且也不可能不做任何测试。
这些能力并不在CMMI体系的软件质量保证人员的能力范围之内。而质量检测、质量控制、测试,这些能力是能够使软件产品质量得到保证的。
另外,从软件质量保证组的职能来看,软件工程定义的软件质量保证组有很多CMMI体系下不具备的职能,但是对软件产品质量保证却很有帮助。比如:
比较起来,软件工程定义的软件质量保证,比CMMI体系的软件质量保证更能保证软件产品的质量。对于实施CMMI/GJB5000A的组织来说,应该从软件工程的软件质量保证最佳实践进行学习和借鉴,只要对软件产品质量有帮助的,就把它吸收进来。至于软件质量保证组的主体、职能、人员能力这些差异,都可以在CMMI体系中重新分解,只要补上CMMI体系的短板,就能够更好地保证软件产品质量。
所以只要坚定软件质量保证的终极目标是保证软件产品质量,并为之不断调整和改进,那么软件质量保证就真的能够保证软件产品质量。
参考书目:《软件工程最佳实践》
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!