Gompertz 是一种可靠性增长模型,是由 Virene 提出的。该模型的公式为 ct R ab ,其中 R 是 随时间 t 变化的可靠性指标,a 为当测试时间或阶段 t 趋于无穷大时 R 的极值,ab 为系统测试初始 值,即 t=0 时 R 的初值,c 为形状参数,c 值越大,则可靠性增长越慢,反之则增长越快。模型中 a、b、c 参数值为估值,通常是一个经验值。 在软件测试领域中,Gompertz 模型主要用于分析软件测试的充分性及软件缺陷发现率。其原 理是使用 Gompertz 函数画出拟合曲线,再画出实际测试过程中每天累积的缺陷曲线,比较这两条 曲线进而分析测试的充分性和软件缺陷发现率。 每天发现的缺陷数据及累积缺陷数见表 9-9。
Gompertz 模型估算缺陷增长趋势与累积缺陷趋势图如图 9-26 所示。
从图中可以看出,执行测试 15 天发现的缺陷数为 97 个,Gompertz 拟合曲线估算值为 102 个, 缺陷发现率为 95.1%。 Gompertz 模型虽然可以很好地估算软件中存在的缺陷数,但在使用时也有一定的约束条件: (1)参数 a、b、c 的值通常是一个经验值,不易确定。 (2)要求被测试的对象特性一致,即测试的复杂度、规模、测试组织、测试执行的测试用例 等需要一致,不能存在较大的差异。(3)测试轮次应该不少于 2 次,否则无法使用 Gompertz 模型进行分析。 基于以上原因,在实际工作中,Gompertz 模型用来分析软件测试的充分性和发现缺陷率的频 率较低,特别是基于第二个约束条件,在工作中可能很难保证对象特性的一致,每个测试版本的测 试用例数可能都存在差别。