基于贝叶斯方法的软件运行剖面获取方法技术

技术编号:2859797 阅读:231 留言:0更新日期:2012-04-11 18:40
一种基于贝叶斯方法的软件运行剖面获取方法,它是将贝叶斯方法应用到软件运行剖面获取中,具体包括下列步骤:(1)确定软件运行剖面的先验分布;(2)软件运行和测试;(3)由先验分布,得到后验分布;(4)计算后验分布的期望,得到软件运行剖面的估计值;(5)如果满足某停止准则就转入步骤(6),如不是则以得到的后验分布为下一轮试验的先验分布,转步骤(2);(6)输出结果。本发明专利技术根据充分利用了专家经验等先验信息,提高软件获取软件运行剖面的精度和稳定性。

【技术实现步骤摘要】

本专利技术涉及一种软件运行剖面获取技术,特别是一种基于贝叶斯方法的软件运行剖面获取技术。
技术介绍
随着软件功能的增强,软件规模的增大,软件的质量越来越重要,软件可靠性评估就是衡量软件质量的有力手段。软件可靠性是软件无失效运行的定量的度量。在对软件进行可靠性分析时,软件运行剖面直接影响了软件的可靠性。软件运行剖面(software operational profile)是指软件的数据环境,指软件数据输入域以及各种输入数据的组合使用的机会(概率)。把软件看作是输入数据域到输出数据的映射,由于软件输入数据很复杂,所以把软件的输入数据域划分成等价的几类输入,这些输入等价类在软件运行过程中被使用的概率就可以近似看成软件运行剖面。软件运行剖面对于软件开发的整个过程都具有指导意义。在设计时,基于运行剖面的分析、设计使得软件开发目标更明确;在开发完成后,软件运行剖面可用于指导软件测试过程,集中精力对使用概率较高的等价类进行测试。同时,也可以使开发人员之间交流,开发人员与用户交流,对客户培训更有的放矢。同样,软件运行剖面的考虑也可以提高管理人员的管理效率。对于软件运行剖面的获取,已经出现多种方法,其中有的假设软件运行剖面为静态的、时齐次的概率分布模型,也有的假设软件运行剖面为离散的马尔科夫链的模型,还有的将软件运行剖面看成是连续时间的马尔科夫链的模型,以及将软件运行剖面看作是泊松过程的模型等。其中,目前使用较多的是静态分布模型。但在测试用例样本较少时,使用静态模型得出的结果不能正确反映运行剖面。
技术实现思路
本专利技术技术解决问题是克服现有技术的不足,提供一种,该方法不仅可以提高软件运行剖面获取的精度,而且还可以提高软件运行剖面获取的稳定性。本专利技术的技术解决方案是,其特点在于按下列步骤获取软件运行剖面(1)确定软件运行剖面的先验分布;先验分布的获取主要有三种方法一是根据专家经验来确定各节点先验分布,二是根据历史数据估计各节点先验分布,三是当既无专家经验也无历史数据时,可以采用无信息的先验分布,一般采用均匀分布做先验分布;(2)软件运行和软件测试,软件测试采用分区测试方法;(3)由先验分布和软件测试的当前数据,利用贝叶斯公式得到后验分布;(4)由步骤(3)中后验分布计算软件运行剖面的期望,得到软件运行剖面的估计值;(5)如果满足某停止准则就转至步骤(6),如不是则以得到的后验分布为下一轮试验的先验分布,转至步骤(2)。停止准则一般有两种一种是根据连续若干次的估计稳定在预先给定的变化范围内,另一种达到预先规定的测试步数;(6)输出结果。本专利技术的原理假设D表示软件的输入域,Ci是软件的第i个测试等价类。D=Yi=1mCi]]>其中CiICj=φ,i≠j这里输入域包含了m个不相交的测试等价类。假设q={q1,q2,Λ,qm} 并且Σi=1mqi=1]]>其中qi表示一个输入选自第i个测试等价类的概率。此时,软件运行剖面就定义为SOP={D,q}={<Ci,qi>,i=1,2,Λ,m}将软件输入域D,划分成测试等价类Ci,i=1,2,Λ,m,用qi来表示一个输入选自第i个测试等价类的概率。则软件运行剖面为(q1,q2,Λ,qm)。可以把软件运行剖面看成是随机向量Q。首先是选择先验分布,假设Q的先验分布为π(θ),其中θ是相关的参数;然后根据当前选择的测试输入方案Zi=(n1,n2,Λ,nm),其中ni表示在测试时取自第i个测试等价类的测试用例数。修改Q的先验分布,得出后验分布。由于Dirichlet分布是公认的拟合度较好的多元分布。假设Q的先验分布为Dirichlet分布。Dirichlet分布定义如下Q={q1,q2,Λ,qm}是一个随机向量,如果它满足(1)对于任意的1≤i≤m,有0≤qi≤1,且Σi=1mqi=1;]]>(2)(q1,q2,Λ,qm)的分布密度为 其中α0=Σi=1mαi,]]>对任意的αi,αi>0。记成(q1,q2,Λ,qm-1)~Dir(q|α1,Λ,αm-1;αm)或(q1,q2,Λ,qm)~Dir(q|α1,α2,Λ,αm)。记Q~Dir(Q|α),其中参数向量α=(α1,α2,Λ,αm)。使用测试用例进行软件测试,各测试用例的概率分布服从多项式分布,假设有m个测试等价类,其概率分布为Q=(q1,q2,Λ,qm),若进行测试时,可能有N次测试用例选择,其中落入第1个等价类的有n1次,落入第2个等价类的有n2次,...,落入第m个等价类的有nm次,分布函数为 f(n1,n2,Λ,nm)=(N!n1!×n2!×Λ×nm!)×q1n1×q2n2×Λ×qmnm]]>其中Σi=1mni=N]]>选择Dirichlet分布作为Q的先验分布,那麽Q的后验分布为h(q|n1,n2,Λ,nm)∝Πi=1mqi(α1-1)×q1n1×q2n2×Λ×qmnm]]>∝q1(α1-1+n1)×q2(α2-1+n2)×Λ×qm(αm-1+nm)]]>∝Πi=1mqi(αi-1+ni)]]>确定出先验分布一般采用下面三种方法①咨询领域专家来确定如何选取先验分布;②通过历史数据估计先验分布中参数;③没有先验信息时,选取无信息先验分布。由于Dirichlet分布与多项式分布是共轭分布,Q的后验分布也是Dirichlet分布。随着测试(使用)过程进行,特定的输入测试用例被选择使用。当一组测试用例被选择使用后,可以得到其分布。假设有m个测试等价类,其概率分布为Q=(q1,q2,Λ,qm),进行测试时,有N次测试用例选择,其中属于第1个等价类的有n1个,属于第2个等价类的有n2个,...,属于第m个等价类的有nm个。后验分布的参数使用下面公式调整αi(j)=αi(j-1)+ni,i=1,2,Λ,m,j=1,2,Λ,k其中k是测试用例的组数。最后,采用随机变量qi的期望E(qi)来对其进行估计,得到运行剖面。本专利技术采用贝叶斯方法建模软件运行剖面,将先验信息和试验数据有机的结合起来利用贝叶斯方法获取软件运行剖面,可以随着软件运行利用贝叶斯理论在线获取软件运行剖面。本专利技术与现有技术相比的优点(1)由于考虑了先验信息,提高运行剖面获取的精度;(2)由于采用了贝叶斯技术,提高了稳定性。贝叶斯方法较之传统的频率估计要稳定,特别是在小样本的情况下。附图说明图1为本专利技术的方本文档来自技高网...

