导弹与航天运载技术
MISSILES AND SPACE VEHICLES
1999年 第6期 No.6 1999



一组软件故障数据的分析
史全林　周源泉
　　摘要　对含突变点的软件故障的分组数据集，用幂律模型进行了分析。关于分组数据提出了另一种增长检验方法。在拟合优度欠佳或有突变点时，提出了分组数据的分段处理方法，并指出，在用幂律模型分析数据时，必须综合运用分析方法与图解方法，以便从数据中提取出更多的真实信息并避免片面性与错误。
　　主题词　软件，故障分析，可靠性分析。
Analysis for a Group of Software Failure Data
Shi Quanlin
(Changchun Inst. of Optics ＆ Mechanics
　　State Key Laboralory on High Power Semiconducter Lasers, Changchun,130022)
Zhou Yuanquan
(Beijing Institute of Structure ＆ Environmental Engineering,Beijing,100076)
　　Abstract　Using the power law model, the grouped data of a software failure containing breakpoint are analysed. A new growth test method for grouped data is presented. When the goodness-of -fit is bad or the failure data have breakpoint, piecewise analysis method of grouped data is proposed. It is indicated that the analysis method of power law model must be combined with figured method so as to gather more true information from the failure data and avoid biases and errors.
　　Key Words　Software, Fault analysis, Reliablity analysis.
1　引　言
　　Bonnett ＆ Oglesby［1］提出了在硬件系统的可靠性增长数据中存在突变点。Clarke ＆ Cougan［2］对某高级雷达处理系统的可靠性增长突变点问题，提出了若干分析方法。在MIL-HDBK-189［3］中指出了硬件系统出现突变点的原因及一种可行的处理突变点的分析方法。
　　 在文献4中，给出了一个软件故障数据集。此数据集也存在突变点，其原因在于:在此软件调试中，前期发现软件故障的能力有一定局限。这是一个分组数据集，本文将对它作详细分析，其中将提出分组数据的另一种增长检验方法，还对分组数据提出了分段处理方法，并指出在可靠性增长分析中，必须综合运用分析方法与图解方法，以便从数据中提取更多信息，避免片面性与错误。
2　对该软件故障数据单纯用分析方法
　　在文献［4］中，给出了某软件工程收集到的故障数据，现列于表1。
表1　某软件的分组故障数据

tj51015202530354045505560
nj1624303545546272819298104
Nj1686510981091166
tj65707580859095100105110115120
nj110115121128134139145150154160167172
Nj656765654675


　　表中nj是该软件在累积试验时间区间(0，tj］内发生的故障次数，而
Nj=nj-nj-1,j=1,2,…,d(n0=0)
d为观测区间总数，tj为第j个观测时间区间的终点。
　　下面按IEC 1164［5］提出的分析方法处理表1的全部数据。这里d=24，截尾时间J=120天，总故障次数N=172。
　　记pj=tj/td,ρj=pj-pj-1
　　因ρjN=5/120×172=7.167＞5，故诸观测区间均满足要求，不必重新划分观测区间。
2.1　增长检验
2.1.1　χ2检验
　　χ2增长检验统计量为

对表1的数据，可算得： 1χ2=22.511 63
因　χ2d-1,1-α=χ223,0.8=28.428 79＞1χ2
故无显著的可靠性增长。
2.1.2　基于bu的增长检验
　　其前提是此分组数据可用幂律模型拟合(见2.3)。当形状参数b的置信水平为γ=1-α的置信上限bu小于1时，即以显著性水平α表明，数据有显著的可靠性正增长，而

式中　是b的极大似然估计，其表达式见2.2；uγ是标准正态分布的γ分位数；系数A的表达式为

在上式中规定
　　对表1的数据可算得，=0.784 805 1,A=0.914 877 6。
　　对γ=0.999,uγ=3.090 232,因bu=0.978 142＜1,故以α=0.001表明，有十分显著的可靠性正增长。
　　这两种增长检验中，只要有一种有可靠性增长，就应继续增长分析。
2.2　幂律模型参数与瞬时MTBF等的极大似然估计
　　形状参数b的极大似然估计由下式确定：

上式中的p0lnp0规定为0，并用保证收敛的Brent迭代算法编程求解，而尺度参数a的极大似然估计
　　在时刻td处，软件的瞬时MTBF与瞬时故障强度的极大似然估计分别为

　　由表1的数据可算得：=0.784 805 1,=4.015 841，(td)=0.888 978 0(天)，(td)=1.124 887/天。
2.3　模型拟合优度检验
　　模型拟合优度检验统计量为

式中　
　　当时，则认为故障数据可用幂律模型拟合，否则，拒绝该模型。这里通常取α=0.1。
　　由表1数据可算得

故可用幂律模型拟合表1的故障数据。
2.4　M(td),Z(td),b的置信下(上)限
　　置信水平为γ时，b的置信上限bu已在2.1中论述，而置信水平为γ时，M(td)的置信下限ML（td)，Z(td)的置信上限Zu(td)分别为


