软件测试


网站首页 | 软件测试论坛 | 软件测试培训 | 软件测试博客 | 软件测试杂志 | 软件测试沙龙 | 软件测试下载 | 软件测试顾问
业界新闻 | 软件测试人才 | 软件测试技术 | 软件测试工具 | 行业软件测试 | 软件测试管理 | 软件质量专栏 | 软件开发专栏
当前位置:首页>>软件质量专栏>>CMM>>正文
独立与客观—CMM中的软件质量保证实施准则
文章出处:blog 作者: 发布时间:2006-05-16

    软件企业必须通过CMM认证标准的锤炼,这是软件企业逐渐达成的共识。国内众多的软件企业正在围绕CMM进行研究、讨论和实施,可谓跃跃欲试、紧锣密鼓。截止到目前,已经有几家国内软件企业通过了CMM3认证。

  目前,我国大多数软件企业都是中小规模,其软件开发团队通常由几人至数十人组成。在这样的企业如何做好软件质量保证工作,笔者根据自己在联想软件的工作经验谈一些看法。

确立工作目标

  SQA(Software Quality Assurance,软件质量保证)是CMM的一个关键过程域,CMM的每个关键过程域几乎都涉及软件质量的验证,它在软件开发过程中起着非常重要的作用。在CMM中,软件质量保证的目标是为管理者提供当前软件项目进行过程与最终产品的可视性。它的主要工作包括:评审软件工程活动、审计软件产品、将结果通知项目组成员及相关经理。从CMM的框架结构来看,软件质量保证人员的主要工作目标是保证软件过程质量。软件最终产品的质量则是项目经理与质量工程师关心的问题,而不是由软件质量保证人员负责。

  软件质量保证的价值依赖于一些前提,其中最重要的是以下两个:
  首先,软件项目开发过程遵循明确定义好的既定规则,由此所获得的利益远大于为它所付出的代价。先有稳定、明确的用户需求再进行开发,虽然进度可能有所延迟,但与开发后发现不是用户所需要的产品相比,这个代价要小得多。
  其次,在没有独立评价系统的情况下,人们有时候会偏离既定的规则。软件开发人员由于各种各样的原因,总是自觉或不自觉地忽视过程,这时就需要软件质量保证人员来发现问题。

确保人员的独立性

  好的过程质量并不等于好的产品质量,但是糟糕的过程很难带来好的产品质量。如果一个项目按照既定的过程完成开发工作,没有偏离,说明软件质量保证人员尽到了他的职责。
  为了较好地开展软件质量保证工作,软件质量保证人员应该是独立的,与项目经理没有任何行政隶属关系,对他的考核与评价也不应由项目经理做出,同时他也不能承担本项目中除软件质量保证外的其他任何工作,以确保其独立性。
  建议在企业中将软件质量保证机构设立成专门的独立机构。如果企业规模较小,可以由测试人员兼任。在某些企业中,测试人员从属于项目组,此时,软件质量保证人员应该由其他项目组的测试人员担任。

标准的客观性

  软件质量保证的目的是给管理者提供可视性。如果存在主观因素,管理者看到的就不是软件开发过程的真实情况,这一点对软件质量保证工作至关重要。例如,联想公司的软件产品是通过“质量保证检查表”来实现的。针对每个软件工程活动与软件工作产品,都有一个软件质量保证检查表。软件质量保证人员可以根据检查表来判断当前的软件工程活动是否存在偏离以及软件工作产品是否符合要求。软件工程活动是否有所偏离,主要看软件工程活动的进入准则是否达到、输入是否正确、执行任务是否符合要求、结束时是否符合完成准则以及是否具有合乎要求的输出。在审计软件工作产品时,软件质量保证人员主要审计软件产品是否符合规程、标准等要求,一般不考虑技术问题。

  所有软件开发人员都应当接受软件质量保证方面的定向培训,了解软件质量保证的目的、工作方式以及其他相关内容。只有所有的人都认识到软件质量保证工作的意义,这项工作才能很好地开展起来。

几个误区

误区之一:软件质量保证人员对软件产品质量负责。
  软件质量保证人员一般只对软件过程质量负责,如果一个项目按照既定的过程完成了开发工作,没有发生偏离,软件质量保证人员就算尽到了职责,他的价值主要体现在过程质量上而不是最终的软件产品质量上。

误区之二:软件质量保证人员对软件工作产品的审计包括发现其中的技术问题。
  软件质量保证人员对软件工作产品的审计主要是针对过程,例如是否采用过程所规定的模板,所有必要的内容是否都具备等,而不是关注技术问题。

