文档介绍:软件质量保证软件质量保证( SQA )是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。软件质量保证的目的是使软件过程对于管理人员来说是可见的。它通过对软件产品和活动进行评审和审计来验证软件是合乎标准的。软件质量保证组在项目开始时就一起参与建立计划、标准和过程。这些将使软件项目满足机构方针的要求。软件质量保证- 一、基本目标目标 1: 软件质量保证工作是有计划进行的。目标 2: 客观地验证软件项目产品和工作是否遵循恰当的标准、步骤和需求。目标 3: 将软件质量保证工作及结果通知给相关组别和个人。目标 4: 高级管理层接触到在项目内部不能解决的不符合类问题。软件质量保证- 二、 QA 的由来我们知道,国外很多的大公司, QA 的职责就是测试(主要是系统测试) ,比如 IBM 、 CA、 Pe opleSoft 等。其实在最初,几乎所有的公司都是这样的。后来,由于缺乏有效的项目计划和项目管理, 留给系统测试的时间很少(注: 我以前做的一个项目, 项目经理就明确告诉我系统测试就 1天, 没得商量)。另外, 需求变化太快, 没有完整的需求文档, 测试人员就只能根据自己的想象来测试。这样一来,测试就很难保障产品的质量,事先预防的 QA 职能就应运而生。事先预防其实是借鉴了 TQM 的思想,而且也符合软件工程“缺陷越早发现越早修改越经济”的原则。这些思想的渊源还可以追溯到中国古代的典故中,比如曲突徙薪、扁鹊论医术等。特别是扁鹊论医术这个典故, 我偶然在国外的一篇文章中看到了( 后来在林锐的文章中也看到了) ,常感叹我们国人连祖先的思想文化遗产都丢的差不多了。软件质量保证- 三、 QA 的现在目前, 实施 CMM 的企业越来越多了。 CMM 模型就要求建立 QA 角色。这里的 QA 类似于过程警察, 主要职责是, 检查开发和管理活动是否与已定的过程策略、标准和流程一致, 检查工作产品是否遵循模板规定的内容和格式。在这些企业中,一般还要求 QA 独立于项目组,以保障评价的客观性。从国内来看,多数的 QA 没有技术背景,检查出的偏差多为鸡毛蒜皮,再加上自己没有令人信服的背景,领导也不支持,当然做起来就很困难了。缺乏信任和支持只是一个方面, QA 工作本身就很具挑战性。它要求 QA 具有软件工程的知识、软件开发的知识、行业背景的知识、数理统计的知识、项目管理的知识、质量管理的知识等等。我们常常遇到这样的问题, 改进到一定程度就很难突破, 感觉心有余而力不足了, 就开始郁闷了。后来通过学习、培训、交流,思想和技能得到升华,又发现了木桶中最短的那块,然后又开始改进,然后又遇到了玻璃天花板,然后……就这样处于郁闷的循环中。假使我们掌握了所有的知识,能突破所有的玻璃天花板,那是不是 QA 就可以一帆风顺了。答案是否定的。 QA 角色定义本身就有很大的局限性。 QA 充当的是过程警察的角色,无论是否有意义, 都专横地强制过程的执行, 容易在项目组中造成敌对的关系, 受到排挤, 而且这种警察的姿态也破坏了团队精神。如此一来, QA 工作还需要的是人际关系技能,就如我以前写的《质量平衡》和《 QA 应该独立于项目组吗?》一样,艺术化地处理这种关系。软件质量保证- 四、 QA 的未来从某种程度上说,独立的 QA 审查机制是瀑布模型的