对表1的数据可算得
γ=0.9,bu=0.864 983,ML（td）=0.763 302天，Zu（td）=1.283 91/天。
3　按文献［4］修正后结果的分析
　　文献［4］指出，对前20天的故障数据，因发现软件故障的能力受到限制，可用一个经验常数对故障数据进行修正，即以t/k1代替t，文献［4］取k1=2。这样，有如表2的故障数据。
表2　按文献［4］修正后的故障数据

tj510152025303540455055
nj243545546272819298104110
Nj2411109810911666
tj6065707580859095100105110
nj115121128134139145150154160167172
Nj56765654675


　　修正前，此软件故障数据的Duane图见图1。图上用N(t)表示区间(0，t］内的故障次数。从图1可以看到，修正前图上的直线分为两段，一段在20天前，一段在50天后，并且它们的斜率也不一致。修正后的Duane图见图2，在图上，比较接近一条直线。

图1　某软件故障的Duane图

图2　修正后某软件故障的Duane图
　　下面分析表2的数据。
　　首先， 因ρjN=5/110×172= 7.818＞5,故不必对故障数据重新分组。
　　先计算增长检验的χ2统计量。
　　因1χ2=46.720 93＞χ221，0.8=26.171 10，故有显著的可靠性增长。然后计算拟合优度检验统计量，由于2χ2=4.895 43＜χ220,0.9=28.411 98,所以可用幂律模型拟合表2的数据。且有：
　　
　　置信水平γ=0.90时，有bu=0.722 340,ML(td)=0.838 004天，Zu(td)=1.168 75/天。
4　图解法提供的附加信息
　　由第2、第3节的分析可知，表1、表2的全部数据可以分别地用一直线拟合。但是，从图1～4，我们可以得到如下附加信息：
　　a) 由图1～4可知，最后70天的数据成一非常好的直线；b) 由图1及图3知，20～50天的数据成一非常好的直线。 c) 由图3，4知，最后100天的数据成一较好的直线。它们的线性度较用全部数据拟合的直线为优。下面用分析法来处理这些信息。

图3　某软件的故障数据　　　　　图4　修正后某软件的故障数据
5　20天后故障数据的分析
　　对表1的20天后的数据，按文献［3］的想法，以t=20天为起点进行分段处理，可得如表3的故障数据表。
表3　20天后的故障数据

tj5101520253035404550
nj10192737465763697580
Nj1098109116665
tj556065707580859095100
nj869399104110115119125132137
Nj6765654675


　　因ρjN=5/100×137=6.85＞5,故不必重组故障区间。
　　对表3可算得：
　　1χ2=10.883 21＜χ2d-1,0.8=χ219,0.8=23.900 42
故无显著的可靠性增长。
　　对置信水平γ=0.99,可算得b的置信上限bu=0.990 863＜1,故以显著性水平α=0.01表明，有十分显著的可靠性正增长。应继续作可靠性增长分析。
　　对表3的数据，因2　χ2=5.407 25＜χ2d-2,0.9=χ218,0.9=25.989 42,故可用幂律模型拟合表3的故障数据。
　　而=3.136 96,=0.820 106,(td)=0.890 040天,(td)=1.123 54/天
　　对置信水平γ=0.90,有ML(td)=0.748 906 天，Zu(td)=1.301 71/天。
6　50天后故障数据的分析
　　以t=50天为起点作分段处理，可得如表4的故障数据表。
表4　50天后的故障数据

tj510152025303540455055606570
nj612182329364247535862687580
Nj66656765654675


