基于缺陷分布的质量目标分解和质量预测体系

 摘要:质量管理如何去量化要求?怎么设定一个合理的质量目标?质量目标如何被分解?质量目标如何随着项目实施过程推进而被修正?这些都是困扰项目质量管理的老大难问题。本文尝试从缺陷分布模型的角度去提供一种思考维度。
        关键词:质量管理,量化,质量目标,质量预测。

项目量化管理与量化质量目标
        CMU SEI的CMMI模型中,把一个软件企业的软件能力成熟度分成五个等级。分别为初始级,可重复级,已定义级,已管理级和优化级。各成熟度等级的特征如下:
        初始级—软件过程是无序,无章可循的,软件项目的成功依赖项目组中的关键成员的个人能力,项目的成功是偶然和不可预见的。
        可重复级—项目已经定义了最基本的项目管理过程,对项目的进度,成本和质量在一定程度上起到控制作用,对同类型的项目,一些成功的经验是可以被复用和优化到新的项目过程中去的。
        已定义级—软件项目管理过程已经上升为组织级别的标准过程规范。组织的项目过程采用或裁剪自组织标准过程。
        已管理级—软件过程表现逐步稳定,软件过程和产品质量都能有量化的衡量准则,可以量化控制和预测过程和产品质量。
        优化级—在已管理级的基础上,通过对过程革新,来不断的优化过程,从而达到持续改进。
        那么,对于达到或者将要达到已管理级的这些公司,如何利用这些过程数据来控制和预测产品质量呢?基于规模数据和缺陷数据是很多公司比较早收集的,而且相关过程也是比较早达到稳定的,我们可以先从缺陷数据开始入手,建立初步的质量目标分解和质量预测体系。

构建缺陷分布模型和项目缺陷密度性能基线
        对于达到成熟度等级四级的公司来说,基于这个成熟度等级的项目一般来说项目管理、评审、测试等子过程的过程性能比较稳定,因此也有条件生成该过程的过程性能基线。通俗的讲,我们可以把一个公司某个过程的过程性能基线看作是该公司该过程的基准值。如,测试缺陷密度性能基线为[25±2] 个/千行,那么类似的项目的缺陷表现就可以参照这个数据了。
        对于构建本模型,我们需要一个缺陷分布模型和一个缺陷密度性能基线数据。假设A公司X类项目的缺陷分布模型如下:

缺陷发现阶段

缺陷比例

1-User Requirement / System Requirement Review

3%

2-High Level Design Review

4%

3-Low Level Design Review

4%

4-Unit Test

14%

5-Code Review

15%

6-System Integration Test

51%

7-External Defects

9%

        假设A公司X类项目的缺陷密度性能基线为M1 = [25±2] 个/千行。

设定质量目标
        按照项目给定的范围,进行项目规模估算。假设估算的项目规模是Size = 20,000行,那么,根据缺陷密度性能基线数据,可以推算,该项目预计的缺陷总数为M2 = M1*Size/1000,得出M2 = [500±40] 个。然后按照缺陷分布模型的百分比,可以把缺陷发现指标分解到各个阶段中,如下表:

项目实施阶段

缺陷发现质量目标()

1-User Requirement / System Requirement Review

14±1

2-High Level Design Review

19±2

3-Low Level Design Review

19±2

4-Unit Test

71±6

5-Code Review

75±6

6-System Integration Test

255±20

7-External Defects

47±4

        这样我们就得到了每个阶段缺陷发现的目标数和控制上下限,并作为质量目标固定下来。

运用缺陷分布模型进行质量目标跟踪与质量预测
        大家也许会问,那么如果某个阶段没有达到质量目标或者超额完成质量目标怎么调整下一阶段的质量目标情况?
        在回答这个问题之前我们先基于这样一个假设:即同样技术水平等级的人,遵循同样的过程,其产品的总体质量表现是一致的。那么我们由此假设可以推断,对于一个给定项目规模来说,其总缺陷数是不变的。
        还以上面的数据为例,假设到代码基线化时,Unit Test和Code Review一共比计划少发现30个缺陷。那么,基于缺陷总量不变的假设,这30个缺陷势必要被泄漏到后续的系统测试和交付后的环节中。
        按照缺陷分布的比例,系统测试缺陷将需要多发现 M3 = 30 * 51%/(51%+9%) = 26±2个, 这样,调整后的系统测试缺陷发现质量目标将为:[381 ± 22] 个。预计泄漏到客户现场的缺陷将为:[51 ± 4] 个。
        假设在后期维护期间,原先预计的修复外部缺陷的人天数为47人天,即一个缺陷1人天,按照调整后的质量预测结果估计,修复缺陷的维护工作量将增加4人天,变为51人天。

结束语
        本文只是从一个维度基于若干假设条件下,对质量目标分解和质量预测作了一个实例介绍。大家在具体运用时候,也可以基于本公司的实际情况,选择适合本公司的建模方法去实际运用。

转载:http://www.51testing.com/html/15/n-66115-2.html

路漫漫其修远兮,吾将上下而求索。
原文地址:https://www.cnblogs.com/zhangyublogs/p/5034459.html