法律状态公告日
法律状态信息
法律状态
2018-12-14
授权
授权
2017-04-26
实质审查的生效 IPC(主分类):G06F11/36 申请日:20161020
实质审查的生效
2017-03-29
公开
公开
技术领域
本发明涉及软件技术领域,尤其涉及一种基于新拟合判定标准下的软件可靠性建模方法及装置。
背景技术
软件在我们的生活中无处不在,在各个行业各个领域,软件都扮演着非常重要的角色。在安全关键系统中,软件失效会导致严重、致命的后果。软件的不可见性使得我们不知道软件会何时失效以及怎样失效。虽说近年来硬件系统的可靠性已经有所发展,但是软件系统的可靠性却依旧不能达到我们的期望。正是因为软件可靠性的重要性以及该领域存在很多未解决的问题,软件可靠性受到了越来越多的关注。
软件可靠性作为一个软件度量指标,通过软件发生失效的概率来概括软件的可靠运行程度。根据IEEE颁布的软件可靠性推荐实践,软件可靠性是指“在规定的条件下和规定的时间内,软件不引起系统失效的能力或概率”。系统失效会造成诸多风险,例如经济损失、人员伤亡,所以安全关键系统要求可靠性达到一定水平,以确保潜在的危害在软件使用中不会发生。在工业领域中,多种软件开发标准都对软件失效概率做了严格要求,尤其对于安全关键软件。
在软件可靠性领域中成果最多、最受关注的是软件可靠性模型(Software Reliability Model,SRM)的研究。软件可靠性模型旨在利用软件测试时采集到的软件失效数据,通过建模的方法模拟软件失效过程,从而给出软件可靠性估计值。软件可靠性模型是目前软件可靠性分析与评价最有力的工具,为改善软件质量提供了依据。软件可靠性建模的主要目标是拟合一个失效数据关于时间的理论分布,依据这个分布评估软件的可靠性并且设计出一条能决定软件测试停止时间的规则。在已有的众多模型中,NHPP模型被软件可靠性研究者广泛使用。模型中的未知参数可以使用极大似然估计或最小二乘估计得到。
到目前为止,已经提出了数十种NHPP类的软件可靠性增长模型,包括Yamada指数不完美调试模型、变形的S-型模型、延迟的S-型模型、指数型模型等。关于NHPP模型的改进模型已经很多,不同的模型在不同情形下的表现出不同的适用效果。
但模型与实际情况之间还是存在一些差异,如经典的G-O模型认为软件中的错误被检测后立即被修复,且不会引入新的错误,这与实际测试情况是不相符的。事实上,故障检测与修复之间存在时间延迟,故障修复需要一定的时间,有的甚至需要很长时间;排错过程中不能将检测到的错误完全排除,存在一个排错概率的问题,实验结果表明,故障排除效率在单元测试阶段为15%-50%,集成测试阶段为25%-40%,系统测试阶段为25%-55%;还有,由于技术限制和调试过程本身固有的不完美特点,排错过程中难以避免地引入新的错误,这些都转化为模型中应该考虑到的假设条件。
目前的各种研究建模中,一部分没有分别为检测过程和修复过程分别建立两个模型,一部分虽然对检测过程和修复过程都建立了模型,但没有将整体过程分成不同阶段进行分析的方法,软件测试总周数较短,处理的数据量也较少。
发明内容
鉴于上述的分析,本发明旨在提供一种基于新拟合判定标准下的软件可靠性建模方法及装置,用以解决现有软件可靠性模型不够完善的问题。
本发明的目的主要是通过以下技术方案实现的:
本发明提供了一种基于新拟合判定标准下的软件可靠性建模方法,包括:
统计实际软件测试过程中因时间变化产生的错误总数;
将检测过程和修复过程分别分为前后两个阶段,计算检测过程和修复过程在每一阶段中错误数占错误总数的比例;
建立检测模型和修复模型后,针对不同阶段中指定不同的拟合判定方法,再采用极大似然估计或最小二乘估计对软件可靠性模型进行未知参数估计,从而建立更精准的软件可靠性模型。
进一步地,将原始每个数据检测出的时间点和修复时间点纪录下来,整理后按周为单位,转换成每周发生多少错误数,得到两组依时间t变化的数据,即检测过程错误数数组{Dt}和修复过程错误数数组{Ct},其中,t=1,2,…,n,n为软件测试总时长,总错误数总量分别为Nd和Nc,其中Nc≤Nd;
在整理出的错误数数组{Dt}和{Ct}中,当且时,把t=m和t=m+1时刻作为分界点,{D1,D2…,Dm}和{C1,C2…,Cm}分别为检测过程和修复过程的前阶段,{Dm+1,Dm+2…,DNd}和{Cm+1,Cm+2…,CNc}分别为检测过程和修复过程的后阶段。
进一步地,确定完过程分段后,对{D1,D2…,Dm}和{C1,C2…,Cm}前阶段进行数据分析,分别得到检测过程和修复过程的前阶段错误数占错误总数的比例和其中
对{Dm+1,Dm+2…,DNd}和{Cm+1,Cm+2…,CNc}后阶段进行数据分析,得到其中分别代表检测过程和修复过程在后阶段中的重要性。
进一步地,在现有可靠性增长模型类型上,建立以同一组参数{xi}表示的软件检测模型和软件修复模型,,i为软件可靠性模型中参数个数,并得到两组模型拟合错误数数组,{Dft}和{Cft},t=1,2,…,n,n为软件测试总时间,单位为周;
一般用于模型拟合的公式为这里制定新的数据和模型拟合公式Vm',其中Vm'分为V1和V2两部分表示,则
前一阶段数据和模型拟合公式为
后一阶段数据和模型拟合公式为
其中,前一阶段采用和的值,分别为(Dft-Dt)2和(Cft-Ct)2前的系数;后一阶段采用的值,分别为(Dft-Dt)2和(Cft-Ct)2前系数;
当满足Vm′最小时,确定检测模型和修复模型中未知参数{xi}的取值,此时确定的模型为最佳软件可靠性模型。
本发明还提供了一种基于新拟合判定标准下的软件可靠性建模装置,包括:
统计单元,用于统计实际软件测试过程中因时间变化产生的错误总数;
分段单元,用于将检测过程和修复过程分别分为前后两个阶段;
比例计算单元,用于计算检测过程和修复过程在每一阶段中错误数占错误总数的比例;
建模单元,用于在建立检测模型和修复模型后,针对不同阶段中指定不同的拟合判定方法,再采用极大似然估计或最小二乘估计对软件可靠性模型进行未知参数估计,从而建立更精准的软件可靠性模型。
进一步地,所述分段单元具体用于,将原始每个数据检测出的时间点和修复时间点纪录下来,整理后按周为单位,转换成每周发生多少错误数,得到两组依时间t变化的数据,即检测过程错误数数组{Dt}和修复过程错误数数组{Ct},其中,t=1,2,…,n,n为软件测试总时长,总错误数总量分别为Nd和Nc,其中Nc≤Nd;在整埋出的错误数数组{Dt}和{Ct}中,当且时,把t=m和t=m+1时刻作为分界点,{D1,D2…,Dm}和{C1,C2…,Cm}分别为检测过程和修复过程的前阶段,{Dm+1,Dm+2…,DNd}和{Cm+1,Cm+2…,CNc}分别为检测过程和修复过程的后阶段。
进一步地,所述比例计算单元具体用于,确定完过程分段后,对{D1,D2…,Dm}和{C1,C2…,Cm}前阶段进行数据分析,分别得到检测过程和修复过程的前阶段错误数占错误总数的比例和其中对{Dm+1,Dm+2…,DNd}和{Cm+1,Cm+2…,CNc}后阶段进行数据分析,得到其中分别代表检测过程和修复过程在后阶段中的重要性。
进一步地,所述建模单元具体用于,在现有可靠性增长模型类型上,建立以同一组参数{xi}表示的软件检测模型和软件修复模型,i为软件可靠性模型中参数个数,并得到两组模型拟合错误数数组,{Dft}和{Cft},t=1,2,…,n,n为软件测试总时间,单位为周;
一般用于模型拟合的公式为这里制定新的数据和模型拟合公式Vm',其中Vm'分为V1和V2两部分表示,则
前一阶段数据和模型拟合公式为
后一阶段数据和模型拟合公式为
其中,前一阶段采用和的值,分别为(Dft-Dt)2和(Cft-Ct)2前的系数;后一阶段采用的值,分别为(Dft-Dt)2和(Cft-Ct)2前系数;
当满足Vm′最小时,确定检测模型和修复模型中未知参数{xi}的取值,此时确定的模型为最佳软件可靠性模型。
本发明有益效果如下:
本发明在数据量较大的软件检测过程中,如果可以将其分成不同阶段进行分析,将有助于更好地分析软件检测过程中两个过程对整体的影响,从而让模型更贴合实际。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分的从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。
图1为本发明实施例所述方法的流程示意图;
图2为本发明实施例所述装置的结构示意图。
具体实施方式
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理。
首先结合附图1对本发明实施例所述方法进行详细说明。
如图1所示,图1为本发明实施例所述方法的流程示意图,主要包括以下步骤:
步骤101:从实际测试角度出发,统计软件测试过程(包含检测过程DFP和修复过程CFP)中因时间变化产生的错误数量,
具体实现过程中,将原始每个数据检测出的时间点和修复时间点纪录下来,整理后按周为单位,转换成每周发生多少错误数,得到两组依时间t变化的数据,即检测过程错误数数组{Dt}和修复过程错误数数组{Ct},其中,t=1,2,…,n,n为软件测试时长,总错误数总量分别为Nd和Nc,其中Nc≤Nd。
步骤102:将检测过程DFP和修复过程CFP分别分成前后两段,分段后,计算出检测过程DFP和修复过程CFP在每一阶段中错误数占错误总数的比例,以此来表示每个过程在不同阶段的重要性。
具体的说就是,在整理出的错误数数组{Dt}和{Ct}中,当且时,把t=m和t=m+1时刻作为分界点,{D1,D2…,Dm}和{C1,C2…,Cm}分别为检测过程和修复过程的前阶段,{Dm+1,Dm+2…,DNd}和{Cm+1,Cm+2…,CNc}分别为检测过程和修复过程的后阶段。
确定完过程分段后,对{D1,D2…,Dm}和{C1,C2…,Cm}前阶段过程进行数据分析,得到和其中分别代表检测过程DFP和修复过程CFP在第一阶段中的重要性。可以看出,在第一阶段里软件测试更注重检测过程DFP中错误数的发现。
同理,对{Dm+1,Dm+2…,DNd}和{Cm+1,Cm+2…,CNc}后阶段过程进行数据分析,得到其中分别代表检测过程DFP和修复过程CFP在第二阶段中的重要性。可以看出,在第二阶段里软件测试更注重修复过程CFP中错误数的修复。
步骤103:制定新拟合方法判定标准,进行可靠性模型中未知参量的估计
即,建立检测过程模型和修复过程模型后,利用重要性比例参数的改变,制定不同过程中不同的拟合判定方法,再采用极大似然估计或最小二乘估计对软件可靠性模型进行未知参数估计,从而建立更精准的软件可靠性模型。
具体实现过程中,在现有可靠性增长模型类型上,依照不同假设更改或添加模型结构,建立以同一组参数{xi}表示的软件检测模型md(t)和软件修复模型mc(t),并得到两组模型拟合错误数数值,{Dft}和{Cft}。
一般研究中,都以进行数据和模型的拟合,可以看出若考虑两个过程的建模时,在确定未知参数时,认为两个过程同样重要,默认为各占的比例。但对于并没能完全修复错误数的软件来说,就不合适。所以,这里将系数用r来替换,前一阶段采用和值,分别为(Dft-Dt)2和(Cft-Ct)2前的系数。后一阶段采用的值,同样分别为(Dft-Dt)2和(Cft-Ct)2前系数。
制定Vm′,如果Vm分别用V1和V2表示,则
前一阶段数据和模型拟合公式为
后一阶段数据和模型拟合公式为
用以求解,当满足Vm′最小时,检测模型md(t)和mc(t)中未知参数{xi}的取值,从而确定不同阶段对软件可靠性不同的模型建立,此时确定的模型为最佳软件可靠性模型,可以最大程度保证软件可靠性测试的。
接下来结合附图2对本发明实施例所述装置进行详细说明。
如图2所示,图2为本发明实施例所述装置的结构示意图,具体可以包括:
统计单元,用于统计实际软件测试过程中因时间变化产生的错误总数;
分段单元,用于将检测过程和修复过程分别分为前后两个阶段。具体的说就是,分段单元将原始每个数据检测出的时间点和修复时间点纪录下来,整理后按周为单位,转换成每周发生多少错误数,得到两组依时间t变化的数据,即检测过程错误数数组{Dt}和修复过程错误数数组{Ct},其中,t=1,2,…,n,n为软件测试总时长,总错误数总量分别为Nd和Nc,其中Nc≤Nd;在整理出的错误数数组{Dt}和{Ct}中,当且时,把t=m和t=m+1时刻作为分界点,{D1,D2…,Dm}和{C1,C2…,Cm}分别为检测过程和修复过程的前阶段,{Dm+1,Dm+2…,DNd}和{Cm+1,Cm+2…,CNc}分别为检测过程和修复过程的后阶段。
比例计算单元,用于计算检测过程和修复过程在每一阶段中错误数占错误总数的比例。具体的说就是,确定完过程分段后,比例计算单元对{D1,D2…,Dm}和{C1,C2…,Cm}前阶段进行数据分析,分别得到检测过程和修复过程的前阶段错误数占错误总数的比例和其中对{Dm+1,Dm+2…,DNd}和{Cm+1,Cm+2…,CNc}后阶段进行数据分析,得到其中分别代表检测过程和修复过程在后阶段中的重要性。
建模单元,用于在建立检测模型和修复模型后,针对不同阶段中指定不同的拟合判定方法,再采用极大似然估计或最小二乘估计对软件可靠性模型进行未知参数估计,从而建立更精准的软件可靠性模型。具体的说就是,建模单元在现有可靠性增长模型类型上,建立以同一组参数{xi}表示的软件检测模型和软件修复模型,并得到两组模型拟合错误数数组,{Dft}和{Cft};
制定数据和模型拟合公式Vm',其中Vm'分为V1和V2两部分表示,则
前一阶段数据和模型拟合公式为
后一阶段数据和模型拟合公式为
其中,前一阶段采用和的值,分别为(Dft-Dt)2和(Cft-Ct)2前的系数;后一阶段采用的值,分别为(Dft-Dt)2和(Cft-Ct)2前系数;
当满足Vm′最小时,确定检测模型和修复模型中未知参数{xi}的取值,此时确定的模型为最佳软件可靠性模型。
综上所述,本发明实施例提供了一种基于新拟合判定标准下的软件可靠性建模方法及装置,从多阶段对软件测试总过程多阶段分析,增加了不同阶段软件可靠性模型建立的分类和研究;通过制定不同阶段中检测过程DFP和修复过程CFP的重要性比例,可以看出软件测试总过程中错误数检测和修复的内在规律,让建模可以更细致分类;模型建立的拟合度高,软件可靠度就会越高,因此相比传统现有的拟合判定方法,本发明利用不同阶段中两个软件测试过程重要性的变化,改进了判定方法中不合理的地方,并提高了整体软件可靠性增长模型的可靠性,进而提高了软件可靠性测试的准确率。
本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
虽然已经详细说明了本发明及其优点,但是应当理解在不超出由所附的权利要求所限定的本发明的精神和范围的情况下可以进行各种改变、替代和变换。而且,本申请的范围不仅限于说明书所描述的过程、设备、手段、方法和步骤的具体实施例。本领域内的普通技术人员从本发明的公开内容将容易理解,根据本发明可以使用执行与在此所述的相应实施例基本相同的功能或者获得与其基本相同的结果的、现有和将来要被开发的过程、设备、手段、方法或者步骤。因此,所附的权利要求旨在它们的范围内包括这样的过程、设备、手段、方法或者步骤。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
机译: 基于二次复杂有理函数的时域电磁数值分析的离散介质拟合曲线拟合方法及基于该模型的离散介质建模方法
机译: 基于二次复杂有理函数的时域电磁数值分析的离散介质拟合曲线拟合方法及基于该模型的离散介质建模方法
机译: 基于3D扫描获得的点云数据的3 3 3D建模装置和拟合方法