5.1 软件质量保证概述
如果一个软件项目所开发出来的软件产品具有较高的可用性和易用性,这是否就满足了客户的需要,也达到了产品的质量呢?假如一个软件产品有较高的产品质量,但是客户要求半年完成,项目组却用了一年半才交付,那客户就完全满意吗?假如一个软件项目的预算成本是10万元人民币,但是项目组却花费了20万元的成本开发出非常高质量的产品,那么客户和公司就真的完全满意吗?
在软件开发过程中质量被视为软件产品的生命,而始终被所有人员高度关注,然而在现实生活中总是不尽如人意。归根到底是没有把握软件产品质量的内涵,很多时候项目组仅停留在减少软件运行错误、加强软件测试、尽量避免软件缺陷落入客户手中的一般性做法,而缺乏对整个软件开发生命周期的全过程质量管理。因此软件质量保证的目标如下:
① 通过对过程的审计确保交付给客户的产品具有高质量。
② 保证软件项目的过程恰当、合理,并遵循公司的标准和规范。
③ 对软件项目组各个方面的评价客观准确。
④ 对发现的不符合项及时与当事人进行沟通,在必要时将信息客观反馈给高层领导并争取高层的支持。
⑤ 让软件研发的过程更加透明,以便项目组成员、各级管理人员,甚至客户都可以清楚了解项目的情况和问题,这样可以获得更多的安全感和信心。
⑥ 为持续的软件过程改进提供必要的建议。
如图5-1所示,软件质量保证的工作是一个闭合的环形,包括以下内容:
① 所有执行的过程、产品和服务依据适当的过程标准和流程进行客观评估。
② 识别并记录不符合项。
③ 确保不符合项得以解决。
④ 向项目相关关系人反馈软件质量保证获得的结果。
为了确保软件质量保证人员可以顺利开展第三方审计的工作,更加客观地对软件研发体系进行评价,通常软件质量保证人员要求独立于项目组,并且直接接受高层领导的管理。这是开展软件质量保证工作的基础,其组织架构如图5-2所示。