确立工作目标
SQA(Software Quality Assurance,软件质量保证)是CMM的一个关键过程域,CMM的每个关键过程域几乎都涉及软件质量的验证,它在软件开发过程中起着非常重要的作用。在CMM中,软件质量保证的目标是为管理者提供当前软件项目进行过程与最终产品的可视性。它的主要工作包括:评审软件工程活动、审计软件产品、将结果通知项目组成员及相关经理。从CMM的框架结构来看,软件质量保证人员的主要工作目标是保证软件过程质量。软件最终产品的质量则是项目经理与质量工程师关心的问题,而不是由软件质量保证人员负责。
软件质量保证的价值依赖于一些前提,其中最重要的是以下两个:
首先,软件项目开发过程遵循明确定义好的既定规则,由此所获得的利益远大于为它所付出的代价。先有稳定、明确的用户需求再进行开发,虽然进度可能有所延迟,但与开发后发现不是用户所需要的产品相比,这个代价要小得多。
其次,在没有独立评价系统的情况下,人们有时候会偏离既定的规则。软件开发人员由于各种各样的原因,总是自觉或不自觉地忽视过程,这时就需要软件质量保证人员来发现问题。
确保人员的独立性
好的过程质量并不等于好的产品质量,但是糟糕的过程很难带来好的产品质量。如果一个项目按照既定的过程完成开发工作,没有偏离,说明软件质量保证人员尽到了他的职责。
为了较好地开展软件质量保证工作,软件质量保证人员应该是独立的,与项目经理没有任何行政隶属关系,对他的考核与评价也不应由项目经理做出,同时他也不能承担本项目中除软件质量保证外的其他任何工作,以确保其独立性。
建议在企业中将软件质量保证机构设立成专门的独立机构。如果企业规模较小,可以由测试人员兼任。在某些企业中,测试人员从属于项目组,此时,软件质量保证人员应该由其他项目组的测试人员担任。
标准的客观性
软件质量保证的目的是给管理者提供可视性。如果存在主观因素,管理者看到的就不是软件开发过程的真实情况,这一点对软件质量保证工作至关重要。例如,联想公司的软件产品是通过“质量保证检查表”来实现的。针对每个软件工程活动与软件工作产品,都有一个软件质量保证检查表。软件质量保证人员可以根据检查表来判断当前的软件工程活动是否存在偏离以及软件工作产品是否符合要求。软件工程活动是否有所偏离,主要看软件工程活动的进入准则是否达到、输入是否正确、执行任务是否符合要求、结束时是否符合完成准则以及是否具有合乎要求的输出。在审计软件工作产品时,软件质量保证人员主要审计软件产品是否符合规程、标准等要求,一般不考虑技术问题。
所有软件开发人员都应当接受软件质量保证方面的定向培训,了解软件质量保证的目的、工作方式以及其他相关内容。只有所有的人都认识到软件质量保证工作的意义,这项工作才能很好地开展起来。
几个误区
误区之一:软件质量保证人员对软件产品质量负责。
软件质量保证人员一般只对软件过程质量负责,如果一个项目按照既定的过程完成了开发工作,没有发生偏离,软件质量保证人员就算尽到了职责,他的价值主要体现在过程质量上而不是最终的软件产品质量上。
误区之二:软件质量保证人员对软件工作产品的审计包括发现其中的技术问题。
软件质量保证人员对软件工作产品的审计主要是针对过程,例如是否采用过程所规定的模板,所有必要的内容是否都具备等,而不是关注技术问题。
误区之三:软件质量保证人员要负责解决所发现的质量问题。
软件质量保证的最大作用是发现问题,提供可视性,而不是解决问题。软件质量保证人员发现问题后,必须提交到相关责任人那里,由相关责任人给出解决方法并予以解决。软件质量保证人员只是跟踪问题直至得到解决。如果在相关责任人处无法得到解决,则将问题提交给项目经理。如果仍然无法解决,则提交给高层经理。这样一层层提交,直到问题有了结论。至于最终的结论是解决问题还是暂时搁置问题,由做出决策的人员对此负责。如果要求软件质量保证人员负责解决质量问题,他就可能陷入其中,失去了软件质量保证人员最为宝贵的独立性与客观性。
误区之四:软件质量保证人员是专门监督项目组成员的。
软件质量保证人员不是监督项目组成员的,他只是从第三方、客观的角度将项目组的情况反映给管理者,让管理者了解项目与规定过程之间存在的偏差。如果软件质量保证人员将自己放到项目组的对立面,专门去找项目组的毛病,那么项目组成员就可能将真实问题隐藏起来,使问题无法得到解决。软件质量保证人员对项目组是有帮助作用的,他要帮助项目组提高开发和管理活动的规范化、标准化,发现问题时,要首先在项目组内解决。
总之,要在企业内开展软件质量保证工作,最重要的是让所有员工都认识到,质量不是依赖于某个或某几个高手,而是依赖于整个过程。好的过程是好产品的必备条件,这一点要成为企业文化的一部分,深深扎根于每个员工的心中。
分享到:
相关推荐
《CMM软件质量保证过程文件》与《CMM软件质量保证程序文件》是软件开发过程中重要的指导性文档,主要用于确保软件质量的过程管理和控制。这两份文档遵循能力成熟度模型(Capability Maturity Model, CMM)的理念,...
质量保证的实施涉及质量度量方法,如ISO建议的三层评价标准:高层的质量需求评价准则(SQRC)、中层的质量设计评价准则(SQDC)和底层的质量度量评价准则(SQMC)。 9.2.3 技术评审 技术评审,也称为软件评审,是一种过滤...
在软件行业中,CMM(能力成熟度模型)和CMMI(能力成熟度模型集成)等框架的出现,进一步推动了质量保证的系统化和标准化。这些模型提供了软件开发过程的成熟度等级,帮助组织提升其开发流程,确保软件质量。 此外...
CMM文档列表是CMM实施过程中的关键组成部分,它包括了一系列用于规范不同环节的政策、程序和模板,以确保整个软件开发过程的质量可控。 1. **政策(Policies)** - CR-QB质量手册:这是组织质量管理的基本准则,定义...
ISO9000-3 是 ISO 质量管理和质量保证标准在软件开发、供给和维护中的使用指南,并不是质量体系注册/认证时的评估准则。它主要考虑软件行业的特殊性,参照 ISO9001 质量体系设计、开发、生产、安装和服务的质量保证...
项目质量管理策略、质量保证计划、技术规范文件和项目质量保证实施等都是本项目质量保证的重要组成部分。本文的主要贡献在于提供了一种有效的项目质量保证方法,旨在提高软件开发能力,提高项目的软件质量。
例如,可以学习如何定义和执行有效的需求管理,如何实施质量保证措施,以及如何进行有效的项目管理和风险管理。每个CMMI级别都代表一个更高的成熟度,随着级别的提升,组织的软件开发流程将更加稳定、可预测和高效。...
总的来说,软件质量标准与测试依据、ISO9000系列和CMM共同构成了软件开发中质量保证的基石。它们不仅指导了软件开发的各个阶段,还推动了软件工程的持续改进,确保了软件产品的高质量和可靠性。在实际应用中,软件...
【软件过程标准】是指导软件开发过程的一系列规范和准则,旨在提高软件质量和效率,降低风险,确保项目按期交付。在本文中,我们将详细探讨四个重要的标准:IEEE 1517、CMM、PSP(个人软件过程)和TSP(团队软件过程...
15. **CMM软件质量保证过程文件**:定义了质量保证活动的流程、标准和准则,用于监控和改进项目质量。 16. **CMM软件质量保证程序文件**:提供了执行质量保证活动的具体步骤和操作指南。 这些文档构成了软件开发全...
SPM-CMM 扩展了 Extension 中 3 个子包:Process Structure、Process Lifecycle 和 Process Component,能够指导软件工程师如何保证自己的工作质量,估计和规划自己的工作,度量和追踪个人的表现,管理自己的时间等...
ISO 9000 是一套国际标准,旨在提供一种质量管理和质量保证框架,以确保组织能够持续地提供优质产品和服务。这套标准自1987年发布以来,已成为全球范围内广泛应用的质量管理准则。它基于“所有工作都是通过过程来...
软件测试是软件开发过程中的关键环节,它确保了产品的质量和可靠性。本节将深入探讨软件测试的依据和规范,包括ISO 9000系列标准、软件质量标准以及CMM思想。 ISO 9000是一套国际标准化组织(ISO)制定的质量管理与...
* 软件质量保证 * 软件复杂性的概念及度量方法(McCabe 度量法) * 软件评审(设计质量评审、程序质量评审) * 软件容错技术 软件过程改进基础知识: * 软件能力成熟度模型 CMM * 统一过程(UP)与极限编程(XP)...
根据提供的文件信息,我们可以深入探讨华为IPD-CMM项目管理的核心知识点,主要聚焦于软件工程项目管理的基本概念、方法以及IPD-CMM项目管理的具体实践。 ### 一、项目管理概述 #### 1. 项目的基本概念 - **项目...
软件支持过程涉及文档编制、配置管理、质量保证、测试等辅助活动,确保软件开发的顺利进行;软件组织过程则关注于管理和改进,确保基本过程和支持过程的有效组织和实施。 软件支持过程包括文档编制,需要定义标准、...
【工程项目管理软件】是软件开发领域的一个重要主题,它涵盖了软件项目的多个关键方面,包括规模估算、工作量估算、进度计划、人员组织、质量保证、软件配置管理和能力成熟度模型。以下是对这些知识点的详细解释: ...
软件过程原则指导整个软件开发过程,强调如迭代开发、持续改进和质量保证等。软件过程建模则通过模型化的方式,清晰描绘软件开发的流程和交互,如UML(统一建模语言)便是常见的过程建模工具。 软件过程的成熟度模型...
《第13章 软件工程标准与软件文档》主要涵盖了软件工程标准化的重要性、不同级别的软件工程标准、ISO9000质量标准、ISO/IEC 12207软件生存周期过程标准、软件文档的重要性和管理,以及能力成熟度模型CMM的相关内容。...