一种贝叶斯软件可靠性验证测试方法及其计算机辅助工具的制作方法

文档序号:6366184阅读:581来源:国知局
专利名称:一种贝叶斯软件可靠性验证测试方法及其计算机辅助工具的制作方法
技术领域
本发明属于软件可靠性工程领域,尤其涉及软件可靠性测试领域,具体地说,是指一种基于减函数法的多层先验分布函数的贝叶斯软件可靠性验证测试方法及其计算机辅助工具。
背景技术
软件可靠性验证测试是用户在接收软件时,确定软件当前的可靠性水平是否满足软件开发合同、任务书或需求规格说明书中规定的用户要求而进行的测试,其对于软件尤其是安全关键软件的可靠性保证具有非常重要的意义。软件可靠性验证测试方案是软件可靠性验证测试方法的核心组成部分,其决定了软件可靠性验证测试的执行方式以及可靠性 指标的验收标准。目前,国内外针对安全关键软件的可靠性验证测试方案的研究成果已有很多。已经授权的中国专利201010161608. 4号公开了 “一种基于测试框架的软件测试方法”,其通过针对一系列软件构建一个基础测试框架,完成同一系列软件的测试问题,通过测试过程中对框架的实例化和框架复用,解决了软件测试领域中测试质量受资源限制明显的问题。已经授权的中国专利200910147769. 5号公开了 “一种实时嵌入式软件自动化闭环测试方法”,其利用基于编程语言实时扩展的实时嵌入式软件测试描述语言的灵活特性,及其执行引擎的可嵌入性、移植性和实时运行特性,可完成实时测试运行中测试人员与被测系统的实时反馈处理,实现实时嵌入式软件的自动化闭环测试。但是这些验证测试方案应用于具有高可靠指标要求的安全关键软件(以下简称高可靠软件)时,仍然会呈现出很多的局限性,例如所需要的测试用例数量庞大、验证测试时间冗长,导致在有限的测试资源下,某些高可靠软件的可靠性验证测试很难开展。因此,如何改进现有的针对高可靠软件的可靠性验证测试方案,降低验证测试所需的测试用例或测试时间,是目前国内外软件可靠性工程领域的研究热点和难点之一。基于贝叶斯理论的软件可靠性验证测试方法是迄今为止最为成熟且最为有效的针对高可靠软件的可靠性验证测试方法之一。此类验证测试方法的核心是软件可靠性参数(失效概率或失效率)的先验分布函数构造问题。有研究表明,若能够获得有效的先验信息,从而准确地估计出先验函数的参数,则基于贝叶斯理论的软件可靠性验证测试方法可以在保证验证结果置信度的前提下,有效地降低测试用例量、缩短测试时间。现有的贝叶斯方案中,通常选用共轭分布函数来确定软件可靠性参数的先验分布。之所以选取共轭分布函数来构建先验分布函数,是为了简化后验分布函数的推导过程,但并没有考虑高可靠软件的可靠性参数的特点,所以由共轭分布法构造的先验分布函数未必适合描述高可靠软件的可靠性参数的先验分布情况。减函数法是一种新的先验分布构造方法,其核心思想是选取可靠性参数的减函数作为先验分布函数的核函数,这符合高可靠软件失效概率(或失效率)取较大值的可能性小、取较小值的可能性大的特点,因此适用于构造高可靠软件可靠性参数的先验分布函数。目前,现有技术中还没有给出如何利用减函数法进行高可靠软件可靠性参数的多层先验分布函数的构造来确定贝叶斯方案,并且应用于有失效和无失效数据情况的软件可靠性验证测试领域中。

