专利名称:一种基于混合贝叶斯先验分布的可靠性验证测试方法
技术领域:
本发明涉及软件测试领域,特别涉及一种基于混合贝叶斯先验分布的可靠性验证测试方法。
背景技术:
随着计算机在民用和军用产品上应用的日益增多,软件缺陷引发的产品故障以及灾难性事故也越来越严重。软件可靠性是整个系统可靠性的重要保证,甚至是决定性的因素。软件可靠性测试是软件可靠性保证过程中非常重要的一步。经过可靠性测试的软件并不能确保该软件中剩余的错误数量最小,但是可以确保该软件达到较高的可靠性要求。从工程上来看,软件的可靠性高即意味着该软件的失效率低,又意味着一旦该软件发生失效, 由此造成的危害也较小。软件可靠性测试的目的就是要保证软件中没有对可靠性影响较大的错误。学术界和工业界一直努力在试图解决,如何准确、客观、高可信地验证软件是否达到了可靠性要求的问题,经过几十年的发展,形成了多种软件可靠性验证测试方法。利用基于经典统计理论的可靠性验证测试方法进行可靠性测评,从理论上讲,其评价结果的可信度是很高的,但是,随着软件规模、软件复杂度的日益增大,以及对可靠性要求的不断提高, 由于经典统计理论的可靠性验证测试方法没有考虑已经存在的先验信息,因此所需要的测试用例数量非常大,即造成测试用例开销大,又导致测试的持续期长,从而使得基于传统方法的软件验证测试工作效率极低。然而在实际的工程实践中,为了保证高可信软件的可靠性,开发方既要进行可靠性设计,又要在开发过程中对软件进行严格的可靠性增长测试。因此,当对软件进行可靠性验证测试时,软件已经具备了较高的可靠性,可靠性增长测试过程是可以当成先验知识加以利用的。因此利用先验贝叶斯统计原理,从统计学的角度推断如何减少验证测试用例数,缩短测试时间,降低测试开销,是解决高可靠性软件验证测试的有效途径。利用贝叶斯方法进行统计推断的最基本问题便是如何确定统计量的先验分布,经过多年的研究,已出现多种先验分布求解方法,包括共轭先验分布法、最大熵原则、林德莱原则、Jeffreys原则、最大数据信息原则、不变测度等方法,这些方法中,各有理论优点,需要结合具体应用选取相应的方法。其中,共轭先验分布具有良好的数学表达和很广泛的应用基础。贝叶斯统计学中先验分布中所含的未知参数称为超参数。关于超参数的计算经对现有文献检索发现,文献覃志东等《安全关键软件可靠性验证测试方法研究》,介绍了先验矩方法求解软件失效概率的概率密度函数的先验分布。文献杜小翔,钱红兵 《基于先验贝叶斯推断验证法的高可靠性评估》也采用了先验矩方法求解超参数。文献 Savchuk Vladimir P. Bayes Reliability Estimation Using Multiple Sources of Prior Information =Binmial Sampling,介绍了求解超参数的新方法,提出了如何运用最大熵的方法来确定二项式分布的情况下的先验分布。文献Yoon Won Hyo. Systematic BayesPrior-Assignment by Coupling the Mini-Max Entropy and Moment-Matching Methods, 研究了用正态分布最大熵方法来确定先验分布的超参数值。文献詹吴可,姜礼平《共轭最大熵先验下的贝叶斯估计》,进一步扩充了最大熵方法,研究了指数的情况下,最大熵先验下的贝叶斯估计方法。但是这些方法只是提供了求先验分布的手段缺少对先验分布的合理性和准确性的研究,即使在相同的共轭先验分布簇中,不同的计算方法得到的参数值也可能不同。在文献《软件可靠性验证测试中降低测试用例量方法研究》中,对比了两种不同方法求解先验分布参数,在特定的实验条件下得出基于共轭最大熵方法的先验分布比基于先验矩方法的先验分布的可信度更高的结论。但对于其他的先验数据,基于共轭最大熵方法的超参数计算并不一定优于基于先验矩的计算方法。
发明内容
本发明的目的是为了解决上述问题,提供一种基于混合贝叶斯先验分布的可靠性验证测试方法。本发明采用共轭先验分布法确定未知参数的先验分布,通过先验矩方法和最大熵方法分别求出两组不同参数,即得到不同的先验分布,再根据第二类极大似然方法确定以上两种先验分布的置信因子,将置信因子看成对应方法的权重,按权重将先验矩方法和最大熵方法得出的参数融合,进而得到最终的先验分布比单纯使用其中一种方法得到的先验分布更加准确,与真实的分布拟合度更好。通过最终的先验分布和试验信息得到一个后验分布,利用此后验分布,得到可靠性验证测试中的最小用例数。本发明的一种基于混合贝叶斯先验分布的可靠性验证测试方法,包含以下几个步骤步骤一、采用共轭分布确定未知参数的先验分布。步骤二、根据可靠性先验信息,利用先验矩方法确定先验分布中的超参数。步骤三、根据可靠性先验信息,利用最大熵方法确定先验分布中的超参数。步骤四、采用第二类极大似然方法确定步骤二和步骤三中得出的两种的先验分布的权重。步骤五、按不同的权重将两种方法估计出的超参数值进行融合,确定最终先验分布的超参数。步骤六、根据贝叶斯公式考虑先验分布信息和试验信息,得到一个后验分布,根据要求的置信度和失效概率,利用后验分布,计算出可靠性验证测试中的最小用例数。本发明的优点在于本发明充分利用了贝叶斯先验特性,采用共轭先验分布法确定未知参数的先验分布,通过先验矩方法和最大熵方法分别求出两组不同参数,根据第二类极大似然方法确定以上两种先验分布的置信因子,将置信因子看成对应方法的权重,按权重将先验矩方法和最大熵方法得出的参数融合,进而得到最终的先验分布更合理,比单纯使用其中一种方法得到的先验分布更加准确,与真实的分布拟合度更好。通过最终的先验分布和试验信息得到一个后验分布,利用后验分布,得到可靠性验证测试中的最小用例数,最终达到不影响可靠度的前提下降低测试量的作用。
图1为本发明的方法流程图;图2为本发明实施例中先验分布对比图。
具体实施例方式下面将结合附图和实施例对本发明作进一步的详细说明。本发明的一种基于混合贝叶斯先验分布的可靠性验证测试方法,流程如图1所示,具体包括以下几个步骤步骤一、采用共轭先验分布的方法,确定未知失效概率ρ的先验分布;共轭先验分布具有良好的数学表达和很广泛的应用基础,因此,本发明采用共轭分布方法确定先验分布的形式。假定某软件在任一运行时刻、任意选择输入的失效概率为p,且每次输入操作执行是均满足贝努利实验的独立统计性,则在η次执行中失效r次的概率为
权利要求
1. 一种基于混合贝叶斯先验分布的可靠性验证测试方法,其特征在于,具体包括以下几个步骤步骤一、采用共轭先验分布的方法,确定未知失效概率P的先验分布; 假定某软件在任一运行时刻、任意选择输入的失效概率为P,且每次输入操作执行是均满足贝努利实验的独立统计性,则在η次执行中失效r次的概率为 p(r) = Crnpr (I-ρ)""因为二项式分布的共轭先验分布服从beta分布,所以失效概率ρ的概率密度函数的先验分布为f(p) =P-1 (I-P) W/B (a, b)(1.0)其中a > 0,b > 0,为beta函数的超参数,且万(α,^ = f:1 (1 -尸广1 φ ; 步骤二、利用先验矩方法确定共轭先验分布中的超参数;首先收集测试增长阶段的测试信息,假设选取最后的m组测试信息作为先验信息,每组测试中含有η个测试用例,其中m组测试信息中导致失效的测试用例数的个数分别为k1; k2,-,km, k1 k2,…,<组成样本x,则样本χ的边缘分布为h(x) =〔/(ρ)π(χ I p)dp(2.0)其中口(x|p)为样本x对P条件分布,飧IzO = C^(I-P)H;将公式(1.0)带入公式 (2.0)得出公式(2. 1)Kx) = t ^T1IT Pa" (! - P)b" CxnPx (1 - PTx dp = l-^—Clpa+x-\\-pr--ldp i0 B(a, b)i0 B(a, b)B(a, b) 'o因为 B(ci, b) = \l Pa-1 (1 - Pt1 办,所以 f。1 ρα+χ-1 (1 - ργ+"-χ-1 办=+ χ, + δ - χ),所以得到/z(jc) = CxnB(a+x,n+b-x)/B(a, b)(2.1)则h(x)的一阶矩,二阶矩具体为
全文摘要
本发明公开了一种基于混合贝叶斯先验分布的可靠性验证测试方法,采用共轭先验分布法确定未知参数的先验分布,通过先验矩方法和最大熵方法分别求出两组不同参数,即得到不同的先验分布,再根据第二类极大似然方法确定以上两种先验分布的权重,按权重将先验矩方法和最大熵方法得出的参数融合,进而得到最终的先验分布比单纯使用其中一种方法得到的先验分布更加准确,与真实的分布拟合度更好。通过最终的贝叶斯先验分布及试验信息,计算出可靠性验证测试中所需的最小无失效用例数,这种方法相对于无先验知识的情况,可以有效的减少测试用例量。
文档编号G06F11/36GK102411537SQ20111025795
公开日2012年4月11日 申请日期2011年9月2日 优先权日2011年9月2日
发明者张振兴, 李一晨, 李刚, 郑晓云, 高峰 申请人:哈尔滨工程大学