📜  软件工程| Goel-Okumoto(GO)模型

📅  最后修改于: 2021-01-10 03:07:24             🧑  作者: Mango

Goel-Okumoto(GO)模型

Goel和Okumoto于1979年开发的模型基于以下假设:

  • 在时间t之前经历的故障数量遵循带有平均值函数μ(t)的泊松分布。该平均值方法具有边界条件μ(0)= 0且Lim t→∞μ (t)= N <∞
  • (t,t +Δt)中出现Δt→0的软件故障的数量与未检测到的错误的预期数量N-μ(t)成正比,比例常数为∅。
  • 对于时间t 1 2 <···n的任何有限集合,在每个不相交间隔(0,t 1 ),(t 1 ,t 2 )…(t n- 1 ,t n )是独立的。
  • 每当发生故障时,立即消除引起故障的故障,而不会在软件中引入任何新的故障。

由于每个故障在导致故障后都可以得到很好的修复,因此在测试开始时软件中固有的故障数等于无限次测试后将出现的故障数。根据假设1,M(∞)遵循具有预期值N.泊松分布。因此,相比于初始软件故障的固定但未知实际数目在Jelinski Moranda模型μ0 N是初始软件故障的预期数量。

假设2指出在时间t的失效强度为

dμ(t) / d t =∅[N-μ(t)]

就像Jelinski-Moranda模型一样,故障强度是单个故障的恒定危险率与软件中剩余的预期故障数的乘积。但是,N本身是期望值。

穆萨的基本执行时间模型

Musa的基本执行时间模型基于执行时间模型,即,建模期间花费的时间就是要建模的软件的实际CPU执行时间。该模型易于理解和应用,并且其预测价值通常被认为是好的。在对可靠性进行建模时,模型的目标是失效强度。

假定故障强度随时间减小,即,随着(执行)时间增加,故障强度减小。该假设通常是正确的,因为以下假设是关于软件测试活动的,在此期间收集数据:在测试过程中,如果观察到故障,则检测到导致故障的故障,并删除该故障。

即使无法成功执行特定的故障排除措施,整体故障也会导致软件故障的减少。因此,破坏强度降低。大多数其他模型都做出了类似的假设,这与实际观察结果一致。

在基本模型中,考虑到每个故障都会导致相同的故障强度降低量。即,故障强度随着故障次数而以恒定的速率减小。在更复杂的Musa对数模型中,减少量不假定为线性,而是对数。

Musa的基本执行时间模型于1975年建立,它是第一个明确要求时间测量值的时间,它是在执行被测应用程序所用的实际CPU时间(简称为“执行时间” t)中。

尽管最初并不是像模型那样制定模型,但可以通过三个特征对其进行分类:

  • 无限时间内可以经历的故障数量是有限的。
  • 时间t注意到的故障数量的分布是泊松类型的。
  • 故障强度在时间上的函数方法是指数的。

它与Goel-Okumoto模型共享这些方法,并且两个模型在数学上是等效的。除了使用执行时间外,不同之处还在于对每次故障的恒定危险率interpretation的解释。穆萨(Musa)用两种恒定方法分裂,即线性执行频率f和所谓的故障暴露率K:

dμ(t) / d t = f K [N-μ(t)]

f可以计算为计算机的平均目标指令执行率r除以被测应用程序的源代码指令数l s乘以每个源代码指令的平均目标指令数Q x :f = r / l s Q x

故障暴露率将故障速度f [N-μ(t)]与经历的故障强度相关联,故障速度f [N-μ(t)](如果连续执行所有语句,则代码的有缺陷部分将通过的速度)。因此,可以将其解释为在程序的一次线性执行过程中代码中剩余的每个故障所发生的平均故障数。