软件质量保证(SQA)是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用
软件质量保证的目的是使软件过程对于管理人员来说是可见的
它通过对软件产品和活动进行评审和审计来验证软件是合乎标准的
软件质量保证组在项目开始时就一起参与建立计划、标准和过程
这些将使软件项目满足机构方针的要求
一、基本目标 目标 1: 软件质量保证工作是有计划进行的
目标 2: 客观地验证软件项目产品和工作是否遵循恰当的标准、步骤和需求
目标 3: 将软件质量保证工作及结果通知给相关组别和个人
目标 4: 高级管理层接触到在项目内部不能解决的不符合类问题
二、QA 的由来 我们知道,国外很多的大公司,QA 的职责就是测试(主要是系统测试),比如 IBM、CA、PeopleSoft等
其实在最初,几乎所有的公司都是这样的
后来,由于缺乏有效的项目计划和项目管理,留给系统测试的时间很少(注:我以前做的一个项目,项目经理就明确告诉我系统测试就 1 天,没得商量)
另外,需求变化太快,没有完整的需求文档,测试人员就只能根据自己的想象来测试
这样一来,测试就很难保障产品的质量,事先预防的QA 职能就应运而生
事先预防其实是借鉴了 TQM 的思想,而且也符合软件工程“缺陷越早发现越早修改越经济”的原则
这些思想的渊源还可以追溯到中国古代的典故中,比如曲突徙薪、扁鹊论医术等
特别是扁鹊论医术这个典故,我偶然在国外的一篇文章中看到了(后来在林锐的文章中也看到了),常感叹我们国人连祖先的思想文化遗产都丢的差不多了
三、QA 的现在 目前,实施 CMM 的企业越来越多了
CMM 模型就要求建立QA 角色
这里的QA 类似于过程警察,主要职责是,检查开发和管理活动是否与已定的过程策略、标准和流程一致,检查工作产品是否遵循模板规定的内容和格式
在这些企业中,