质量计划和缺陷估计之CMMI软件质量管理上

缺陷的预测

      质量、成本和进度是决定一个项目成败的关键因素。虽然国际软件质量标准中有说明,但是由于软件拥有很多质量特性,因此也很难定义软件质量的内容。在实践中,质量管理往往跟缺陷相关,因此我们使用交付后的缺陷密度,即:交付后软件的每个单位规模的缺陷数作为软件质量的定义。该定义是实际上的行业通用标准。该定义表明一个软件项目的目标就是尽可能的降低交付后的产品的缺陷数。但是,如何定义缺陷呢?通常我们可以将软件的缺陷理解为导致开发出的软件与客户的要求或需求不一致的因素。

     对于高质量的软件来说,最终的产品应该尽量少缺陷,而软件开发是一种人为的活动,不可避免的会注入各种缺陷,因此,对于交付的高质量软件来说,积极的去除缺陷很有必要。排除缺陷贯穿质量控制的评审活动和测试活动中。质量控制不同于质量管理。因此质量控制关注找到并排除缺陷,质量保证的主要的目的是确保软件开发的流程和标准被遵守执行。

        软件质量控制对任何项目都很重要。详细可以参考 CMMI3  级中关于软件测试的实践。关注点为确保质量控制活动合理执行。我们称这种战略为“流程化质量控制方法”。量化进行质量计划和质量是CMMI4  级关注点。我们首先讨论质量管理的概念和方法,然后描述质量计划的方法应用。

软件质量和缺陷

       在讨论质量管理的技术之前,首先要理解缺陷注入和缺陷排除的过程。缺陷在软件开发的整个阶段都会注入,也就是说,在将从获取客户需求到开发出满足客户需求的软件产品的过程中,缺陷是随时都可能产生的。这些阶段主要是需求阶段,概要设计阶段,详细设计阶段和编码阶段。

       基于上述原因,在交付产品前的排除缺陷就显得极为迫切。

       项目的过程包括发现缺陷以及由此引发的排除缺陷的很多活动,虽然两者不同,但是我们讲利用排除缺陷来综合考虑项目。缺陷发现的时间越晚,排除缺陷的成本就越高。因此一个成熟的过程一定包括每个阶段质量控制活动。缺陷排除的活动包含需求评审,设计评审,代码评审,单元测试,集成测试,系统测试和验收测试(虽然计划文档的评审也帮助提高软件质量,但这里不包含对计划文档的评审)。过程的缺陷注入和排除如下图所示。

   质量管理的任务是计划合理的质量控制活动,并适当的执行和控制这些活动,使得在产品交付之前能发现的缺陷达到最多。

评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。