5.2 软件质量保证流程及最佳实践
本章将软件质量保证的内涵进行了深化,将软件质量保证定位于PPQA,这两个“P”分别代表“过程”和“产品”,那么软件质量保证的工作流程和方法是如何实现及对“过程”进行审计,又是如何对“产品”进行审计呢?本节将通过几个软件质量保证的最佳实践来对它进行讲述。
5.2.1 对软件研发过程的审计
在当今软件质量体系里,质量的含义已经不再局限于产品,对质量的享有者也不再局限于客户。因此只有好的过程才能提供高的质量,而且可以让所有项目关系人都享受到高质量所带来的收益。传统行业中的过程常常体现在工厂中的一条条生产线,一个工序完成后另一个工序立刻开始。而软件行业中的过程不能按照软件开发的流程将项目经理、需求人员、设计人员等不同角色的人排成一队来安排他们的座位。软件行业中的过程是公司制订的各种规范、标准和流程,这些都是无形的,是需要在每个项目团队成员脑海中记忆的,这与传统行业的生产线有着本质的区别。
对软件过程的审计是基于这样一个前提:“软件项目所遵循的流程是符合项目实际需要的,是恰当并充分的;该流程是经过公司审批的”。如果这个假设都不存在,那么这种审计就缺乏存在的基础,而且审计的结果也缺乏合理性和公正性。制订一个合理的项目流程,这是过程改进小组的责任,而不是质量保证人员的责任,质量保证人员只要将过程改进建议反馈给EPG即可。
软件工程是个复杂的系统工程,它是由软件开发过程、软件测试过程、配置管理过程、度量分析过程、风险管理过程等十多个大的流程所构成,每个管理过程又可以分为多个子流程。到底哪些过程是需要软件质量保证人员关注的,这需要根据项目的规模和复杂度进行判断。因此,制订软件质量保证计划是软件质量保证人员所需要做的第一件事情。
软件质量保证人员对过程进行审计时按照过程的特点可以分为对触发性过程的审计和对周期性过程的审计两种。
触发性的过程就如对需求文档的评审过程,该评审过程何时开展,需要等待项目经理发出评审通知,因此该审计活动是被评审通知触发的。对触发性过程的审计流程如图5-3所示。触发性的审计过程可以分为以下3个大的步骤: