CN111488281A - 一种基于随机引进故障的开源软件可靠性建模方法 - Google Patents
一种基于随机引进故障的开源软件可靠性建模方法 Download PDFInfo
- Publication number
- CN111488281A CN111488281A CN202010282889.2A CN202010282889A CN111488281A CN 111488281 A CN111488281 A CN 111488281A CN 202010282889 A CN202010282889 A CN 202010282889A CN 111488281 A CN111488281 A CN 111488281A
- Authority
- CN
- China
- Prior art keywords
- model
- open source
- source software
- faults
- exp
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Abstract
本发明属于开源软件可靠性模型技术领域,具体涉及一种基于随机引进故障的开源软件可靠性建模方法。本发明利用随机微分方程模拟了开源软件开发过程中的故障引入过程,建立了相应的开源软件可靠性模型,模型参数采用最小二乘估计(LSE)方法进行估计,使用来自Apache开源软件项目的三个故障数据集来比较模型性能。用完全调试和不完全调试的闭源软件可靠性模型以及开源软件可靠性模型进行比较,提出的模型具有最佳的拟合和预测性能。因此,考虑到开源软件引入故障的随机性变化,符合开源软件开发过程中引入故障的实际变化。该模型可以作为评估开源软件可靠性的工具,帮助开发人员或管理人员在开源软件开发过程中对软件质量进行管理和评估。
Description
技术领域
本发明属于开源软件可靠性模型技术领域,具体涉及一种基于随机引进故障的开源软件可靠性建模方法。
背景技术
近几十年来,随着互联网技术的发展,开源软件的开发方式得到了迅速的发展。与传统的闭源软件开发相比,开源软件是由世界各地的志愿者和用户通过网络开发和测试的。开源软件是一种动态的、不确定的、网络化的和分布式的开发过程。现代知名公司和企业都有开源软件开发项目。比如谷歌、微软、阿里巴巴等,特别是一些云计算和大数据应用系统也采用开源的方式进行开发和测试。虽然开源软件开发在业界中得到了广泛的应用,但其可靠性仍然是一个有待研究的问题。
为了提高开源软件的可靠性,业界普遍采用频繁发布的方法。虽然频繁发布开源软件在一定程度上可以改善和提高开源软件的可靠性,但这种简单的频繁发布方法存在一些问题。首先,如果开源软件发布得太早,软件就没有经过充分的测试,软件中还有太多的错误。它们将影响志愿者和用户的使用,迫使志愿者和用户不使用该软件,而是寻找其他替代软件。第二,如果软件发布太晚,就会错失良机。同时志愿者和用户将对该软件失去兴趣,而且逐渐会抛弃该软件。
为了评估开源软件的可靠性,有一些可靠性模型。例如,Li等提出了一种开源软件的可靠性模型,该模型有先增后减的故障检测率。通过对开源软件故障数据集的研究,Wang和Mi建立了一个开源软件可靠性模型,其故障检测率呈下降趋势。Zhou和Davis通过一些实验,得出了闭源软件可靠性模型可以用来评估开源软件可靠性的结论。Yamada和Tamura提出了一些基于随机微分方程的开源软件可靠性模型。以上模型均为完美调试的软件可靠性模型,即当检测到的故障被排除后,不再引入新的故障。但是完美调试的假设不符合开源软件开发的实际情况。
发明内容
本发明针对上述问题本发明提供了一种基于随机引进故障的开源软件可靠性建模方法,所述故障介绍包括两个方面:一种是当软件变化引起的故障被排除时,引入的新故障。例如,新版本开源软件发布后软件功能、特性或模块的变化所带来的故障。另一种是在去除以前软件版本中检测到的剩余故障时引入的新故障。这两种引入的故障在开源软件故障报告中表现出不规则的变化,并且引入的故障的行为是不确定的。因此,在开源软件开发过程中,故障的引入是随机的。
为了达到上述目的,本发明采用了下列技术方案:
一种基于随机引进故障的开源软件可靠性建模方法,包括以下步骤:
步骤1,考虑到(t,t+Δt)中引入的故障数量与软件故障本身有关,给出以下随机微分方程:
其中,φ(t)表示故障内容函数,μ(t)是软件故障引进的强度函数,表示故障引进的变化,而且是一个非负数值,φ(0)=a.,a表示最初期望检测出故障的数量;
其中,γ(t)表示标准的高斯白色噪音,σ表示不规则变化大小,它是一个正常量值;
其中,θ和d分别表示故障引入的强度率参数和形状参数;
步骤4,假设瞬时检测到的故障数与软件中剩余的故障数成正比,导出下列微分方程:
其中,ψ(t)表示均值函数,即期望检测出故障的数量,b表示故障检测率;
步骤5,将式(3)代入式(4),并假设故障引入的强度函数服从Weibull 分布,这是因为Weibull分布能够很好地模拟开源软件引入故障的复杂过程,得到模型的表达式:
进一步,所述基于随机引进故障的开源软件可靠性建模方法得到模型表达式详细的推导过程如下:
(A.2)表示为下式,
其中,η(t)是一个高斯分布,表示一维Wiener过程,Wiener过程的属性有:
Pr[η(0)=0]=1
E[η(t)]=0
E[η(t)η(t')]=Min[t,t']
假设故障引进的强度函数服从Weibull分布,得出
把(A.6)代入(A.5),η(t)密度函数定义为,
解出(A.5),
此外,(A.1)变换为下式,
dψ(t)=bφ(t)dt-bψ(t)dt (A.9)
dψ(t)+bψ(t)dt=bφ(t)dt (A.10)
(A.10)的两边乘以exp(bt),
exp(bt)dψ(t)+bexp(bt)ψ(t)dt=bexp(bt)φ(t)dt (A.11)
(A.11)两边积分得,
∫exp(bt)dψ(t)+bexp(bt)ψ(t)dt=∫bexp(bt)φ(t)dt (A.12)
exp(bt)ψ(t)=∫bexp(bt)φ(t)dt
ψ(t)=exp(-bt)∫φ(t)d(exp(bt))
=exp(-bt)(φ(t)exp(bt)-∫exp(bt)dφ(t))
=φ(t)-exp(-bt)∫exp(bt)dφ(t) (A.13)
用泰勒公式扩展下式,
exp(-θtd)=1 (A.15)
td-1=0 (A.16)
把(A.15)和(A.16)代入(A.14)得,
把(A.17)代入(A.13)得,
当t=0,ψ(t)=0和φ(t)=a时,
ψ(0)=φ(0)-a(1+C)
0=a-a(1+C)
C=0 (A.19)
把(A.19)代入(A.18)得,
进一步,所述基于随机引进故障的开源软件可靠性建模方法得到模型的参数的估计方法为:最小二乘估计对模型的参数值估计;在软件可靠性建模中,最大似然估计估计模型的参数值。由于故障数据集样本量小,用最小二乘估计和最大似然估计模型参数值的误差相差不大,此外,在某些情况下,最大似然函数的值可能不存在,最小二乘估计方法表示为:
在式(15)中,ψ(tk)表示到时间tk为止,估计检测出故障的数量,Λ(tk)表示到时间tk为止,观察到的故障数,n表示故障数据集的样本量大小;
式(15)两边取偏微分得,
解微分方程组(16),得到所述基于随机引进故障的开源软件可靠性建模方法得到模型的参数的估计值。
与现有技术相比本发明具有以下优点:
本发明提出考虑故障引入随机变化的开源软件可靠性模型可以有效地应用于实际的开源软件可靠性评估;此外,还利用随机方程模拟了故障引入的不规则变化;该模型是在开源软件开发环境下建立的,更符合引入故障的实际规律变化;该模型具有更好的预测性能和拟合性能,可以帮助开发人员和管理人员评估开源软件的可靠性,指导开源软件的优化发布。
本发明首先提出了在开源软件开发、测试和调试过程中,利用随机微分方程来模拟故障引入的随机变化,并建立了相应的开源软件可靠性模型。
本发明提出在开源软件开发、测试和调试过程中,故障引入具有随机变化的特点。
本发明假设开源软件开发、测试和调试过程中引入故障的随机变化与开源软件环境下引入故障的实际变化是一致的。
附图说明
图1a-r为累计检测到故障数量比较;
图2a-e为提出模型用100%of DS1-3进行的参数敏感分析。
具体实施方式
实施例1
开源软件故障数据集说明
本发明使用的故障数据集是从三个Apache开源软件产品项目 (https://issues.Apache.org/jira/issues)中收集的,如KNOX、NIFI和TEZ。开源软件的每个项目都有三个连续的版本。从Apache开源软件产品KNOX项目中收集的第一个故障数据集(DS1)有三个子集,分别是KNOX 0.3.0(DS1-1)、 knox0.4.0(DS1-2)和knox0.5.0(DS1-3)。Apache开源软件产品NIFI项目采集的第二组故障数据集有NIFI 1.2.0(DS2-1)、NIFI 1.3.0(DS2-2)和NIFI 1.4.0 (DS2-3)三个子集。从Apache开源软件产品的TEZ项目中收集到的第三个故障数据集有三个子集:TEZ 0.2.0(DS3-1)、TEZ 0.3.0(DS3-2)和TEZ 0.4.0 (DS3-3)。请注意,故障跟踪系统(bug tracking systems)中的故障属性包括类型(Type)、状态(Status)和解决方案(Resolution)等。我们收集的故障数据类型包括所有标准问题类型(allstandard issue types)和所有子标准的问题类型 (all sub-standard issue types)。故障数据状态包括打开(OPEN)、正在进行 (INPROGRESS)、重新打开(REOPENED)、解决(RESOLVED)和关闭 (CLOSED)。故障数据排除重复(Duplicate)、无效(Invalid)、无问题(Not A Problem)、无法重复(Cannot Reproduce)、无缺陷(Not A Bug)。表1列出了本文使用的故障数据集的详细信息。表2给出用于比较的所有软件可靠性模型。表3~5分别显示使用DS1、DS2和DS3故障数据集估计提出模型的参数值情况。
表1.开源软件故障数据集
表2.软件可靠性模型
表3.提出模型用故障数据集DS1估计的模型参数值
表4提出模型用故障数据集DS2估计的模型参数值
表5.提出模型用故障数据集DS3估计的模型参数值
实施例2
模型比较标准
本发明采用了五种模型比较准则来评价模型的性能。
1.均值平方误差(Mean Square Error,MSE)
和
2.R-square(R2)
3.均值平方误差平方根(The Root Mean Square Error,RMSE)
和
4.The Theil statistic(TS)
和
5.Bias
和
在式(6)~式(14)中,ψ(tk)表示到时间tk为止,估计检测出故障的数量。Λ(tk)表示到时间tk为止,观察到的故障数。n和m表示故障数据集的样本量大小。在式(7,10,12,14)中,(n-m)故障点用于估计模型参数值,剩余故障点用于计算预测值。MSE(MSEpredict)、RMSE(RMSEpredict)、TS(TSpredict)和 Bias(Biaspredict)值越小,模型的预测或拟合性能越好。R2值越大,模型的拟合性能越好。
实施例3
模型的性能比较
在拟合方面,采用100%的故障数据对模型参数值进行拟合和估计,并比较了模型的拟合性能。在预测方面,利用85%的故障数据对模型参数值进行拟合和估计,利用剩余故障数据(25%的故障数据)对模型预测性能进行比较。
从表6可以看出,使用100%的数据(DS1-1),提出模型的MSE、R2、RMSE、 TS和Bais分别为49.5、0.9249、7.04、14.9和5.95。该模型比G-O模型、DSS 模型、ISS模型、Yamada不完美调试模型-2、P-N-Z模型、GGO模型、Wang 模型和Li模型具有更好的拟合性能。第二名是ISS模型,具有MSE(52.09)、 R2(0.921)、RMSE(7.22)、TS(15.28)和Bais(6.16)。最差的是Li模型,具有MSE(178.49)、R2(0.7292)、RMSE(13.36)、TS(28.29)和Bais(11.25)。使用100%的数据(DS1-2)时,提出模型的MSE、R2、RMSE、TS和Bais值分别为118.8、0.9424、10.9、16.01和8.36。提出的模型有最佳的拟合性能。第二名是DSS模型,具有MSE(124.31)、R2(0.9397)、RMSE(11.15)、TS(16.37) 和Bais(8.64)。最差的是具有MSE(994.26)、R2(0.518)、RMSE(31.53)、 TS(46.3)和Bais(26.66)的Li模型。使用100%的数据(DS1-3),模型的 MSE、R2、RMSE、TS和Bais值分别为21.9、0.9391、4.68、15.5和3.8。其中,提出模型的拟合性能最好。第二名是具有MSE(26.32)、R2(0.9268)、RMSE (5.13)、TS(16.99)和Bais(4.56)的DSS模型。最差的是具有MSE(113.92)、 R2(0.683)、RMSE(10.67)、TS(35.34)和Bais(7.89)的Li模型。这些结果可参见图1(a)、1(c)和1(e)。
表7显示,使用100%的数据(DS2-1),提出模型的MSE、R2、RMSE、 TS和Bais值分别为2343.2、0.9142、48.41、22.44和34.44。提出模型比G-O 模型、DSS模型、ISS模型、Yamada不完美调试模型-2、P-N-Z模型、GGO模型、Wang模型和Li模型具有更好的拟合性能。第二名是具有MSE(2450.7)、 R2(0.9103)、RMSE(49.5)、TS(22.95)和Bais(35.99)的GGO模型。最差的是具有MSE(16313)、R2(0.4028)、RMSE(127.72)、TS(59.22)和Bais (111.16)的Li模型。使用100%的数据(DS2-2),模型的MSE、R2、RMSE、 TS和Bais值分别为443.25、0.8214、21.05、32.51和16.19。提出模型具有最佳的拟合性能。第二名是具有MSE(476.11)、R2(0.8082)、RMSE(21.82)、TS (33.7)和Bais(17.23)的DSS模型。最差的是具有MSE(1658.9)、R2(0.3317)、 RMSE(40.73)、TS(62.9)和Bais(36.45)的Li模型。使用100%的数据(DS2-3),提出模型的MSE、R2、RMSE、TS和Bais值分别为1257、0.7313、35.45、42.15 和29.46。其中,提出模型的拟合性能最好。第二名是P-N-Z模型,具有MSE (1297.9)、R2(0.7225)、RMSE(36.03)、TS(42.83)和Bais(29.84)。最差的是具有MSE(3660.9)、R2(0.2174)、RMSE(60.51)、TS(71.93)和Bais (42.6)的Li模型。图1(g)、1(i)和1(k)显示了模型的拟合性能比较。
表8显示,使用100%的数据(DS3-1),提出模型的MSE、R2、RMSE、 TS和Bais分别为172.74、0.9869、13.14、5.39和11.55。提出模型比G-O模型、 DSS模型、ISS模型、Yamada不完美模型-2、P-N-Z模型、GGO模型、Wang 模型和Li模型具有更好的拟合性能。第二名是G-O模型,具有MSE(272.52)、 R2(0.9792)、RMSE(16.51)、TS(6.79)和Bais(13.71)。最差的是具有MSE (7708)、R2(0.4149)、RMSE(87.8)、TS(36.04)和Bais(63.54)的Li模型。使用100%的数据(DS3-2),提出模型的MSE、R2、RMSE、TS和Bais值分别为220.49、0.8165、14.85、35.81和11.51。提出模型具有最佳的拟合性能。第二名是P-N-Z模型,具有MSE(262.13)、R2(0.7819)、RMSE(16.19)、TS (39.04)和Bais(12.77)。最差的是具有MSE(1004.4)、R2(0.1642)、RMSE (31.69)、TS(76.42)和Bais(21.3)的Wang模型。使用100%的数据(DS3-3),提出模型的MSE、R2、RMSE、TS和Bais值分别为59.43、0.7985、7.71、38.62 和5.45。其中,提出模型的拟合性能最好。第二名是具有MSE(65.37)、R2 (0.7783)、RMSE(8.08)、TS(40.5)和Bais(5.54)的ISS模型。最差的是具有MSE(240.35)、R2(0.185)、RMSE(15.5)、TS(77.66)和Bais(10.26) 的Wang模型。从图1(m)、1(o)和1(q),我们可以看到模型的拟合性能比较。
从表9可以看出,使用85%的数据(DS1-1),提出模型的MSE、RMSE、 TS和Bais值分别为47.32、6.88、8.17和0.83。提出模型比G-O模型、DSS模型、ISS模型、Yamada不完美调试模型-2、P-N-Z模型、GGO模型、Wang模型和Li模型具有更好的预测性能。第二名是具有MSE(49.52)、RMSE(7.04)、TS(8.36)和Bais(0.86)的ISS模型。最差的是具有MSE(868.29)、RMSE(29.47)、TS(35)和Bais(4.46)的Li模型。从图1(b)可以看出,该模型的拟合性能优于G-O模型、DSS模型、ISS模型、Yamada不完美调试模型-2、 P-N-Z模型、GGO模型、Wang模型和Li模型。利用85%的数据(DS1-2),模型的MSE、RMSE、TS和Bais值分别为290.53、17.04、14.68和2.1。提出模型具有最好的预测性能。第二名是具有MSE(384.31)、RMSE(19.6)、TS(16.89)和Bais(2.88)的G-O模型。最差的是具有MSE(860.68)、RMSE(29.34)、 TS(25.27)和Bais(3.98)的DSS模型。从图1(d)可以看出,提出模型的拟合性能比ISS模型和P-N-Z模型差,比其他模型好。但提出模型的预测性能优于ISS模型和P-N-Z模型。利用85%的数据(DS1-3),提出模型的MSE、RMSE、 TS和Bais值分别为281.12、16.77、27.03和2.16。其中,提出模型的预测性能最好。第二名是具有MSE(332.53)、RMSE(18.24)、TS(29.4)和Bais(2.33) 的DSS模型。最差的是具有MSE(991.27)、RMSE(31.48)、TS(50.76)和 Bais(4.29)的Li模型。图1(f)表明,提出的模型具有最佳的拟合和预测性能。
从表10可以看出,使用85%的数据(DS2-1),提出模型的MSE、RMSE、 TS和Bais值分别为3788、61.55、15.59和8.47。提出模型比G-O模型、DSS 模型、ISS模型、Yamada不完美调试模型-2、P-N-Z模型、GGO模型、Wang 模型和Li模型具有更好的预测性能。第二名是P-N-Z模型,具有MSE(6923)、 RMSE(83.2)、TS(21.08)和Bais(10.43)。最差的是具有MSE(50748)、RMSE (225.27)、TS(57.08)和Bais(34.65)的Li模型。从图1(h)可以看出,提出模型的拟合性能是一般的。然而,该模型的预测性能优于其他模型。用85%的数据(DS2-2),提出模型的MSE、RMSE、TS和Bais值分别为140.89、11.87、10.79和1.48。提出模型具有最好的预测性能。第二名是具有MSE(317.25)、 RMSE(17.81)、TS(16.2)和Bais(2.18)的DSS模型。最差的是具有MSE (4943.9)、RMSE(70.31)、TS(63.94)和Bais(10.61)的Wang模型。从图 1(j)可以看出,提出模型的拟合性能比DSS模型、ISS模型、Yamada不完美调试模型-2和P-N-Z模型差,比G-O模型、GGO模型、Wang模型和Li模型好。但提出模型的预测性能优于其他模型。利用85%的数据(DS2-3),模型的 MSE、RMSE、TS和Bais值分别为257.22、16.04、8.16和2.08。其中,提出模型的预测性能最好。第二名是具有MSE(6141.7)、RMSE(78.37)、TS(39.86) 和Bais(9.02)的ISS模型。最差的是具有MSE(29722)、RMSE(172.4)、TS (87.7)和Bais(25.62)的Li模型。图1(l)表明,该模型的拟合性能比ISS 模型差,比其他模型好。此外,该模型具有最佳的预测性能。
表11显示,使用85%的数据(DS3-1),提出模型的MSE、RMSE、TS和 Bais值分别为23.86、4.88、1.26和0.58。提出模型比G-O模型、DSS模型、ISS 模型、Yamada不完美调试模型-2、P-N-Z模型、GGO模型、Wang模型和Li模型具有更好的预测性能。第二名是具有MSE(51.27)、RMSE(7.16)、TS(1.85) 和Bais(0.99)的ISS模型。最差的是具有MSE(8394.4)、RMSE(91.62)、 TS(23.66)和Bais(13.84)的Wang模型。从图1(n)可以看出,该模型的拟合和预测性能优于其他模型。利用85%的数据(DS3-2),提出模型的MSE、 RMSE、TS和Bais值分别为264.96、16.28、16.44和2.25。提出模型具有最好的预测性能。第二名是具有MSE(1719.6)、RMSE(41.47)、TS(41.88)和 Bais(5.46)的GGO模型。最差的是具有MSE(7561.4)、RMSE(86.96)、TS (87.82)和Bais(12.47)的Wang模型。从图1(p)可以看出,提出模型的拟合和预测性能优于其他模型。利用85%的数据(DS3-3),模型的MSE、RMSE、TS和Bais值分别为243.23、15.6、32.02和1.96。其中,提出模型的预测性能最好。第二名是具有MSE(563.23)、RMSE(23.73)、TS(48.72)和Bais(3.22) 的ISS模型。最差的是具有MSE(1913.5)、RMSE(43.74)、TS(89.8)和Bais (6.26)的Wang模型。图1(r)表明,提出模型的拟合性能比DSS模型、ISS 模型和P-N-Z模型差,比其它模型好。此外,提出模型具有最好的预测性能。
与其他模型相比,提出模型具有更好的预测性能和拟合性能,除了使用了 85%的数据(DS1-2、DS2-2和DS2-3)。将DSS模型、ISS模型、P-N-Z模型和 GGO模型等闭源软件可靠性模型应用于开源软件可靠性评估中,其拟合和预测性能较好。但是没有一个闭源软件可靠性模型能够适应所有的开源软件开发环境。这是因为开源软件开发过程是复杂的、动态的、不确定的。与其它模型相比,Wang模型和Li模型的拟合和预测性能一般。由于这两种开源软件可靠性模型都是不考虑在开源软件开发过程中引入故障的情况下建立的完美的调试模型,因此其拟合和预测性能一般。考虑到故障引入的复杂性,即故障引入的随机性变化,提出模型比其它模型具有更好的拟合和预测性能。因此,提出模型能够更好地适应开源软件开发环境,并可用于实际的开源软件可靠性评估。
表6.用100%ofdata(DS1)进行模型性能比较
表7.用100%of data(DS2)进行模型性能比较
表8.用100%of data(DS3)进行模型性能比较
表9.用85%of data(DS1)进行模型性能比较
表10.用85%of data(DS2)进行模型性能比较
表11.用85%of data(DS3)进行模型性能比较
实施例4
参数敏感性分析
从图2中,(a)表示提出模型的参数a的变化;(b)表示提出模型的参数b 的变化;(c)表示提出模型的参数θ的变化;(d)表示提出模型的参数d的变化。 (e)表示提出模型的参数σ的变化,可以看到提出模型的参数a,b,θ,d和σ具有重要影响。原因分析如下:
1)在开源软件开发过程中,软件中的原始故障总数对软件开发有着重要的影响。因为开源软件中的故障数量直接影响和决定了开源软件的质量和可靠性。它是建立开源软件可靠性模型时必须考虑的因素。
2)在开源软件开发和测试过程中,故障检测率也是一个重要因素。它决定了开源软件中的故障被检测到的概率。它的变化直接影响到开源软件中检测到的故障数量。它还决定了开源软件中剩余的故障数。因此,在建立开源软件可靠性模型时,必须考虑故障检测率的影响。
3)故障引入也会影响开源软件的可靠性建模。它的变化与开源软件功能和特性的变化有关。同时,它的变化也反映了开源软件完全去除故障的效率。
4)该模型的参数d也是一个重要的参数。它的变化反映了开源软件引入故障的复杂变化。其复杂的变化反映了开源软件引入故障的复杂性、不确定性和随机性。例如,所提出的模型很好地拟合了实际累计检测故障数量随测试时间变化的形状。
5)不规则波动因子也是一个重要的参数。在开源软件的开发、测试和调试过程中,故障的引入呈现出随机性的变化。故障引进的强度函数随时间呈不规则变化。其变化也反映了故障引入的复杂性、不确定性和随机性。
总的来说,提出的模型的所有参数都是重要的参数。该模型能够很好地适应开源软件开发过程中复杂的、不确定的变化。参数敏感性分析也表明,在建立开源软件可靠性模型时需要考虑很多因素,特别是影响开源软件开发过程中故障引入随机变化的因素。
实施例5
有效性威胁分析
该模型的不足主要来自两个方面。首先,模型的质量受到外部因素的影响。其次,模型的性能受内部因素的影响。
外部因素:首先,为了有效地比较和验证所提出模型的性能,需要使用更多种类和数量的开源软件故障数据集进行相应的模型比较实验。其次,采用更多的开源和闭源软件可靠性模型进行模型比较实验。我们使用了三个来自 Apache产品的开源软件项目,其中每个项目都有三个开源软件版本。因此,我们使用九个开源软件的故障数据集来验证模型的性能。这些开源软件的故障数据集满足验证模型性能的基本要求。我们还使用了8个经典的软件可靠性模型进行模型比较实验(包括闭源和开源软件可靠性模型、完美调试模型和不完美调试模型)。这些经典的软件可靠性模型基本满足模型比较的数量需求。
内部因素:考虑到开源软件建模的复杂性,为了得到开源软件可靠性模型的解析解,我们简化了模型推导过程,并用泰勒公式对一些表达式进行了扩展和简化。虽然这可能会对所提出的模型的性能产生一定的影响,但这种简化方法有利于将所提出的模型用于实际的开源软件可靠性评估。此外,简化方法对模型的影响很小,一般可以忽略不计。
本发明提出了一种基于故障引入随机变化的开源软件可靠性模型,采用最小二乘估计法对模型参数进行估计。我们使用Apache开源软件项目的三个故障数据集、五个模型比较准则和八个经典的软件可靠性模型进行模型性能比较实验。实验结果表明,提出的模型比其他经典的开源和闭源软件可靠性模型具有更好的拟合和预测性能。参数敏感性分析表明,提出的模型的所有参数都有重要影响。这说明本文提出的模型不仅能够适应开源软件开发环境的变化,而且能够帮助开发人员或管理人员有效地评估开源软件的可靠性
研究表明,故障引入是开源软件开发过程中的一个重要方面。故障引入的变化对开源软件的发展有着重要的影响。特别是故障引入的随机变化对开源软件的可靠性建模有着重要的影响。只有充分考虑故障引入率的不规则变化和故障引入的随机变化,才能有效地开发出适应性和鲁棒性强的开源软件可靠性模型。
考虑到开源软件开发过程中故障检测和引入的复杂变化,以及故障检测和引入之间的延迟,未来的研究将结合故障检测和引入的随机变化,以及故障检测和引入之间的延迟来建立相应的开源软件可靠性模型。
Claims (3)
1.一种基于随机引进故障的开源软件可靠性建模方法,其特征在于,包括以下步骤:
步骤1,考虑到(t,t+Δt)中引入的故障数量与软件故障本身有关,给出以下随机微分方程:
其中,φ(t)表示故障内容函数,μ(t)是软件故障引进的强度函数,表示故障引进的变化,而且是一个非负数值,φ(0)=a.,a表示最初期望检测出故障的数量;
其中,γ(t)表示标准的高斯白色噪音,σ表示不规则变化大小,它是一个正常量值;
其中,θ和d分别表示故障引入的强度率参数和形状参数;
步骤4,假设瞬时检测到的故障数与软件中剩余的故障数成正比,导出下列微分方程:
其中,ψ(t)表示均值函数,即期望检测出故障的数量,b表示故障检测率;
步骤5,将式(3)代入式(4),并假设故障引入的强度函数服从Weibull分布,得到模型的表达式:
2.根据权利要求1所述的一种基于随机引进故障的开源软件可靠性建模方法,其特征在于,所述基于随机引进故障的开源软件可靠性建模方法得到模型表达式详细的推导过程如下:
(A.2)表示为下式,
其中,η(t)是一个高斯分布,表示一维Wiener过程,Wiener过程的属性有:
Pr[η(0)=0]=1
E[η(t)]=0
E[η(t)η(t')]=Min[t,t']
假设故障引进的强度函数服从Weibull分布,得出
把(A.6)代入(A.5),η(t)密度函数定义为,
解出(A.5),
此外,(A.1)变换为下式,
dψ(t)=bφ(t)dt-bψ(t)dt (A.9)
dψ(t)+bψ(t)dt=bφ(t)dt (A.10)
(A.10)的两边乘以exp(bt),
exp(bt)dψ(t)+bexp(bt)ψ(t)dt=bexp(bt)φ(t)dt (A.11)
(A.11)两边积分得,
∫exp(bt)dψ(t)+bexp(bt)ψ(t)dt=∫bexp(bt)φ(t)dt (A.12)
exp(bt)ψ(t)=∫bexp(bt)φ(t)dt
ψ(t)=exp(-bt)∫φ(t)d(exp(bt))
=exp(-bt)(φ(t)exp(bt)-∫exp(bt)dφ(t))
=φ(t)-exp(-bt)∫exp(bt)dφ(t) (A.13)
用泰勒公式扩展下式,
exp(-θtd)=1 (A.15)
td-1=0 (A.16)
把(A.15)和(A.16)代入(A.14)得,
把(A.17)代入(A.13)得,
当t=0,ψ(t)=0和φ(t)=a时,
ψ(0)=φ(0)-a(1+C)
0=a-a(1+C)
C=0 (A.19)
把(A.19)代入(A.18)得,
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010282889.2A CN111488281B (zh) | 2020-05-28 | 2020-05-28 | 一种基于随机引进故障的开源软件可靠性建模方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010282889.2A CN111488281B (zh) | 2020-05-28 | 2020-05-28 | 一种基于随机引进故障的开源软件可靠性建模方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111488281A true CN111488281A (zh) | 2020-08-04 |
CN111488281B CN111488281B (zh) | 2021-09-28 |
Family
ID=71794769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010282889.2A Active CN111488281B (zh) | 2020-05-28 | 2020-05-28 | 一种基于随机引进故障的开源软件可靠性建模方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111488281B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988564A (zh) * | 2021-01-22 | 2021-06-18 | 哈尔滨工业大学(威海) | 一种考虑成本-可靠性的srgm决策模型及其构建方法 |
CN113609009A (zh) * | 2021-07-29 | 2021-11-05 | 山西大学 | 一种基于多版本的开源软件可靠性建模方法 |
CN113778872A (zh) * | 2021-09-07 | 2021-12-10 | 山西大学 | 一种故障引进下降变化的开源软件可靠性建模方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150025872A1 (en) * | 2013-07-16 | 2015-01-22 | Raytheon Company | System, method, and apparatus for modeling project reliability |
CN104462757A (zh) * | 2014-11-03 | 2015-03-25 | 南京航空航天大学 | 基于监测数据的Weibull分布可靠性序贯验证试验方法 |
CN109815149A (zh) * | 2019-01-29 | 2019-05-28 | 山西大学 | 一种基于Weibull分布引进故障的软件可靠性增长模型 |
CN111045939A (zh) * | 2019-12-09 | 2020-04-21 | 山西大学 | Weibull分布的故障检测开源软件可靠性建模方法 |
CN111045938A (zh) * | 2019-12-09 | 2020-04-21 | 山西大学 | 基于Pareto分布故障引进开源软件可靠性建模方法 |
-
2020
- 2020-05-28 CN CN202010282889.2A patent/CN111488281B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150025872A1 (en) * | 2013-07-16 | 2015-01-22 | Raytheon Company | System, method, and apparatus for modeling project reliability |
CN104462757A (zh) * | 2014-11-03 | 2015-03-25 | 南京航空航天大学 | 基于监测数据的Weibull分布可靠性序贯验证试验方法 |
CN109815149A (zh) * | 2019-01-29 | 2019-05-28 | 山西大学 | 一种基于Weibull分布引进故障的软件可靠性增长模型 |
CN111045939A (zh) * | 2019-12-09 | 2020-04-21 | 山西大学 | Weibull分布的故障检测开源软件可靠性建模方法 |
CN111045938A (zh) * | 2019-12-09 | 2020-04-21 | 山西大学 | 基于Pareto分布故障引进开源软件可靠性建模方法 |
Non-Patent Citations (1)
Title |
---|
王金勇: "考虑故障引进的软件可靠性增长模型研究", 《中国博士学位论文全文数据库信息科技辑》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988564A (zh) * | 2021-01-22 | 2021-06-18 | 哈尔滨工业大学(威海) | 一种考虑成本-可靠性的srgm决策模型及其构建方法 |
CN112988564B (zh) * | 2021-01-22 | 2023-05-23 | 哈尔滨工业大学(威海) | 一种考虑成本-可靠性的srgm决策模型及其构建方法 |
CN113609009A (zh) * | 2021-07-29 | 2021-11-05 | 山西大学 | 一种基于多版本的开源软件可靠性建模方法 |
CN113609009B (zh) * | 2021-07-29 | 2023-09-22 | 山西大学 | 一种基于多版本的开源软件可靠性建模方法 |
CN113778872A (zh) * | 2021-09-07 | 2021-12-10 | 山西大学 | 一种故障引进下降变化的开源软件可靠性建模方法 |
CN113778872B (zh) * | 2021-09-07 | 2023-09-22 | 山西大学 | 一种故障引进下降变化的开源软件可靠性建模方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111488281B (zh) | 2021-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111488281B (zh) | 一种基于随机引进故障的开源软件可靠性建模方法 | |
CN106897509B (zh) | 一种动态非高斯结构监测数据异常识别方法 | |
CN111931179B (zh) | 基于深度学习的云端恶意程序检测系统及方法 | |
Wang et al. | An imperfect software debugging model considering log-logistic distribution fault content function | |
CN108683564B (zh) | 一种基于多维决策属性的网络仿真系统可信度评估方法 | |
CN112702342B (zh) | 网络事件处理方法、装置、电子设备及可读存储介质 | |
US9794149B2 (en) | User experienced quality estimation apparatus, terminal bottleneck determination apparatus, similar operation extraction apparatus, method and program | |
CN113179263A (zh) | 一种网络入侵检测方法、装置及设备 | |
US7561161B2 (en) | Quantitative measure of a video interface | |
CN111045939B (zh) | Weibull分布的故障检测开源软件可靠性建模方法 | |
CN109766281B (zh) | 一种故障检测率下降变化的不完美调试软件可靠性模型 | |
WO2022110863A1 (zh) | 一种兼容性检测方法、装置、设备及可读存储介质 | |
CN111045902A (zh) | 服务器的压力测试方法及装置 | |
CN112035345A (zh) | 一种基于代码片段分析的混合深度缺陷预测方法 | |
CN111737113B (zh) | 故障检测和引进非线性变化的开源软件可靠性建模方法 | |
Malik et al. | Using load tests to automatically compare the subsystems of a large enterprise system | |
US6985840B1 (en) | Circuit property verification system | |
CN113468035A (zh) | 日志异常检测方法、装置、训练方法、装置及电子设备 | |
CN111045938B (zh) | 基于Pareto分布故障引进开源软件可靠性建模方法 | |
CN110417621B (zh) | 一种轻量级嵌入式系统异常运行状态检测方法 | |
Zhao et al. | Empirical analysis and modeling of black-box mutational fuzzing | |
CN114050941A (zh) | 一种基于核密度估计的失陷账号检测方法及系统 | |
CN110442837B (zh) | 复杂周期模型的生成方法、装置及其检测方法、装置 | |
CN113849484A (zh) | 一种大数据组件升级方法、装置、电子设备及存储介质 | |
CN101377756A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |