软件质量保证是CMM(I)的可重复级的定义的数个关键过程域之一。根据CMM(I)中的描述,软件质量保证的目的是向管理者提供对软件项目正在使用的过程和正在开发的产品的适当可视性。
软件质量保证包括评审和审计软件产品和活动,以验证他们是否符合使用的规程和标准,还包括向软件项目和其他的有关的管理者提供评审和审计的结果。
CMM(I)列出了为了满足这个关键过程与的要求所需达到的4个目标:
目标1:软件质量保证活动是有计划的。
目标2:软件产品和活动与适用的标准、规程和需求的符合性要得到客观的验证。
目标3:相关的小组和个人要被告知软件质量保证的活动和结果。
目标4:高级管理者处理在软件项目内部不能解决的不符合问题。
任何组织必须首先认识到软件质量保证对项目的成功起着至关重要的作用,因此,必须建立这方面的基础设施,使它能就项目如何实施软件质量保证提供有效地指南。大多数组织发布全范围的政策以建立这个基础设施。这些政策通常包括以下内容:
● 对于全部软件项目,SQA职能到位。这项职能通常由兼职或者全职的个人或者小组负责。
● SQA小组或者个人有一个向高级管理者报告的渠道,它独立于项目经理、项目工程组及其他软件相关小组。
● 提供足够的资源保证SQA职能被有效贯彻。
● 向SQA人员提供培训。
● 向相关的软件工程组提供培训,以使他们了解SQA组的角色和职责,该培训应该包括SQA对组织的价值。
● 进行测量并将结果用于SQA活动的成本、效益、状态。
● 高级管理者和项目经理对SQA活动进行定期评审。
● 独立于SQA组的专家定期评审SQA活动和工作产品。
为理解这一基础设施,高级管理者有责任去建立一个机构,以允许SQA只能在一定程度上独立。在很多不成熟的组织中,缺乏对SQA人员的信任,认为他们扮演的是“过程警察”的角色并向管理层揭发个人的缺点。高级管理者必须灌输这样一个信念,即SQA人员存在的目的是验证与软件项目的符合性。如果一个组织打算在过程的定义、文档和人员培训上投入力量,那么拥有这样一个机制以贯彻所要遵循的过车工是有意义的。第二个信念是履行SQA职责的个人营房收到保护,不由他们所评审的软件项目的管理者对其工作成绩做出评价,对个人来说,有一点非常困难,就是对其顶头上司负责的过程进行客观的评审/审计。SQA审计所产生的负面影响永远不应当将从事SQA工作的人置于尴尬的境地。
SQA基础设施为高层管理者提供这样的信心:有关软件项目过程和产品的客观信息会得以报告。这通常拥有一个独立的SQA小组或者职能来实现,通过对过程和产品的独立评审,管理者将获得以验证过称和产品质量是否符合标准的客观机制。
对于SQA人员来说,获得获得高效率需要特殊的培训。培训应当包括对以下内容的透彻理解:
● 软件工程技能和实践
● 软件工程小组以及其他软件相关小组的角色和职责
● 软件项目的标准、规程和方法
● 软件项目的应用领域
● SQA的目标、规程和方法
● SQA小组在软件活动中的参与
● SQA方法和工具的有效使用
● 人际交流