误区之三:软件质量保证人员要负责解决所发现的质量问题。
  软件质量保证的最大作用是发现问题,提供可视性,而不是解决问题。软件质量保证人员发现问题后,必须提交到相关责任人那里,由相关责任人给出解决方法并予以解决。软件质量保证人员只是跟踪问题直至得到解决。如果在相关责任人处无法得到解决,则将问题提交给项目经理。如果仍然无法解决,则提交给高层经理。这样一层层提交,直到问题有了结论。至于最终的结论是解决问题还是暂时搁置问题,由做出决策的人员对此负责。如果要求软件质量保证人员负责解决质量问题,他就可能陷入其中,失去了软件质量保证人员最为宝贵的独立性与客观性。

误区之四:软件质量保证人员是专门监督项目组成员的。
  软件质量保证人员不是监督项目组成员的,他只是从第三方、客观的角度将项目组的情况反映给管理者,让管理者了解项目与规定过程之间存在的偏差。如果软件质量保证人员将自己放到项目组的对立面,专门去找项目组的毛病,那么项目组成员就可能将真实问题隐藏起来,使问题无法得到解决。软件质量保证人员对项目组是有帮助作用的,他要帮助项目组提高开发和管理活动的规范化、标准化,发现问题时,要首先在项目组内解决。
  总之,要在企业内开展软件质量保证工作,最重要的是让所有员工都认识到,质量不是依赖于某个或某几个高手,而是依赖于整个过程。好的过程是好产品的必备条件,这一点要成为企业文化的一部分,深深扎根于每个员工的心中。


站内搜索
相关文章
◎软件能力成熟度模型-CMM系列3
◎软件能力成熟度模型-CMM系列2
◎软件能力成熟度模型-CMM系列1
◎CMM工具帮助简述
◎问题:今天你CMM了吗?
◎从PSP到TSP再到CMM
◎CMM2级之软件质量保证
◎在中国开展CMM评估的几点建议
◎CMM5级标准
◎软件项目管理(CMM)经验谈
◎CMM改善不了软件的质量?
◎软件市场的通行证——CMM
◎对CMM的认识
◎实施CMM时必须解决的认识问题
◎SW-CMM与中国-兼论质量认证
◎关于CMM评估的一些背景资料
◎CMM与质量管理
◎CMM评估中存在的若干问题
◎一项赴美CMM调查报告
◎CMM“六步曲”--CMM实施技术问题分析
◎CMM/CMMI的发展及应用
◎CMM类体系下的QA价值所在
◎ISO9001和CMM的比较
◎CMM体系设计三步曲(附图表)
◎软件重用评述
◎CMM可重复级在特殊软件项目中的应用
◎关于ISO, CMM的误区
◎中小软件企业的CMM之路
◎CMM与软件评价及测试
◎华为的CMM之路
◎CMM与CMMI的比较
◎软件评价和测试 KPA 提案
◎SQA到底是什么?
◎施乐公司对于过程改进中常见问题的解答
热门文章
◎SQA到底是什么?
◎对CMM的认识
◎华为的CMM之路
◎CMM体系设计三步曲(附图表)
◎软件能力成熟度模型-CMM系列1
◎ISO9001和CMM的比较
◎CMM/CMMI的发展及应用
◎软件项目管理(CMM)经验谈
◎CMM类体系下的QA价值所在
◎CMM与CMMI的比较
◎CMM&CMMI问与答
◎CMM5级标准
◎CMM与质量管理
◎CMM工具帮助简述
◎软件能力成熟度模型-CMM系列3
◎软件研发的6sigma案例解析
◎关于ISO, CMM的误区
◎CMM与软件评价及测试
◎从PSP到TSP再到CMM
◎软件评价和测试 KPA 提案
◎中小软件企业的CMM之路
◎软件能力成熟度模型-CMM系列2
◎CMM2级之软件质量保证
◎CMM“六步曲”--CMM实施技术问题分析
◎软件企业质量保证的基石―QA、QC的良性协作
◎问题:今天你CMM了吗?
◎实施CMM时必须解决的认识问题
◎关于CMM评估的一些背景资料
◎一项赴美CMM调查报告
◎CMM改善不了软件的质量?
◎软件市场的通行证——CMM
◎CMM可重复级在特殊软件项目中的应用
◎软件重用评述
◎施乐公司对于过程改进中常见问题的解答
◎在中国开展CMM评估的几点建议
◎CMM评估中存在的若干问题
◎SW-CMM与中国-兼论质量认证
◎书摘:什么是软件质量
◎软件能力成熟度模型:CMM
◎软件项目风险评估报告

Google提供的广告