CN109815149A - 一种基于Weibull分布引进故障的软件可靠性增长模型 - Google Patents
一种基于Weibull分布引进故障的软件可靠性增长模型 Download PDFInfo
- Publication number
- CN109815149A CN109815149A CN201910083304.1A CN201910083304A CN109815149A CN 109815149 A CN109815149 A CN 109815149A CN 201910083304 A CN201910083304 A CN 201910083304A CN 109815149 A CN109815149 A CN 109815149A
- Authority
- CN
- China
- Prior art keywords
- failure
- model
- function
- software
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明属于软件可靠性增长模型技术领域,具体涉及一种基于Weibull分布引进故障的软件可靠性增长模型。本发明为解决上述问题而采取的技术方案为:本发明基于Weibull分布引进故障的软件可靠性增长模型,包括以下步骤:(1)构建故障总数函数;(2)构建故障引进强度函数;(3)假设故障总数函数(3)服从Weibull分布,构建故障总数函数a(t)和故障引进强度函数η(t);(4)按照故障引进过程考察故障引进率随测试时间发生变化的情况,因此,故障引进强度函数可以改写为以下形式:
Description
技术领域
本发明属于软件可靠性增长模型技术领域,具体涉及一种基于Weibull分布引进故障的软件可靠性增长模型。
背景技术
软件测试和调试是一个复杂的过程。其中,测试者和调试者的能力和技术对软件故障的检测和排错有着重要影响。当一个故障被检测出来时,调试人员需要用相关的知识去考虑怎样完全去除和修复故障,而且不要引入新的故障。但是,调试过程会被许多因素影响,例如,调试者的技术,调试用的工具,调试环境和调试人员在调试过程中的心理变化等。这些因素都会影响调试人员在去除故障时是否会引入新的故障。人们一般称在软件调试过程中,当检测出的故障被去除时,引进新的故障现象为不完美调试。
由于不完美调试情况的复杂性,人们一般把不完美调试过程看作是一个具有不确定性的随机过程。另外,在实际的软件测试过程中,软件检测出故障的数量不一定和故障去除的故障数量相等,例如,去除一个已检测出的故障可能会引入新的故障或者原来的故障没有被完全去除。也就是说,在不完美调试过程中,故障总个数可能会增加。目前也存在一些不完美调试软件可靠性增长模型,但是没有哪一种模型能够应用到软件测试的所有的环境下。因此,还需要对软件调试过程中,故障引进现象进行深入研究。实际上,故障引进不但可能是线性、指数分布或者与故障排错的数量成正比,而且故障引进还可能是更复杂的变化。可能受到调试的过程中的环境、工具和调试者的能力和技术等影响。因此,故障引进在软件调试过程中是一个需要重点考虑的因素。
发明内容
本发明主要针对现有技术的不足,提供一种一种基于Weibull分布引进故障的软件可靠性增长模型。
本发明为解决上述问题而采取的技术方案为:
一种基于Weibull分布引进故障的软件可靠性增长模型,其特征是包括以下步骤:
(1)故障总数函数通过下式表示:
a(t)=aF(t)+C (3)
其中,a(t)表示故障总数函数,a表示最终期望引进故障的总的数量,F(t)是故障引进的分布函数,C是最初期望的软件内存在的故障的数量;
(2)故障引进强度函数通过下式表示:
η(t)=aF′(t) (4)
其中η(t)表示F'(t)表示
(3)假设故障总数函数(3)服从Weibull分布,即故障总数函数a(t)和故障引进强度函数η(t)可以分别表示为:
a(t)=aF(t)+C=a[1-exp(-αtd)]+C (5)
η(t)=aF′(t)=aαdtd-1exp(-αtd) (6)
其中α为率参数,d为形状参数,t为时间;
(4)按照故障引进过程考察故障引进率随测试时间发生变化的情况,因此,故障引进强度函数可以改写为以下形式,
其中,h(t)表示故障引进率函数,[a+C-a(t)]表示到t时刻为止,期望剩余故障引进故障的数量,在式(7)种[a+C-a(t)]表示一个随时间增长而非增长的函数,因此,故障引进强度函数的变化趋势是由故障引进率的变化决定的。
本发明采用上述技术方案,用Weibull分布来模型化故障引进过程。Weibull分布有许多优点。第一,和指数分布具有无记忆性相比它具有记忆性。第二,它可以模型化多种故障数据集,例如,模型化左倾(left-skewed),右倾(right-skewed)或者对称数据(symmetric data)。第三,当形状参数变化时,它可以有不同的形状。第四,它可以模型故障引进强度函数随时间的变化,例如,故障引进的强调函数随时间具有先增后减的变化或者下降的变化等。因此,考虑在实际的软件调试过程中,用Weibull分布来模型化故障引进随测试时间变化的过程是一种有效的和可行的方法。
另外,用Weibull分布来模型化故障引进现象和其它方法相比,还有其它优势。例如,用Weibull分布模型化故障引进的现象,可以考虑故障引进率随测试时间先增后减和逐渐减少的变化趋势。但是其它一般只能模型化故障引进的一种变化。因此,用其它方法建立的软件可靠性模型对软件测试和调试的环境适应性具有一定的限制。而用Weibull模型化故障引进过程建立的软件可靠性模型则能更好的适应软件测试和调试的复杂变化。本文中的实验结果也证明了提出的模型和其它不完美调试的软件可靠性模型相比,具有更准确的故障拟合和故障预测性能,而且提出模型能更好的适应不同软件测试和调试环境下。
本发明选择故障引进服从Weibull分布的原因和表示为:
其中:NHPP表示非齐次泊松过程,SRGM表示软件可靠性增长模型,MLE表示最大似然估计,MVF表示均值函数,SSE表示误差平方和,AIC表示Akaike信息标注,a表示期望引进故障的总数量,b表示故障检测率,c表示故障检测率的上边界,d表示形状参数,p表示故障去除效率,α表示率参数,β表示拐点因子,r表示常量故障检测率,α1表示比例参数,β1表示形状参数,n表示实际观测到的故障数量,C表示期望检测出最初故障总数量,N(t)表示随机变量,即表示到t时刻为止,检测出故障的数量,a(t)表示故障总数函数,b(t)表示故障检测率函数,表示到ti时刻为止,实际观测到故障的数量,m(ti)均值函数,表示到ti时刻为止,期望检测出故障的数量。
Weibull分布相关概念和表示方法为:
Weibull分布是一个连续的概率分布,(1)Weibull概率密度函数可以表示为:
其中f(x;λ;k)是一个概率密度函数,x是一个随机变量,λ是一个比例参数,k是一个形状参数。
Weibull概率密度函数有下列特点:
①当k<1时,Weibull概率密度函数曲线在随机变量x逐渐增加时,有急剧下降的趋势。
②当k=1时,Weibull概率密度函数曲线在随机变量x逐渐增加时,有逐渐缓慢下降的趋势。
③当k>1时,Weibull概率密度函数曲线在随机变量x逐渐增加时,有先增后降的趋势。
从图1,能够清晰的看到这种变化,考虑到Weibull概率密度函数的这些特点,可以用来模拟故障引进率先增后减和逐渐下降的过程。
(2)Weibull累计分布函数可以表示为,
其中F(x;λ,k)为Weibull累计分布函数,
Weibull累计分布函数有下列特点,
①当k=1时,它为指数分布(exponential distribution)。
②当k=2,时,它为瑞利分布(Rayleigh distribution)。
从图2,能够清晰的看到Weibull累计分布函数在随机变量x逐渐增加时,发生的相应的变化。考虑到Weibull累计分布函数的特点,因此,可以用来模拟故障引进过程。
提出的不完美调试模型的建立
提出模型的基本假设
(1)提出模型的假设条件如下:
①软件失效和故障去除过程遵循非齐次泊松过程(NHPP)。
②软件失效发生是随机发生的,发生的原因是由软件中剩余故障造成的。
③每次检测到一个软件故障,立即被去除,并且可能引进新的故障。
④故障内容(总数)函数服从Weibull分布。
从上面的假设可以看出,假设③和④捕获了在软件调试过程中,故障引进过程所表现出的变化。
提出模型建立过程
一般来说,基于NHPP的模型都是假设软件失效是随机发生的,在(t,t+Δt)时间内,期望软件发生失效的数量和期望软件剩余故障发生的数量成正比,这意味着软件故障检测率为常量,它可以用以下微分方程来表示,
其中,m(t)表示均值函数,b(t)表示故障检测率,a(t)表示故障总数函数;
基于假设③和④,故障总数函数可以表示为,
a(t)=a[1-exp(-αtd)]+C (10)
其中a为期望最终引进故障的总的数量,α为率参数,d为形状参数,C为期望最初软件中存在的故障的数量。当t=0,a(0)=C。当t→∞,a(∞)=a+C。式(10)两边求导得,
从式(11)可以得到,
①当d≤1时,故障引进随测试时间逐渐减少。
②当d>1时,故障引进随测试时间有先增后减的变化。
因此,从式(11)可以得出,故障引进随测试时间发生变化的情况。
当b(t)=b,把式(10)带入式(9)可得到,
因为式(12)是一个复杂的微分方程,可以得到近似解为,
当k=5时
式(13)就是本章提出的模型的表达式。式(14)是本章所用到的提出模型的表达式。从式(13)和(14)可以得到,当t=0,m(0)=0;当t→∞,m(∞)=a+C。
提出的模型证明
证明:假设并且b(x)=b,那么exp[D(t)]=exp(bt)。式(9)两边乘以exp[D(t)]可得,
exp[D(t)]dm(t)=exp[D(t)]b(t)[a(t)-m(t)]dt (15)
exp[D(t)]dm(t)+exp[D(t)]b(t)m(t)dt=exp[D(t)]b(t)a(t)dt
(16)
式(15)两边积分得:
∫exp[D(t)]dm(t)+∫exp[D(t)]b(t)m(t)dt=∫exp[D(t)]b(t)a(t)dt (17)
∫d(exp(D(t))m(t))=∫exp[D(t)]b(t)a(t)dt (18)
当b(t)=b和a(t)=a[1-exp(-αtd)]+C,式(18)可以转换成以下形式,
exp(bt)m(t)=∫a(t)d(exp(bt))
m(t)={a(t)exp(bt)-∫exp(bt)d(a(t))}/exp(bt)
m(t)=a(t)-∫exp(bt)d(a(t))exp(-bt)
m(t)=a[1-exp(-αtd)]+C-aαdexp(-bt)∫exp(bt)exp(-αtd)td-1dt
m(t)=a[1-exp(-αtd)]+C-aαdexp(-bt)∫exp(bt-αtd)td-1dt (19)
因为麦克劳林公式为,
所以可以用式(20)简化式(19),可得,
其中,C1为一个常数。当t=0,m(0)=0时,把它代入式(24),可得,
取k=5时,式(25)可得,
附图说明
图1是本发明Weibull概率密度函数与随机变量和比例参数之间的关系图;
图2是本发明Weibull累计分布函数在随机变量和比例参数之间的关系图;
图3a本发明实施例模型使用故障数据集1的63%进行故障拟合和预测的95%的置信区间图;
图3b本发明实施例模型使用故障数据集1的80%进行故障拟合和预测的95%的置信区间图;
图3c本发明实施例模型使用故障数据集2的63%进行故障拟合和预测的95%的置信区间图;
图3d本发明实施例模型使用故障数据集2的80%进行故障拟合和预测的95%的置信区间图;
图4a本发明实施例模型使用故障数据集3的60%进行故障拟合和预测的95%的置信区间图;
图4b本发明实施例模型使用故障数据集3的80%进行故障拟合和预测的95%的置信区间图;
图4c本发明实施例中模型使用故障数据集3的60%进行故障拟合和预测的95%的置信区间下累计检测故障的数量与时间的关系图;
图4d本发明实施例中模型使用故障数据集3的80%进行故障拟合和预测的95%的置信区间下累计检测故障的数量与时间的关系图;
图5a本发明实施例模型参数a的敏感性分析图;
图5b是本发明实施例模型参数b的敏感性分析图;
图5c是本发明实施例模型参数α的敏感性分析图;
图5d是本发明实施例模型参数d的敏感性分析图;
图5e是本发明实施例模型参数C的敏感性分析图。
具体实施方式
实施例1
一种基于Weibull分布引进故障的软件可靠性增长模型,其特征是包括以下步骤:
(1)故障总数函数通过下式表示:
a(t)=aF(t)+C (3)
其中,a(t)表示故障总数函数,a表示最终期望引进故障的总的数量,F(t)是故障引进的分布函数,C是最初期望的软件内存在的故障的数量;
(3)故障引进强度函数通过下式表示:
η(t)=aF′(t) (4)
其中η(t)表示F'(t)表示
(3)假设故障总数函数(3)服从Weibull分布,即故障总数函数a(t)和故障引进强度函数η(t)可以分别表示为:
a(t)=aF(t)+C=a[1-exp(-αtd)]+C (5)
η(t)=aF′(t)=aαdtd-1exp(-αtd) (6)
其中α为率参数,d为形状参数,t为时间;
(4)按照故障引进过程考察故障引进率随测试时间发生变化的情况,因此,故障引进强度函数可以改写为以下形式:
其中,h(t)表示故障引进率函数,[a+C-a(t)]表示到t时刻为止,期望剩余故障引进故障的数量,在式(7)种[a+C-a(t)]表示一个随时间增长而非增长的函数,因此,故障引进强度函数的变化趋势是由故障引进率的变化决定的。
模拟实验
为了充分和有效地评估提出模型的拟合和预测性能,本发明给出了模型比较标准和模型参数的估计方法。并且用两个故障数据集进行了相应的仿真实验和模型的置信区间分析。表1列出了在本文中进行比较的所有模型。
表1软件可靠性增长模型和m(t)
模型的性能比较标准除了以前使用过的AIC模型评价标准外,本发明还给出了其它模型比较评价标准。
(1)误差平方和(SSE)
其中,n表示故障数据集的样本大小,SSE值越小,说明模型的性能越好。
(2)Bias评价标准
Bias表示实际观察到故障值和估计的故障值之差的绝对值之和平均数,它的定义可以表示为,
其中,m(ti)表示到ti时刻为止,期望估计检测出故障的数量,表示实际观察到故障发生的数量,n为故障数据集样本大小,Bias值越小,说明模型的性能越好。
(3)Variance评价标准
Variance表示估计偏差的标准差,它可以表示为,
Variance值越小,说明模型的性能越好。
(4)Root Mean Square Prediction Error(RMSPE)评价标准
RMSPE表示模型预测出故障发生数量偏差性,它可以定义为,
RMSPE值越小,说明模型的性能越好。
故障数据集
第一组故障数据集是来自文献Tohma Y,Jacoby R,Murata Y,Yamamoto M.Hyper-geometric distribution model to estimate the number of residual softwarefaults.In Proc.COMPSAC-89,1989:610–617,总共用时22天,86个软件故障被检测出来。第二组故障数据集是来自文献Misra PN.Software reliability analysis.IBM SystemsJournal,1986,22(3):262-270,它是一个支持航空飞行器(Space Shuttle Flights)软件系统,测试用时38周,231个软件故障被检测出来,另外,这个故障数据集包括重要故障(critical errors),主要故障(major errors)和次要故障(minor errors),第三组故障数据集和第四组故障数据集是Musa JD,Software Reliability Data,Cyber Security andInformation Systems Information Analysis Center,January 1980收集和整理的,这两个故障数据集是实际测试(real-world)中得到的,他们的系统代码分别为4和27,他们被研究者广泛用于新建的软件可靠性模型性能评测当中,第三组故障数据集包括测试用时72天,54个故障被检测出来,第四组故障数据集包括测试用时79天,41个故障被检测出来。
为了充分地验证和评估提出模型的拟合和预测能力,我们把故障数据集1和2划分为63%和80%的子故障数据集。也就说,分别用63%和80%的故障数据集来拟合和估计模型的参数,剩余37%和20%的故障数据集用来预测和评估模型的性能。另外,我们把故障数据集3和4划分为60%和80%的子故障数据集。即,分别用60%和80%的故障数据集来拟合和估计模型的参数,剩余40%和20%的故障数据集用来预测和评估模型的性能。
模型的参数估计方法
本发明用的参数估计方法是用最大似然估计方法,它可以表示为,
为了方便计算,两边取对数为,
l=logL
通过对l取导数,联立解方程组,则提出模型的参数(a,b,d,α,和C)可以被估计出来(a*,b*,d*,α*,和C*)。
表2第一组数据集上不同软件可靠增长模型的比较结果(63%故障数据)
模型的性能比较
1)数据集1(DS1):从表2可以看到,在用63%的故障数据集时,同其它模型相比,我们能看到有关SSEpredict的值方面,提出模型的SSEpredict的值最小,是124.0;其次是DSS模型,为241.6;最差是P-Z模型,为851.6。有关Biaspredict的值方面,提出模型的Biaspredict的值最小,仅为3.5;其次为DSS模型,为5.5;最差为ISS模型和P-Z模型,为10.1。有关Variancepredict的值方面,提出模型的Variancepredict的值最小,为5.1;其次为G-O模型,Yamada不完美调试模型-1,Yamada不完美调试模型-2,Zhang-Teng Pham模型,Kapur模型-1和Kapur模型-2,都是6.5;最差为ISS模型和P-Z模型,都为21.7。有关RMSPEpredict的值方面,提出模型的RMSPEpredict的值最小,仅为6.2;其次为G-O模型,Yamada不完美调试模型-1,Yamada不完美调试模型-2,Zhang-Teng Pham,Kapur模型-1和kapur模型-2,都为8.9;最差是ISS模型和P-Z模型,都为23.9。有关AIC的值方面,提出模型的AIC的值也是最小,仅为76.1;其次为DSS模型,是76.2;最差是Zhang-Teng Pham模型,为93.1。虽然DSS模型拟合的很好,它的AIC值和提出模型的AIC值很接近,但是DSS模型的SSEpredict,Biaspredict,Variancpredicte和RMSPEpredict的值却远大于提出模型相应的值。因此,提出的模型在同其它的软件可靠性模型相比,有更好故障拟合效果和预测能力。
表3第一组数据集上不同软件可靠增长模型的比较结果(80%故障数据)
图3(a)给出了提出模型使用故障数据集1的63%进行故障拟合和预测的95%的置信区间,我们也能看出提出的模型很好地拟合故障数据,并准确地预测了在实际的软件测试当中,软件故障发生的数量。另外,在图3(a)中,实际观察到的故障数量较好地落在提出模型的95%上下界中。同时我们也能看到,提出模型有很好的拟合效果和准确的软件故障预测行为。
从表3可以看到,在用80%的故障数据集时,同其它模型相比,我们能看到有关SSEpredict的值方面,提出模型的SSEpredict的值最小,是2.9;其次是DSS模型,为3.6;最差是G-O模型,Yamada不完美调试模型-1和Kapur模型-1,为49.5。有关Biaspredict的值方面,提出模型的Biaspredict的值最小,仅为0.8;其次为DSS模型和Pham Zhang IFD模型,为0.9;最差为G-O模型,Yamada不完美调试模型-1和Kapur模型-1模型,为2.9。有关Variancepredict的值方面,提出模型的Variancepredict的值最小,为1.7;其次为DSS模型,是2.0;最差为ISS模型,P-N-Z模型和P-Z模型,都为5.4。有关RMSPEpredict的值方面,提出模型的RMSPEpredict的值最小,仅为1.9;其次为DSS模型,为2.1;最差是ISS模型和P-Z模型,都为5.9。有关AIC的值方面,提出模型的AIC的值也是最小,仅为95.7;其次为DSS模型,是96.2;最差是Zhang-Teng Pham模型,为115.1。虽然DSS模型拟合得很好,它的AIC值和提出模型的AIC值很接近,但是DSS模型的SSEpredict,Biaspredict,Variancepredict和RMSPEpredict的值却大于提出模型相应的值。因此,提出的模型在同其它的软件可靠性模型相比,有更好故障拟合能力和预测软件发生故障的能力。
图3(b)给出了提出模型使用故障数据集1的80%进行故障拟合和预测的95%的置信区间,我们也能看出提出的模型很好的拟合故障数据,并精准的预测在实际的软件测试当中,软件故障发生的数量。另外,在图3(b)中,实际观察到的故障数量很好地落在提出模型的95%上下界中。同时我们也能看到,提出模型有很好的拟合效果和精确地预测软件故障发生。
表4第二组数据集上不同软件可靠增长模型的比较结果(63%故障数据)
表5第二组数据集上不同软件可靠增长模型的比较结果(80%故障数据)
从图3(a)和(b)可以看出,提出的模型不论是用63%的故障数据,还是用80%的故障数据时,都可以能很好地拟合软件故障数据和准确地预测软件故障发生。因此,可以合理的得出提出的模型有很好的拟合能力和软件故障预测能力。
2)数据集2(DS2):从表4可以看到,在用63%的故障数据集时,同其它软件可靠性模型相比,我们能看到有关SSEpredict的值方面,提出模型的SSEpredict的值最小,是848.6;其次是Kapur模型-1,为1328.5;最差是Yamada不完美调试模型-1,为38647.3。有关Biaspredict的值方面,提出模型的Biaspredict的值最小,仅为7.2;其次为G-O模型,ISS模型,P-Z模型,Zhang-Teng Pham模型,kapur模型-1和kapur模型-2,为9.0;最差为Yamada不完美调试模型-1,为45.7。有关Variancepredict的值方面,提出模型的Variancepredict的值最小,为4.1;Zhang-Teng Pham模型也为4.1;其次为G-O模型,ISS模型,Yamada不完美调试模型-2,P-Z模型,Kapur模型-1和Kapur模型-2,都是4.3;最差为DSS模型和Pham Zhang IFD模型,都为31.5。有关RMSPEpredict的值方面,提出模型的RMSPEpredict的值最小,仅为8.4;其次为Zhang-Teng Pham,都为9.9;最差是Yamada
不完美调试模型-1,都为53.0。有关AIC的值方面,提出模型的AIC的值也是最小,仅为116.9;其次为Yamada不完美调试模型-1,是117.1;最差是Pham Zhang IFD模型,为175.1。虽然Yamada不完美调试模型-1拟合得很好,它的AIC值和提出模型的AIC值很接近,但是Yamada不完美调试模型-1的SSEpredict,Biaspredict,Variancpredicte和RMSPEpredict的值却远远大于提出模型相应的值。因此,提出的模型在同其它的软件可靠性模型相比,有更好地拟合故障数据的能力和更准确地预测软件中发生故障的数量的能力。
图3(c)给出了提出模型使用故障数据集2的63%进行故障拟合和预测的95%的置信区间,我们能看到提出的模型很好地拟合故障数据,并较好地预测软件发生故障的行为。另外,在图3(c)中,实际观察到的故障数量很好地落在提出模型的95%上下界中。同时我们也能看到,提出模型有很好的拟合效果和准确地预测软件故障发生行为。
从表5可以看到,在用80%的故障数据集时,同其它模型相比,我们能看到有关SSEpredict的值方面,提出模型的SSEpredict的值最小,是220.8;其次是Kapur模型-2,为364.0;最差是DSS模型和Pham Zhang IFD模型,为2091.2。有关Biaspredict的值方面,提出模型的Biaspredict的值最小,仅为4.3;同时,G-O模型,ISS模型,Yamada不完美调试模型-1,Yamada不完美调试模型-2,P-Z模型,Zhang Teng Pham模型,Kapur模型-1和Kapur模型-2,都是4.3;其次为P-N-Z模型,为6.9;最差为DSS模型和Pham Zhang IFD模型,为12.2。有关Variancepredict的值方面,提出模型的Variancepredict的值最小,为7.3;其次为P-N-Z模型,是7.5;最差为DSS模型和Pham Zhang IFD模型,都为28.4。有关RMSPEpredict的值方面,提出模型的RMSPEpredict的值最小,仅为8.5;P-N-Z模型也为8.5;其次为Kapur模型-2,为10.8;最差是DSS模型和Pham Zhang IFD模型,都为30.9。有关AIC的值方面,提出模型的AIC的值也是最小,仅为145.3;其次为Yamada不完美调试模型-2,是147;最差是Pham Zhang IFD模型,为208.1。虽然Yamada不完美调试模型-2拟合的很好,它的AIC值和提出模型的AIC值很接近,但是Yamada不完美调试模型-2的SSEpredict,Biaspredict,Variancpredicte和RMSPEpredict的值却大于提出模型相应的值。因此,提出的模型在同其它的软件可靠性模型相比,故障拟合能力和预测软件发生故障的能力都要好于其它软件可靠性模型。
图3(d)给出提出模型使用故障数据集2的80%进行故障拟合和预测的95%的置信区间,我们也能看到提出的模型很好拟合故障数据,并精确地预测软件故障发生的数量。另外,在图3(d)中,实际观察到的故障数量很好地落在提出模型的95%上下界中。同时我们也能看到,提出模型有很好的拟合效果和精确地预测软件故障发生数量。
从图3(c)和(d)可以看出,提出的模型不论是用63%的故障数据,还是用80%的故障数据时,提出的模型很好的拟合故障数据,并且准确地预测软件发生故障的行为。因此,在软件故障拟合和软件故障预测方面,提出的模型都有很好性能。
数据集3(DS3):从表6可以看到,在用60%的故障数据集时,同其它软件可靠性模型相比,我们能看到有关SSEpredict的值方面,提出模型的SSEpredict的值最小,是351.37;其次是P-N-Z模型,为419.85;最差是Kapur模型-1,为65503。有关Biaspredict的值方面,提出模型的Biaspredict的值最小,仅为3.0;其次为P-N-Z模型,为9.0;最差为Kapur模型-2,为129.67。有关Variancepredict的值方面,提出模型的Variancepredict的值最小,为4.66;其次为P-N-Z模型,为4.73;最差为Kapur模型-1,为98.36。有关RMSPEpredict的值方面,提出模型的RMSPEpredict的值最小,仅为5.54;其次为P-N-Z模型,都为5.72;最差是Kapur模型-2,都为129.89。有关AIC的值方面,提出模型的AIC的值也是最小,仅为148.11;其次为G-O模型,是149.41;最差是Pham Zhang IFD模型,为160.5。
表6第三组数据集上不同软件可靠增长模型的比较结果(60%故障数据)
从表7可以看到,在用80%的故障数据集时,同其它模型相比,我们能看到有关SSEpredict的值方面,提出模型的SSEpredict的值最小,是6.7;其次是Pham Zhang IFD模型,为17.44;最差是Kapur模型-1为3943.9。有关Biaspredict的值方面,提出模型的Biaspredict的值最小,仅为0.61;其次为Pham Zhang IFD模型,为0.94;最差为Kapur模型-1,为16.57。有关Variancepredict的值方面,提出模型和Pham Zhang IFD模型的Variancepredict的值都是0.84,为最小;其次为DSS模型,是1.14;最差为Kapur模型-1,为2。80。有关RMSPEpredict的值方面,提出模型的RMSPEpredict的值最小,仅为1.04;其次为Pham Zhang IFD模型,为1.26;最差是Kapur模型-1为16.8。有关AIC的值方面,提出模型的AIC的值也是最小,仅为188.67;其次为G-O模型,是190.01;最差是DSS模型,为198.61。
图4(a)和(b)给出提出模型使用故障数据集3的60%和80%进行故障拟合和预测的95%的置信区间,我们能看到估计的故障数量很好的落在95%的置信区间内,而且提出的模型很好地拟合故障数据,并很好地预测软件发生故障的行为。
3)数据集4(DS4):从表8可以看到,在用60%的故障数据集时,同其它软件可靠性模型相比,我们能看到有关SSEpredict的值方面,提出模型的SSEpredict的值最小,是322.1;其次是Yamada不完美调试模型-2,为1181.5;最差是Kapur模型-1,为2878.6。有关Biaspredict的值方面,提出模型的Biaspredict的值最小,仅为2.74;其次为Yamada不完美调试模型-2,为4.63;最差为Kapur模型-1,为29.57。有关Variancepredict的值方面,提出模型的Variancepredict的值最小,为1.67;其次是Yamada不完美调试模型-2,为10.02;最差为Kapur模型-1,为60.29。有关RMSPEpredict的值方面,提出模型的RMSPEpredict的值最小,仅为3.21;其次为Yamada不完美调试模型-2,是11.04;最差是Kapur模型-1为67.15。有关AIC的值方面,提出模型的AIC的值也是最小,仅为101.76;其次为G-O模型,是102.58;最差是Pham Zhang IFD模型,为131.24。提出的模型在同其它的软件可靠性模型相比,有更好的故障拟合和预测性能。
表7第三组数据集上不同软件可靠增长模型的比较结果(80%故障数据)
表8第四组数据集上不同软件可靠增长模型的比较结果(60%故障数据)
从表9可以看到,在用80%的故障数据集时,同其它模型相比,我们能看到有关SSEpredict的值方面,提出模型的SSEpredict的值最小,是59.42;其次是Yamada不完美调试模型-1,为335.56;最差是Yamada不完美调试模型-2,为16269。有关Biaspredict的值方面,提出模型的Biaspredict的值最小,仅为1.71;其次为Yamada不完美调试模型-1,为4.37;最差为Yamada不完美调试模型-2,为31.08。有关Variancepredict的值方面,提出模型的Variancepredict的值最小,为3.45;其次为Yamada不完美调试模型-2,是7.37;最差为PhamZhang IFD模型,为13.72。有关RMSPEpredict的值方面,提出模型的RMSPEpredict的值最小,仅为3.85;其次为Yamada不完美调试模型-1,为10.11;最差是Yamada不完美调试模型-2,都为31.94。有关AIC的值方面,提出模型的AIC的值也是最小,仅为124.98;其次为Yamada不完美调试模型-2,是128.07;最差是Pham Zhang IFD模型,为166.81。提出的模型在同其它的软件可靠性模型相比,故障拟合能力和预测软件发生故障的能力都要好于其它软件可靠性模型。
从图4(c)和(d)可以看出,提出的模型不论是用60%的故障数据,还是用80%的故障数据时,估计的故障数据都很好的位于95%的置信区间内。另外,提出的模型也很好的拟合故障数据,并且准确地预测软件发生故障的行为。因此,无论是在软件故障拟合还是在软件故障预测方面,提出的模型都有很好性能。
表9第四组数据集上不同软件可靠增长模型的比较结果(80%故障数据)
提出模型优于其它模型机理的分析
从以上的实验结果可以看到,提出的模型性能明显优于其它模型,包括完美调试模型和不完美调试模型。
提出的模型优于其它模型的机理分析如下:
①.考虑故障引进的情况是提出的模型性能优于完美调试模型性能重要原因之一。例如,完美调试模型包括G-O模型,DSS模型和ISS模型。
由于软件测试和调试的复杂性,例如,有客观因素,测试环境的多样性和软件编写的复杂性;有主观因素,测试者或调试者的技术,以及心理因素等。故障引入很大程度上是由于软件复杂性造成的(客观因素),以及调试者对软件复杂性没有深刻认识(主观因素),另外,也和调试者的技术也有一定关系(主观因素)。当软件发布日期临近时,调试者的心理也会产生巨大压力,调试者的心理也会发生巨大变化(主观因素),在这种压力下,当检测出的故障被去除时,很可能引进新的故障。考虑故障被完全去除,而没有引进故障的假设是完全不符合实际的故障被去除的情况。因此,用完美去除故障的假设来建立软件可靠性模型在同我们提出的不完美调试模型进行性能比较时,考虑故障引进的情况是提出模型的性能优于完美调试模型性能重要原因之一。
②.考虑故障引进多种变化的情况是提出模型性能优于其它不完美调试模型性能的重要原因。例如,其它不完美调试模型包括,Yamada不完美调试模型-1,Yamada不完美调试模型-2,P-N-Z模型,P-Z模型,Zhang-Teng Pham模型,Pham Zhang IFD模型,Kapur模型-1和Kapur模型-2。
由于故障引进的复杂性,故障引进率可能表现为随着测试时间逐渐下降,或者故障引进率随测试时间表现为先增后减的变化,或者故障引进随测试时间无规律变化等。其它不完美软件调试模型只考虑故障引进率的一种变化,不是为常数,就是随测试时间下降。完全没有考虑到故障引进的其它变化。而我们提出的模型可以考虑故障引进率为多种变化,既可以为随测试时间下降,还可以随测试时间有先增后减的变化。因此,提出的模型更能适应复杂的测试和调试的情况,有更强的鲁棒性和稳定性。不易受到故障数据集噪音的干扰。而其它的不完美调试模型则受限于故障引进率的单一变化,在某些情况下,会表现的很不稳定,适应性和鲁棒性也会很差。因此,考虑故障引进多种变化的情况是提出模型性能优于其它不完美调试模型性能的重要原因。
③.考虑故障引率非线性变化是提出模型性能优于其它不完美调试模型性能的另一个重要原因。
为建模方便,Zhang-Teng Pham模型,Pham Zhang IFD模型,Kapur模型-1和Kapur模型-2假设故障引进率为常量;Yamada不完美调试模型-2和P-N-Z模型也假设故障引进率为常量,并且故障内容函数(故障总个数)随测试时间线性变化。由于故障引进的复杂性,故障引进率极有可能会表现为非线性变化,而不是线性变化或者常量。而我们提出的模型正是假设故障引进服从Weibull分布,故障引进率随测试时间表现为非线性变化。虽然Yamada不完美调试模型-1和P-Z模型的故障引进率都随测试时间表现为非线性变化,但是由于Yamada不完美调试模型-1是假设故障引进率随测试时间逐渐增长,这种情况与实际调试情况不符。因为在软件测试过程中,引进的故障会越来越少,所以故障引进率不会随测试时间逐渐增长。另外,P-Z模型假设故障引进服从指数分布,但是由于我们提出模型假设故障引进服从Weibull分布包含指数分布的特殊情况,所以我们提出的模型能更好的适应软件测试和调试情况,提出模型的性能也会好于Yamada不完美调试模型-1和P-Z模型的性能。
综上所述,提出的模型优于其它模型的原因为,一是提出的模型考虑故障引进的情况,更符合实际的软件测试和调试过程;二是假设故障引进服从Weibull分布能够包括更多在软件测试和调试过程中,故障引进率变化情况;三是假设故障引进率非线性变化更符合故障引进随测试复杂变化的情况。
提出模型的参数敏感性分析
一般来说,模型的参数比较多时,需要进行模型的参数敏感性分析。主要目的是考察哪些参数对模型的评估效果和预测有重要影响,也就是考察一下模型的鲁棒性(robust)。而具体使用的方法就是改变模型的某个参数值,模型其它参数则保持不变。图5(a),(b),(c),(d)和(e)显示出提出模型的参数a,b,α,d和C的敏感性分析的情况。从图5(a),(b)和(e)中,可以清晰的看到提出模型期望估计的累计检测出的故障数量随着期望最终引进故障的数量a,故障检测率b和期望最初存在软件中的故障数量C变化而大幅度地发生变化。因此,提出模型的参数a,b和C都是有影响的参数。
总之本发明给出了Weibull分布的相关概念和表示方法,然后分析在软件调试过程中,故障引进服从Weibull分布的原因。在此基础上,用Weibull分布进行故障引进过程的相应模拟,并提出一个基于Weibull分布引进故障的软件可靠性增长模型。同时给出相应的模型推导过程。为了验证提出模型的拟合故障数据和预测软件中故障发生数量的能力,本文给出了相应的故障数据集和有关的模型性能比较标准,并对提出的模型用最大似然估计法进行相应的模型参数估计。实验结果表明,提出的模型在同多种软件可靠性增长模型(包括完美调试软件可靠性增长模型和不完美调试软件可靠性增长模型)比较后,有更好的故障拟合效果和更准确地预测软件故障发生数量的能力。为了考察提出模型的参数变化对软件可靠性评估和软件故障预测的影响程度,我们也给出相应的参数敏感性分析。参数敏感性分析实验的结果表明提出模型的参数a,b和C都是有影响的参数。
考虑到实际测试过程中,检测到的故障不是被立即和完美地去除,而是检测和去除故障之间会存在时间延迟,在去除故障时可能引进新的故障。因此,未来研究将在本文研究的基础上就故障排错延迟问题进行深入研究。
Claims (1)
1.一种基于Weibull分布引进故障的软件可靠性增长模型,其特征是包括以下步骤:
(1)故障总数函数通过下式表示:
a(t)=aF(t)+C (3)
其中,a(t)表示故障总数函数,a表示最终期望引进故障的总的数量,F(t)是故障引进的分布函数,C是最初期望的软件内存在的故障的数量;
(2)故障引进强度函数通过下式表示:
η(t)=aF′(t) (4)
其中η(t)表示故障引进强度函数;
(3)假设故障总数函数(3)服从Weibull分布,即故障总数函数a(t)和故障引进强度函数η(t)可以分别表示为:
a(t)=aF(t)+C=a[1-exp(-αtd)]+C (5)
η(t)=aF′(t)=aαdtd-1exp(-αtd) (6)
其中α为率参数,d为形状参数,t为时间;
(4)按照故障引进过程考察故障引进率随测试时间发生变化的情况,因此,故障引进强度函数可以改写为以下形式,
其中,h(t)表示故障引进率函数,[a+C-a(t)]表示到t时刻为止,期望剩余故障引进故障的数量,在式(7)中[a+C-a(t)]表示一个随时间增长而非增长的函数,因此,故障引进强度函数的变化趋势是由故障引进率的变化决定的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910083304.1A CN109815149A (zh) | 2019-01-29 | 2019-01-29 | 一种基于Weibull分布引进故障的软件可靠性增长模型 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910083304.1A CN109815149A (zh) | 2019-01-29 | 2019-01-29 | 一种基于Weibull分布引进故障的软件可靠性增长模型 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109815149A true CN109815149A (zh) | 2019-05-28 |
Family
ID=66605672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910083304.1A Withdrawn CN109815149A (zh) | 2019-01-29 | 2019-01-29 | 一种基于Weibull分布引进故障的软件可靠性增长模型 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109815149A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111045938A (zh) * | 2019-12-09 | 2020-04-21 | 山西大学 | 基于Pareto分布故障引进开源软件可靠性建模方法 |
CN111045939A (zh) * | 2019-12-09 | 2020-04-21 | 山西大学 | Weibull分布的故障检测开源软件可靠性建模方法 |
CN111309626A (zh) * | 2020-03-08 | 2020-06-19 | 山西大学 | 基于giss分布故障引进的开源软件可靠性建模方法 |
CN111488281A (zh) * | 2020-05-28 | 2020-08-04 | 山西大学 | 一种基于随机引进故障的开源软件可靠性建模方法 |
CN111737113A (zh) * | 2020-05-29 | 2020-10-02 | 山西大学 | 故障检测和引进非线性变化的开源软件可靠性建模方法 |
CN111782548A (zh) * | 2020-07-28 | 2020-10-16 | 南京航空航天大学 | 一种软件缺陷预测数据处理方法、装置及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103268279A (zh) * | 2013-02-27 | 2013-08-28 | 中国信息安全测评中心 | 基于复合泊松过程的软件可靠性预测方法 |
CN103761183A (zh) * | 2013-12-29 | 2014-04-30 | 哈尔滨工业大学 | 考虑fde和fce的基于isq的软件可靠性增长模型的建立方法 |
CN104008048A (zh) * | 2013-11-07 | 2014-08-27 | 哈尔滨工程大学 | 一种考虑检测效用及修正效用的软件可靠性检测方法 |
US20150025872A1 (en) * | 2013-07-16 | 2015-01-22 | Raytheon Company | System, method, and apparatus for modeling project reliability |
CN106406229A (zh) * | 2016-12-20 | 2017-02-15 | 吉林大学 | 一种数控机床故障诊断方法 |
-
2019
- 2019-01-29 CN CN201910083304.1A patent/CN109815149A/zh not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103268279A (zh) * | 2013-02-27 | 2013-08-28 | 中国信息安全测评中心 | 基于复合泊松过程的软件可靠性预测方法 |
US20150025872A1 (en) * | 2013-07-16 | 2015-01-22 | Raytheon Company | System, method, and apparatus for modeling project reliability |
CN104008048A (zh) * | 2013-11-07 | 2014-08-27 | 哈尔滨工程大学 | 一种考虑检测效用及修正效用的软件可靠性检测方法 |
CN103761183A (zh) * | 2013-12-29 | 2014-04-30 | 哈尔滨工业大学 | 考虑fde和fce的基于isq的软件可靠性增长模型的建立方法 |
CN106406229A (zh) * | 2016-12-20 | 2017-02-15 | 吉林大学 | 一种数控机床故障诊断方法 |
Non-Patent Citations (3)
Title |
---|
KWANG YOON SONG等: ""A Software Reliability Model with a Weibul Fault Detection Rate Function Subject to Operating Environments"", 《APPLIED SCIENCES》 * |
王金勇: ""考虑故障引进的软件可靠性增长模型研究"", 《中国博士学位论文全文数据库 信息科技辑》 * |
米晓萍 等: ""考虑排错过程引进故障的开源软件可靠性模型研究"", 《计算机应用研究》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111045938A (zh) * | 2019-12-09 | 2020-04-21 | 山西大学 | 基于Pareto分布故障引进开源软件可靠性建模方法 |
CN111045939A (zh) * | 2019-12-09 | 2020-04-21 | 山西大学 | Weibull分布的故障检测开源软件可靠性建模方法 |
CN111045939B (zh) * | 2019-12-09 | 2021-03-30 | 山西大学 | Weibull分布的故障检测开源软件可靠性建模方法 |
CN111309626A (zh) * | 2020-03-08 | 2020-06-19 | 山西大学 | 基于giss分布故障引进的开源软件可靠性建模方法 |
CN111488281A (zh) * | 2020-05-28 | 2020-08-04 | 山西大学 | 一种基于随机引进故障的开源软件可靠性建模方法 |
CN111488281B (zh) * | 2020-05-28 | 2021-09-28 | 山西大学 | 一种基于随机引进故障的开源软件可靠性建模方法 |
CN111737113A (zh) * | 2020-05-29 | 2020-10-02 | 山西大学 | 故障检测和引进非线性变化的开源软件可靠性建模方法 |
CN111737113B (zh) * | 2020-05-29 | 2021-09-28 | 山西大学 | 故障检测和引进非线性变化的开源软件可靠性建模方法 |
CN111782548A (zh) * | 2020-07-28 | 2020-10-16 | 南京航空航天大学 | 一种软件缺陷预测数据处理方法、装置及存储介质 |
CN111782548B (zh) * | 2020-07-28 | 2022-04-05 | 南京航空航天大学 | 一种软件缺陷预测数据处理方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109815149A (zh) | 一种基于Weibull分布引进故障的软件可靠性增长模型 | |
CN106528975B (zh) | 一种应用于电路与系统的故障预测与健康管理方法 | |
Sankararaman et al. | Why is the remaining useful life prediction uncertain? | |
Ross et al. | Nonparametric monitoring of data streams for changes in location and scale | |
CN104462757B (zh) | 基于监测数据的Weibull分布可靠性序贯验证试验方法 | |
Fan et al. | A sequential Bayesian approach for remaining useful life prediction of dependent competing failure processes | |
CN106446317A (zh) | 一种基于数学模型的密封式继电器贮存寿命预测方法 | |
CN107436983A (zh) | 一种基于多元样本差异的o型橡胶密封圈寿命预测方法 | |
CN107436963A (zh) | 一种基于Copula函数多元退化的O型橡胶密封圈寿命预测方法 | |
CN110197288A (zh) | 故障影响下设备的剩余使用寿命预测方法 | |
CN109857582B (zh) | 一种基于排错过程引进故障的开源软件可靠性建模方法 | |
CN109766281B (zh) | 一种故障检测率下降变化的不完美调试软件可靠性模型 | |
CN111222095B (zh) | 一种大坝变形监测中的粗差判别方法、装置及系统 | |
CN104198912A (zh) | 一种基于数据挖掘的硬件电路fmea分析方法 | |
CN112000081B (zh) | 基于多块信息提取和马氏距离的故障监测方法及系统 | |
CN103678938B (zh) | 一种面向空间形状和误差范围的退化模型一致性检验方法 | |
CN112100574A (zh) | 一种基于重采样的aakr模型不确定度计算方法及系统 | |
CN104483958A (zh) | 一种复杂炼化过程自适应数据驱动故障诊断方法及装置 | |
CN111338310B (zh) | 一种工业过程稳态工况识别与分类方法 | |
CN103970129B (zh) | 控制阀粘滞检测方法 | |
CN105989095B (zh) | 顾及数据不确定性的关联规则显著性检验方法及装置 | |
Escobet et al. | A fault/anomaly system prognosis using a data-driven approach considering uncertainty | |
Sankararaman et al. | Uncertainty in prognostics: Computational methods and practical challenges | |
CN112100919B (zh) | 一种基于re-cf-ekf算法的滚动轴承剩余寿命预测方法 | |
CN113205215A (zh) | 一种基于知识的战场态势预测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20190528 |