发明内容
本发明为了解决现有的高可靠软件可靠性验证测试效率低的问题,在基于贝叶斯理论的软件可靠性验证测试方法的基础上,提出一种贝叶斯软件可靠性验证测试方法及其计算机辅助工具。本发明构造了基于减函数法的先验分布密度函数,该先验分布密度函数更加符合高可靠软件可靠性参数(失效概率或失效率)的特点,基于先验分布密度函数提出了基于减函数法的单层有先验的贝叶斯软件可靠性验证测试方法。另外,本发明还针对所构造的先验分布密度函数中的超参数构建先验分布函数,从而提出基于减函数法的多层无先验的贝叶斯软件可靠性验证测试方法。本发明提供的一种贝叶斯软件可靠性验证测试方法,具体通过以下步骤实现步骤一、收集测试数据,并判断被测软件为离散型软件还是连续型软件,若是连续型软件,执行步骤二 ;若是离散型软件,转步骤五执行。步骤二、调入用户给定的验证指标,并选择是进行单层贝叶斯可靠性验证测试还是进行多层贝叶斯可靠性验证测试,若选择单层贝叶斯方法,执行步骤三,若选择多层贝叶斯方法,执行步骤四。步骤三、对于连续型软件,如果选择的是单层贝叶斯方案,采用基于减函数法的单层有先验的连续型贝叶斯软件可靠性验证测试方法进行可靠性验证测试,具体是首先选取失效率X的一个减函数构造先验分布密度函数,然后利用软件可靠性增长测试过程后期收集的测试数据对先验分布密度函数的超参数进行估计,并确定后验分布密度函数,最后确定测试所需的连续执行时间。步骤四、对于连续型软件,如果选择的是多层贝叶斯方案,采用基于减函数法的多层先验分布的连续型贝叶斯软件可靠性验证测试方法进行可靠性验证测试,具体是首先选取失效率的一个减函数构造第一层先验分布密度函数,再为第一层先验分布密度函数的超参数选择先验分布密度函数,得到多层先验分布密度函数,然后求解多层后验分布密度函数,并最终确定测试所需的连续执行时间。步骤五调入用户给定的验证指标,并选择进行单层贝叶斯可靠性验证测试还是进行多层贝叶斯可靠性验证测试,若选择单层贝叶斯可靠性验证测试,执行步骤六,若选择多层贝叶斯可靠性验证测试,执行步骤七。步骤六、对于离散型软件,如果选择的是单层贝叶斯方案,采用基于减函数法的单层有先验的离散型贝叶斯软件可靠性验证测试方法进行测试验证。首先选取失效概率的一个减函数构造先验分布密度函数,然后利用软件可靠性增长测试过程后期的测试数据对先验分布密度函数的超参数进行估计,并求解后验分布密度函数,最后确定单层先验分布函数的贝叶斯软件可靠性验证测试方案,也就是测试所需的测试用例数量。步骤七、对于离散型软件,如果选择的是多层贝叶斯方案,采用基于减函数法的多 层先验分布的离散型贝叶斯软件可靠性验证测试方法进行可靠性验证测试。首先选取失效概率的一个减函数构造第一层先验分布密度函数,再为第一层先验分布密度函数的超参数选择先验分布密度函数,得到多层先验分布密度函数,然后求解多层后验分布密度函数,并最终确定多层先验分布函数的贝叶斯软件可靠性验证测试方案,也就是确定测试所需的测 试用例数量。步骤八、根据被测软件特点和可靠性测试要求搭建可靠性测试环境,构造操作剖 面,并根据测试所需的连续执行时间或者测试用例数量,生成相应数量的可靠性测试用例。步骤九、执行步骤八中生成的测试用例,并收集失效数据。步骤十、结合验证测试方案和步骤九中收集的失效数据,得到接收或拒收结论,并 停止测试。根据执行结果,判断当前被测软件是否满足可靠性验证的要求,若不满足,则得 出拒收结论,若满足,则得出接收结论。本发明步骤三中提供的基于减函数法的单层有先验的连续型贝叶斯软件可靠性 验证测试方法具体通过以下步骤实现步骤3. 1、先验分布密度函数的选取。假设连续型软件的失效率\是一个随机变量,依据减函数法,选取\的一个典型 减函数e_aA作为其先验分布密度函数的核,其中a是待估计的超参数。本发明中以泊松分 布为例进行了方法的阐述,其它分布可参照本发明中给出的步骤自行推导。因此,入的先验分布密度函数的具体形式为
权利要求
1.一种贝叶斯软件可靠性验证测试方法,其特征在于,包括如下步骤 步骤I :收集测试数据,并判断被测软件为离散型软件还是连续型软件,若是连续型软件,执行步骤2 ;若是离散型软件,转步骤5执行; 步骤2 :调入用户给定的验证指标,并选择进行单层贝叶斯可靠性验证测试还是进行多层贝叶斯可靠性验证测试,若选择单层贝叶斯可靠性验证测试,执行步骤3,若选择多层贝叶斯可靠性验证测试,执行步骤4 ; 步骤3 :采用基于减函数法的单层有先验的连续型贝叶斯软件可靠性验证测试方法进行可靠性验证测试,具体是首先选取失效率λ的一个减函数构造先验分布密度函数,然后利用软件可靠性增长测试过程后期收集的测试数据对先验分布密度函数的超参数进行估计,并确定后验分布密度函数,最后确定测试所需的连续执行时间; 步骤4 :采用基于减函数法的多层先验分布的连续型贝叶斯软件可靠性验证测试方法进行可靠性验证测试,具体是首先选取失效率λ的一个减函数构造第一层先验分布密度函数,再为第一层先验分布密度函数的超参数选择先验分布密度函数,得到多层先验分布密度函数,然后确定多层后验分布密度函数,并最终确定测试所需的连续执行时间; 步骤5 :调入用户给定的验证指标,并选择进行单层贝叶斯可靠性验证测试还是进行多层贝叶斯可靠性验证测试,若选择单层贝叶斯可靠性验证测试,执行步骤6,若选择多层贝叶斯可靠性验证测试,执行步骤7 ; 步骤6 :采用基于减函数法的单层有先验的离散型贝叶斯软件可靠性验证测试方法进行可靠性验证测试,具体是首先选取失效概率P的减函数构造先验分布密度函数,然后利用软件可靠性增长测试过程后期的测试数据对先验分布密度函数的超参数进行估计,并求解后验分布密度函数,最后确定测试所需的测试用例数量; 步骤7 :采用基于减函数法的多层先验分布的离散型贝叶斯软件可靠性验证测试方法进行可靠性验证测试,具体是首先选取失效概率P的一个减函数构造第一层先验分布密度函数,再为第一层先验分布密度函数的超参数选择先验分布密度函数,得到多层先验分布密度函数,然后求解多层后验分布密度函数,最终确定测试所需的测试用例数量; 步骤8 :根据被测软件特点和可靠性测试要求搭建可靠性测试环境,构造操作剖面,并根据所确定的测试所需的连续执行时间或者测试用例数量,生成相应数量的可靠性测试用例; 步骤9 :执行步骤8中生成的测试用例,并收集失效数据; 步骤10 :根据执行结果,判断当前被测软件是否满足可靠性验证的要求,若不满足,则得出拒收结论,若满足,则得出接收结论。
2.根据权利要求I所述的一种贝叶斯软件可靠性验证测试方法,其特征在于,步骤3中所述的基于减函数法的单层有先验的连续型贝叶斯软件可靠性验证测试方法,包括如下步骤 步骤3. I :构造先验分布密度函数;假设连续型软件的失效率λ是一个随机变量,依据减函数法,选取λ的一个典型减函数e_aA作为其先验分布密度函数的核,a是待估计的超参数,则λ的先验分布密度函数f (λ)为 f(A) = Ae^ax(I)根据先验分布密度函数的性质
3.根据权利要求I所述的一种贝叶斯软件可靠性验证测试方法,其特征在于,步骤4中所述的基于减函数法的多层先验分布的连续型贝叶斯软件可靠性验证测试方法,具体是步骤4. I :构造先验分布密度函数;选取失效率λ的减函数构造第一层先验分布密度函数,所选择的先验分布密度函数η (λ |a,b)为伽玛分布函数,如式(12)所示
4.根据权利要求I所述的一种贝叶斯软件可靠性验证测试方法,其特征在于,步骤6中所述的基于减函数法的单层有先验的离散型贝叶斯软件可靠性验证测试方法,具体是步骤6. I :构造先验分布密度函数;选取失效概率P的一个减函数(1-p)a作为先验分布密度函数的核,则构造的失效概率P的先验分布密度函数f (P)为
5.根据权利要求I所述的一种贝叶斯软件可靠性验证测试方法,其特征在于,步骤7中所述基于减函数法的多层先验分布的离散型贝叶斯软件可靠性验证测试方法,具体是步骤7. I :对于离散型软件的失效概率P,取失效概率P的减函数构造第一层先验分布密度函数,此处取失效概率P的先验分布密度函数为贝塔分布,则第一层先验分布密度函数 31 (P I a, b)为
6.一种实现基于减函数法的单层先验分布的贝叶斯软件可靠性验证测试方法的计算机辅助工具,其特征在于,该计算机辅助工具包括先验数据收集管理模块、失效数据导入模块、先验信息计算模块、验证测试方案生成模块、录入验证测试失效数据模块、及结果输出丰吴块; 先验数据收集管理模块用于收集被测软件在软件可靠性增长测试中后期的测试数据; 失效数据导入模块用于读入测试数据的数据文件以及验证方案参数,并进行数据类型的转换处理;所述的验证方案参数包括可靠性指标、置信度水平以及验证测试过程中允许的失效数; 先验信息计算模块根据被测软件的类型,利用基于减函数法的单层有先验的连续型贝叶斯软件可靠性验证测试方法或者基于减函数法的单层有先验的离散型贝叶斯软件可靠性验证测试方法确定后验分布密度函数;单层有先验的贝叶斯软件可靠性验证测试方法具体过程都是首先选取失效率或失效概率的一个减函数构造先验分布密度函数,然后利用测试数据对先验分布密度函数的超参数进行估计,并确定后验分布密度函数; 验证测试方案生成模块根据先验信息计算模块确定的先验分布密度函数,验证方案参数,确定基于减函数法的贝叶斯软件可靠性验证测试所需的连续执行时间或者测试用例数; 录入验证测试失效数据模块用于录入根据验证测试方案生成模块确定的连续执行时间或者测试用例数进行测试得到的失效数据; 结果输出模块根据验证测试方案生成模块确定的连续执行时间或者测试用例数,结合录入验证测试失效数据模块录入的失效数据,给出可靠性验证结果,输出接收或拒收该软件的结论。
全文摘要
本发明提出一种贝叶斯软件可靠性验证测试方法及其计算机辅助工具,测试方法针对离散型和连续型两种软件,构造了基于减函数法的先验分布函数,在此基础上构造单层有先验的贝叶斯软件可靠性验证测试方法,再对先验分布函数中的超参数构建先验分布函数,构造多层无先验的贝叶斯软件可靠性验证测试方法。本发明计算机辅助工具包括先验数据收集管理模块、失效数据导入模块、先验信息计算模块、验证测试方案生成模块、录入验证测试失效数据模块及结果输出模块,实现基于减函数法的单层先验分布的贝叶斯软件可靠性验证测试。本发明更加适用于高可靠软件的可靠性验证测试,提高了验证测试的效率。
文档编号G06F11/36GK102662848SQ20121012568
公开日2012年9月12日 申请日期2012年4月25日 优先权日2012年1月9日
发明者李海峰, 李秋英, 王学成, 陆民燕 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1