CMM中的软件质量保证实施准则

转载 2006年06月07日 12:39:00

确立工作目标

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

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

确保人员的独立性

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

标准的客观性

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

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

几个误区

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

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

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

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

为什么要学习软件质量保证与测试这门课?

我接触软件测试这个概念已经很久了,但还是首次这么近距离系统地学习它。 在刚开始学习本专业的时候,我还意识不到测试的重要性,总是在程序基本完成的时候才发现漏洞百出。有时会出现很多bug,debug的时...

山东大学软件质量保证与测试技术复习纲要

软件质量保证与测试技术复习提纲 1.3  1.5   2.1 2.3 2.5 2.6   3.3(3.3.1    扩展) 3.4 3.7.3  FSM   状态图 状态表 ...
  • dkbnull
  • dkbnull
  • 2016年06月29日 09:47
  • 1986

软件质量保证划重点&期末复习总结

软件质量保证复习总结大纲及问题 Module1 《软件工程实践》 1、软件工程实践通过解决问题的根源来指导软件开发。 2、软件工程实践之间相辅相成。 3、过程指导一个团队在什么时候做什么以及如何做。 ...

软件质量保证和测试不常见的问题

如果一个组织的增长速度如此之快以至于固定的质量保证程序是不可能的  这是软件行业常见的问题,特别是在新技术领域。在这种情况下,通常没有简单的解决方案。一种方法是: · 雇用好人 · 管理...

什么是CSQA(注册软件质量保证师)国际认证?

CSQA(注册软件质量保证师)作为世界最大的软件质量组织QAI的软件职业资格系列认证之一,被世界范围的软件质量专业人士看作“黄金认证”。著名的印度Tata咨询公司一家就拥有2300多名CSQA,是世界...
  • fen0707
  • fen0707
  • 2013年05月17日 12:47
  • 962

软件质量保证相关概念(1)

软件质量保证中基本的几个概念。1. quality 2.Prevention 和 Detection 3.Verification((验证) vs. Validation (确认) 4.Cost of...

软件质量保证管理办法

本文档的目的是为特定产品、项目或合同的质保工作提供指导,帮助项目组其他成员了解质量保证要素,明确质量保证活动,确定质量保证范围。本文档将规定项目质量管理员的职责和权利,资源要求,活动安排,进度,要求质...

软件质量保证与测试

所谓教材就是把一些简单易懂的词语,扩写成一堆谁也看不懂的句子。
  • wenbx16
  • wenbx16
  • 2017年06月18日 18:29
  • 254

软件质量保证

软件质量保证(SQA)是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。软件质量保证的目的是使软件过程对于管理人员来说是可见的。它通过对软件产品和...
  • fen0707
  • fen0707
  • 2013年05月17日 12:43
  • 922
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CMM中的软件质量保证实施准则
举报原因:
原因补充:

(最多只允许输入30个字)