理论知识终于告一段落啦。接下来要和大家分享的是S型曲线模型中的重要模型——Gompertz模型和Logistic模型在公司内部实际项目中的应用。下面的数据都是来自于公司内部实际项目,应用主要分4个场景:进入测试阶段前、测试阶段过程中、测试退出时、以及其它的应用。下面将依据场景,从测试阶段开始一直到结束,分阶段介绍S型曲线的应用。
● 进入测试阶段前的缺陷发现目标的预测
进入测试阶段前的缺陷预测过程可以说是一个静态的预估过程。简单来说,即根据经验、历史数据、预测开始时的缺陷数、release时的缺陷数和遗留缺陷数来预测整个测试阶段的缺陷趋势,这个过程通过三点法来完成。最后预测得出的缺陷模型是最初模型,可作为后期阶段的指导模型。
● 测试阶段每周缺陷发现进度跟踪与预测
● 测试退出评价时,对无偿维护阶段发现缺陷数的估计
● 其他
上面介绍的几种应用场景,都在实际项目中得到了印证。但要想确定推广模型的使用,首先需要的,就是数据的收集工作。只有数据收集的准确、完整,才有可能得到较为精确的成长曲线模型。
本篇主要介绍第一个场景,即进入测试阶段前缺陷发现目标的预测。下面选择了公司内过程稳定的软件产品线上的一个升级版本项目作为试点,选择最常用的S型曲线中的Gompertz和Logistic曲线,在测试阶段对缺陷发现趋势和遗漏进行了估计和跟踪。实验过程中使用的工具为公司内部针对软件缺陷预测开发的基于SRGM的成长曲线预测工具。
1)测试阶段准备期对缺陷发现趋势的估计
进入测试阶段前的缺陷预测过程基本是一个静态的预估过程,即根据软件规模与经验、历史数据、之前开发阶段发现的缺陷数等已有数据,版本发布的质量目标(如:单位规模缺陷漏出率)来估计测试阶段的缺陷发现趋势。可通过对进入测试、版本发布判定和版本发布后维护期的三组数据使用三点法来完成。这时估出的缺陷发现趋势只是初步结果,作为测试阶段根据实际数据不断改进的基础。
以试点项目为例,根据测试用例实施计划以及历史数据,估计出进入测试阶段后第一周应发现缺陷25件。根据前一个迭代周期的测试阶段缺陷发现率约为12件/KLOC,本次迭代估计代码规模约为85KLOC;估计出版本发布时(进入测试阶段起第14周)应发现缺陷数为1020件。对应版本维护阶段(进入测试阶段起第27周),根据组织级质量目标,得到遗漏缺陷约68件,合计应发现缺陷数为1088件,由这些数据得到release时的百分比(通过计算得出)。应用三点法,得到如下缺陷发现累积估计值,可作为测试负责人制订每周发现缺陷目标的重要参考。预测方法如图1所示。
图1 测试准备阶段对缺陷发现趋势估计
图2 趋势预测图PDF
图3 趋势预测图CDF