SQA(满足机构方针的要求软件)

软件质量保证(SQA-Software Quality Assurance)是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。软件质量保证的目的是使软件过程对于管理人员来说是可见的。它通过对软件产品和活动进行评审和审计来验证软件是合乎标准的。软件质量保证组在项目开始时就一起参与建立计划、标准和过程。这些将使软件项目满足机构方针的要求。

基本目标

目标1:软件质量保证工作是有计划进行的。/n目标2:客观地验证软件项目产品和工作是否遵循恰当的标准、步骤和需求。/n目标3:将软件质量保证工作及结果通知给相关组别和个人。/n目标4:高级管理层接触到在项目内部不能解决的不符合类问题。/n目标5:软件质量需要全面的测试工作来保证。

由来

我们知道,国外很多的大公司,QA的职责就是测试(主要是系统测试),比如IBM、CA、PeopleSoft等。其实在最初,几乎所有的公司都是这样的。后来,由于缺乏有效的项目计划和项目管理,留给系统测试的时间很少(注:我以前做的一个项目,项目经理就明确告诉我系统测试就1天,没得商量)。另外,需求变化太快,没有完整的需求文档,测试人员就只能根据自己的想象来测试。这样一来,测试就很难保障产品的质量,事先预防的QA职能就应运而生。

事先预防其实是借鉴了TQM的思想,而且也符合软件工程“缺陷越早发现越早修改越经济”的原则。这些思想的渊源还可以追溯到中国古代的典故中,比如曲突徙薪、扁鹊论医术等。特别是扁鹊论医术这个典故,我偶然在国外的一篇文章中看到了(后来在林锐的文章中也看到了),常感叹我们国人连祖先的思想文化遗产都丢的差不多了。

现状

实施CMM的企业越来越多了。CMM模型就要求建立QA角色。这里的QA类似于过程警察,主要职责是,检查开发和管理活动是否与已定的过程策略、标准和流程一致,检查工作产品是否遵循模板规定的内容和格式。在这些企业中,一般还要求QA独立于项目组,以保障评价的客观性。从国内来看,多数的QA没有技术背景,检查出的偏差多为鸡毛蒜皮,再加上自己没有令人信服的背景,领导也不支持,当然做起来就很困难了。

自2001年下半年以来,国内软件企业掀起了一股CMM/CMMI(以下简称CMMI)的热潮,一些稍微有点规模的企业,纷纷通过了CMMI的评估,据说“明显地改善了软件质量,控制了项目成本”。加上政府的政策推动和媒体的炒作,软件企业不管时机是否成熟,不管自身实力是否具备,纷纷把实施CMMI作为企业的一项战略决策,投入巨资,来推行CMMI。一年内竟然有50余家软件企业先后通过了CMMI各级别的评估,似乎有一夜之间“千树万树梨花开”之势,笔者对此甚感忧虑,认为目前中国企业实施CMMI,面临着五个关键问题。

缺乏信任和支持只是一个方面,QA工作本身就很具挑战性。它要求QA具有软件工程的知识、软件开发的知识、行业背景的知识、数理统计的知识、项目管理的知识、质量管理的知识等等。

我们常常遇到这样的问题,改进到一定程度就很难突破,感觉心有余而力不足了,就开始郁闷了。后来通过学习、培训、交流,思想和技能得到升华,又发现了木桶中最短的那块,然后又开始改进,然后又遇到了玻璃天花板,然后……就这样处于郁闷的循环中。

假使我们掌握了所有的知识,能突破所有的玻璃天花板,那是不是QA就可以一帆风顺了。答案是否定的。QA角色定义本身就有很大的局限性。QA充当的是过程警察的角色,无论是否有意义,都专横地强制过程的执行,容易在项目组中造成敌对的关系,受到排挤,而且这种警察的姿态也破坏了团队精神。如此一来,QA工作还需要的是人际关系技能,就如我以前写的《质量平衡》和《QA应该独立于项目组吗?》一样,艺术化地处理这种关系。

未来

从某种程度上说,独立的QA审查机制是瀑布模型的产物。随着现代软件开发技术的演变,螺旋模型和迭代模型的兴起,QA机制正在悄然发生变化。这种变化就是从独立专职的QA向贯穿过程的兼职QA演变。在CMMI模型中,这种兼职的QA也是被允许的。为什么会发生这种改变呢?

无论是XP、RUP还是其它先进的方法论,都是先产生架构,然后再增量开发,直到完成。这种模式中,需求和设计缺陷在各个迭代周期被所尽早发现和修复,质量也内建于架构和过程中,项目的成本和进度也得到保障。到那时,是不是独立的QA就不复存在了呢?有些成熟度较低的企业还是需要。

ISO9000 质量标准

ISO9000标准被很多国家采用,包括欧盟的所有成员,加拿大、墨西哥、美国、澳大利亚、新西兰和太平洋区域。为了注册成为ISO9000中包含的质量保证系统模型中的一??者仔细检查,查看其标准的符合性以及操作的有效性。成功注册之后,这一公司将收到由审计者所代表的注册实体颁发的证书。此后,每半年进行一次检查性审计。

ISO9001是应用于软件工程质量保证标准。这一标准中包含了高效的质量保证系统必须体现的20条需求。因为ISO9001标准,适用于所有的工程行业,因此,为帮助解释该标准在软件过程中的使用而专门开发了一个ISO指南的子集ISO9000—3。

ISO9001描述的需求涉及到管理责任,质量系统,合约评审,设计控制,文档和数据控制,产品标识和跟踪,过程和控制,审查和测试,纠正和预防性动作,质量控制记录,内部质量审计,培训,服务以及统计技术的主题。

该文章由作者:【第二个五年计划】发布,本站仅提供存储、如有版权、错误、违法等相关信息请联系,本站会在1个工作日内进行整改,谢谢!

发表回复

登录后才能评论