【技术保护点】
基于贝叶斯方法的软件运行剖面获取方法,其特征在于:将贝叶斯方法应用到软件运行剖面获取中,具体包括下列步骤:(1)确定软件运行剖面的先验分布;(2)软件运行和软件测试;(3)由先验分布和软件测试的当前数据,利用贝叶斯公 式得到后验分布;(4)由步骤(3)中后验分布计算软件运行剖面的期望,得到软件运行剖面的估计值;(5)如果满足某停止准则就转至步骤(6),如不是则以得到的后验分布为下一轮试验的先验分布,转至步骤(2);(6)输出结果。

【技术特征摘要】
1.基于贝叶斯方法的软件运行剖面获取方法,其特征在于将贝叶斯方法应用到软件运行剖面获取中,具体包括下列步骤(1)确定软件运行剖面的先验分布;(2)软件运行和软件测试;(3)由先验分布和软件测试的当前数据,利用贝叶斯公式得到后验分布;(4)由步骤(3)中后验分布计算软件运行剖面的期望,得到软件运行剖面的估计值;(5)如果满足某停止准则就转至步骤(6),如不是则以得到的后验分布为下一轮试验的先验分布,转至步骤(2);(6)输出结果。2.根据权利要求1所述的基于贝叶斯方法的软件运行剖面获取方...

【专利技术属性】
技术研发人员:白成刚李宗民刘玉杰胡德斌蔡开元
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1