提起如今的IT项目,软件工程倍受关注。而软件的质量更是众人关注的焦点,因为目前还没有一套完善的评估标准。甚至有人提出,现在的软件开发根本提不上是“工程”,因为它太稚嫩了,还没有一套成熟的标准来比照;因而软件项目极易出现失败或失误。大量实践证明,软件工程项目的成败,通常是因为管理问题(协同工作的能力),而不是技术上的问题。要想做一盘“xx”的软件大餐,质量管理的作用是不言而喻的。
首先是建立SQA组;其次是选择和确定SQA活动,即选择SQA组所要进行的质量保证活动,这些SQA活动将作为SQA计划的输入;然后是制定和维护SQA计划,这个计划明确了SQA活动与整个软件开发生命周期中各个阶段的关系;还有执行SQA计划、对相关人员进行培训、选择与整个软件工程环境相适应的质量保证工具;{zh1}是不断完善质量保证过程活动中存在的不足,改进项目的质量保证过程。 独立的SQA组是衡量软件开发活动优劣与否的尺度之一。SQA组的这一独立性,使其享有一项关键权利——“越级上报”。当SQA组发现产品质量出现危机时,它有权向项目组的上级机构直接报告这一危机。这无疑对项目组起到相当的“威慑”作用,也可以看成是促使项目组重视软件开发质量的一种激励。这一形式使许多问题在组内得以解决,提高了软件开发的质量和效率。 选择和确定SQA活动这一过程的目的是策划在整个项目开发过程中所需要进行的质量保证活动。质量保证活动应与整个项目的开发计划和配置管理计划相一致。一般把该活动分为以下五类: 软件产品常被称为“无形”的产品。评审时难度更大。在此要注意的一点是:在评审时不能只对最终的软件代码进行评审,还要对软件开发计划、标准、过程、软件需求、软件设计、数据库、手册以及测试信息等进行评审。评估软件工具主要是为了保证项目组采用合适的技术和工具。评估项目设施的目的是保证项目组有充足设备和资源进行软件开发工作。这也为规划今后软件项目的设备购置、资源扩充、资源共享等提供依据。 SQA活动审查的软件开发过程主要有:软件产品的评审过程、项目的计划和跟踪过程、软件需求分析过程、软件设计过程、软件实现和单元测试过程、集成和系统测试过程、项目交付过程、子承包商控制过程、配置管理过程。特别要强调的是,为保证软件质量,应赋予SQA阻止交付某些不符合项目需求和标准产品的权利。 参与技术和管理评审的目的是为了保证此类评审满足项目要求,便于监督问题的解决。 5)做SQA度量 SQA计划中必须明确定义在软件开发的各个阶段是如何进行质量保证活动的。它通常包含以下内容:质量目标;定义每个开发阶段的开始和结束边界;详细策划要进行的质量保证活动;明确质量活动的职责;SQA组的职责和权限;SQA组的资源需求,包括人员、工具和设施;定义由SQA组执行的评估;定义由SQA组负责组织的评审;SQA组进行评审和检查时所参见的项目标准和过程;需由SQA组产生的文档。 缺陷在软件开发的任何阶段都可能会被引入。项目质量管理过程包含了许多可以识别缺陷、xx缺陷的过程。“识别缺陷”和“xx缺陷”本来是两个不同的过程,但在这里为了简便统一用“xx”来代表它们。潜在的缺陷越大,用来xx它所花的费用越高。因此成熟的软件开发过程在每一个可能会引入潜在缺陷的阶段完成之后都会开展质量控制活动。这些为了xx缺陷的活动包括:需求评审、设计评审、代码走查、单元测试、集成测试、系统测试以及验收测试等。 质量控制的任务就是策划可行的质量管理活动,然后正确地执行和控制这些活动以保证绝大多数的缺陷可以在开发过程中被发现。 正如前面提到的,在进行评审和测试时可检测到缺陷。评审是面向人的过程,测试是运行软件(或部分软件)以便发现缺陷。在一个项目里,评审和测试活动是预先策划好的(计划书中确定执行哪些质量控制活动和何时执行这些活动)。在执行过程中,根据已定义好的过程来执行这些活动。通过执行这些活动来识别缺陷,然后xx这些缺陷。例如,系统测试过程一般包括制定测试计划,测试计划中应列出在测试执行过程中所有的测试用例,评审测试计划,并且最终执行测试计划。 |