5.2.2 对软件工作产品的审计
软件开发过程中所产生的任何工作成果都称为“工作产品”,该工作产品可以是代码、组件、文档、会议记录等。但并不是所有工作产品都要交付给客户,例如在普通项目中的概要设计文档、需求确认书等文档就是不交付给客户的。因此“产品”是特指交付给客户的部分工作产品,由此可见“产品”是“工作产品”的一个子集。
图5-4 周期性过程的评审流程
如果要想保证交付给客户的是一个高质量的产品,那么首先就要确保工作产品是高质量的。例如常见的分布式开发最终交付客户的产品通常是由多个组件集成而来的,每个组件都是一个工作产品,如果某个工作产品出现质量隐患,那么最终交付的产品质量也一定不会太好。
软件质量保证人员(PPQA)的其中一个“P”指的就是“产品”,那么质量保证人员如何确保“产品”的质量呢?软件质量保证人员确保产品质量的方法是建立在每个工作产品高质量基础上的。首先他不能像软件测试人员(SQC)那样进行测试,因为软件测试人员进行的系统测试大多数都是针对最终的“产品”。软件质量保证人员只能在软件研发的过程中通过对每个工作产品的审计来确保工作产品的质量,例如对《软件需求说明书》内容的审查、对系统测试用例内容的审查、对产品集成后“半成品”的质量进行审查等。