四、软件可靠性评估?

  4.1 大概率的EM算法?

  本文将该方法引申到软件测试可靠性评估计算上。?

  假设输入点集为I,通过输入和输出的映射函数关系,观测到I服从概率分布Pd(I), I?d。随机变量I只是观测数据的一部分,假设A表示与I有关的随机事件,即A={R(I)>Rα},R(I)表示通过随机输入I观测到的似然统计量,Rα表示测试人员的期望值,且Rα∈[0,1]。这里所要求的是大概率sup{Pd(A):d∈D0},这里D0是D的子集。在假设检验中,大概率可以是真实的检验水平,也可以是犯第1类或第2类错误的概率。?

  EM算法是用来求解似然函数大值点的工具,所以,如果能够将概率Pd(A)看成似然函数的值,则可以利用EM算法得到大概率sup{Pd(A):d∈D0}。?

  EM算法的基本步骤:?

  设f(y|d)是Y的概率函数。从一个初始点d∈D开始,则寻找sup{Pd(A):d∈D0}的算法由下面的两步迭代而成(t=0,1,…):?

  E步:给定现在的值d(t)后,对未知的对数似然函数l(d|Y)=log f(Y|d)求条件期望:?

  M步:大化函数Q(d|d(t)),求取大值点d(t+1)作为下一步迭代的值,即使得:?

  4.2 基于测试用例的软件可靠度检验?

  软件测试是一个反复测试的过程,一个测试软件包含多个测试用例,各个测试用例之间的关系是相互独立的,假设测试软件P包括m个测试用例,并且对该软件进行了k次测试,根据推论2可计算出一个关于测试用例的观测数据矩阵R如(8)式所示:?

  其中Rij表示对第i个测试用例进行第j次测试所得到的结果。其中经过k次测试后,每个测试用例的可靠度可以取其算术平均值作为后结果,其结果可表示为式(9)。?

  根据(8)、(9)式可推导出测试软件P的终矩阵表达式为式(10):?

  下面利用R={R(c)1,…,R(c)m}对软件可靠度RP进行检验。检验的问题是:?

  这里的R?P表示测试员或者软件使用者对软件可靠度的期望值,如果测试软件可靠度大于该期望值,则认为测试软件的可靠度达到要求,否则,认为没达到要求。根据式(8)可推出软件的可靠度的极大似然估计为式(11)。?

  对于给定的检验水平α,假设A={R^p>Rα},通常的检验方法应该选取R尽可能的小,对给定的水平α,其中临界值Rα可以表示为式(12)。