　　因ρjN=5/70×80=5.714＞5,故不必重组故障区间。
　　由于1 χ2=1.550 00＜χ213,0.8=16.984 80，因此数据没有趋势。
　　因2χ2=1.516 04＜χ212,0.9=18.549 35，故可用幂律模型拟合表4的数据。
　　对γ=0.90，可算得bu=1.118 61＞1,即以显著性水平α=0.10表明，故障服从poisson过程，即相继的故障间隔相互独立地服从指数分布。
　　其可靠性测度的极大似然估计为=0.875天，=1.142 86/天。
　　置信水平γ=0.90时，有ML=2J/χ22N+1,γ=0.759 309天，Zu=［ML］-1=1.316 99/天。
7　20～50天内故障数据的分析
　　据表3的前30天的故障数据，可算得：
　　1χ2=0.578 95＜χ25,0.8=7.289 28，2χ2=0.574 42＜χ24,0.9=7.779 44，γ=0.90的bu=1.196 52＞1。
　　因此，该故障数据可用Poisson过程拟合，且其MTBF之估计为=0.526 3天，故障强度的估计为=1.900/天。
　　γ=0.9的ML=0.445 059天，Zu=2.246 89/天。
8　几种结果的比较
　　以上这几种情况下，都通过了拟合优度检验，但是，哪种情况拟合得更好呢?我们建议采用下述统计量： 2 χ2/χ2d-1,0.9，作为比较拟合优度的标准，表5中列出各情况下的结果。
表5　各种情况分析汇总表

情况类型2 χ2/χ2d-1,0.9试验终止时的
(td)Zu(td)
γ=0.9数据性质
全部故障数据0.322 11.125/天1.284/天幂律过程
修正后的全部故障数据0.172 31.022/天1.169/天幂律过程
20天后的故障数据0.208 11.124/天1.302/天幂律过程
50天后的故障数据0.081 71.143/天1.317/天Poisson过程


　　表5数据表明，50天后的数据拟合优度最佳。这从图1～4上均可看出。另外，对未修正的3种情况来说，其可靠性测度十分接近，但数据性质却有质的变化。
　　另外，20～50天的数据表明，2χ2/χ2d-1,0.9=0.073 8,说明拟合非常好。
　　综上可知，20～50天的数据服从=1.900/天的Poisson过程，50～120天数据服从=1.143/天的Poisson过程。
9　结　论
　　a) 由本文可知，单纯用分析方法对全部数据所评出的可靠性测度的误差虽不大(未修正的全部数据结果的相对误差为-1.6%，修正后结果的相对误差为-10.6%)，但是会丢失许多信息。为了从故障数据中提取更多信息，必须综合运用分析方法与图解方法。
　　b) 分组数据的增长检验，除χ2检验外，本文还提出了基于b的置信上限bu的增长检验方法，并提出了分组数据的分段处理方法。
　　c) 可用统计量2χ2/χ2d-1,0.9来比较多组数据拟合优度的良好程度。
　　d) 该软件故障在20～50天中及50～120天中分别服从不同强度的Poisson过程。前、后两段的故障强度的极大似然估计分别为1.900/天与1.143/天。这说明在50天处，其故障强度有明显下降。但在20～50天及50～120天这两段时间内没有采取切实提高可靠性的措施。
　　e) 文献［4］认为，采取k1修正是十分困难的，因为k1不易调整。可将早期软件故障数据从计算中删除。从本文分析可知，按是否有突变点及有突变点时作分段处理，将更为合理。
作者单位：史全林　(长春光机学院高功率半导体激光国家重点实验室，长春，130022)
　　　　　周源泉　(北京强度与环境研究所，北京，100076)
参考文献
　1　Bonnett R W,Oglesby R D. Patriot ground equipment reliablity growth. Reliability Growth Management,Testing ＆ Modelling(seminar proceedings).IES Environmental Reliablity Project Group,1978：23～27.
　2　Clarke J k, Couyan W P. RPM-A recent real life case history. Reliablity Gowth Management,Testing ＆　Modelling(seminar proceedings), IES Environmental Reliablity Project Group. 1978:10～16
　3　MIL-HDBK-189.Reliablity Growth Mangement,1981.
　4　童洵洲等.可靠性和有效性评审程序手册.北京：宇航出版社，1985.
　5　IEC 1164. Reliablity growth――statistical test and estimation methods,1995.
收稿日期：1998-07-16
