CN109408360A - 一种软件可靠性评估方法和系统 - Google Patents
一种软件可靠性评估方法和系统 Download PDFInfo
- Publication number
- CN109408360A CN109408360A CN201810876702.4A CN201810876702A CN109408360A CN 109408360 A CN109408360 A CN 109408360A CN 201810876702 A CN201810876702 A CN 201810876702A CN 109408360 A CN109408360 A CN 109408360A
- Authority
- CN
- China
- Prior art keywords
- software
- reliability
- layer
- functional module
- effect factor
- 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.)
- Pending
Links
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种软件可靠性评估方法和系统,包括:通过操作剖面获取软件各操作的使用概率;基于软件测试数据,计算软件各个操作的可靠性;根据预先设定的各操作的可靠性影响因子、各个操作的可靠性,并结合各操作的使用概率,计算软件的可靠性;其中操作剖面为所有操作以及各个操作的使用概率。该方法和系统给出了一个通用的、适用于多种情况的软件可靠性评估方法和系统,克服了现有技术难以应对多种情况的软件可靠性测试的不足。
Description
技术领域
本发明属于信息技术领域,具体涉及一种软件可靠性评估方法和系统。
背景技术
对于软件来讲,目前不论采用什么技术和方法,软件中的错误都是不可避免的。毋庸置疑,计算机系统的可靠性被提上社会关注的日程中。软件可靠性目前的主要问题是无法像硬件那样进行评估。由于能为大多数工程的决策制定和可靠性设定提供关键信息,因此给出可操作的软件可靠性评估模型变得十分重要。
软件可靠性建模是七十年代初期由先驱工作者Telinski,MorandaShooman和Coutinbo等提出的。其基本方法是对过去数据建模,以评估现在和预测未来。而软件的可靠性评估是指根据软件可靠性结构(单元与系统间可靠性关系)、寿命类型和各单元的可靠性试验信息,利用概率统计方法,评估出系统的可靠性特征量,其相关要素包括:规定的时间、规定的环境条件、规定的功能。
近年来,随着对软件可靠性越来越深入的研究,人们建立了各种各样的用来满足软件可靠性评估需求的模型。如:1、基于软件测试阶段的失效数据,J-linski和Moranda建立了估计失效数的模型,即著名的J-M模型。2、基于输入域,Nelson于1973年提出软件可靠性模型。3、基于体系结构的软件可靠性模型,分为两类:第一类是基于路径的模型;第二类是基于使用软件的控制流图的模型。
众多软件可靠性评估模型的出现,虽然为软件可靠性评估提供了一些方法,但大多数模型都是针对软件的某一个因素进行考虑,如失效时间,并做了大量的前提假设,没有一个模型是适用于多种情况的。
发明内容
为克服上述现有技术难以应对多种情况的不足,本发明提出一种软件可靠性评估方法和系统。该方法和系统在软件可靠性评估过程中,综合考虑了操作剖面和软件测试数据,构建了基于测试数据的软件可靠性评估模型,对软件的可靠性进行评估。
实现上述目的所采用的解决方案为:
一种软件可靠性评估方法,其改进之处在于:
通过操作剖面获取软件各操作的使用概率;
基于软件测试数据,计算软件各个操作的可靠性;
根据预先设定的各操作的可靠性影响因子、所述各个操作的可靠性,并结合各操作的使用概率,计算所述软件的可靠性;
所述操作剖面为所有操作以及各个操作的使用概率。
本发明提供的第一优选技术方案,其改进之处在于,设定的各操作的可靠性影响因子,包括:
基于被测软件的功能结合层次分析法将被测软件划分为多个层级;
针每层的功能模块设定可靠性影响因子,其中底层的功能模块为被测软件的各个操作。
本发明提供的第二优选技术方案,其改进之处在于,所述针每层的功能模块设定可靠性影响因子,包括:
根据各功能模块的重要性确定各功能模块的权重;
根据所述软件总的可靠性影响因子和第一层各功能模块的权重,计算第一层各功能模块的可靠性影响因子;
对于第二层和以下各层,分别将上一层各功能模块的可靠性影响因子按照层级结构和权重分解至当前层,直到得到所述软件各操作的影响因子。
本发明提供的第三优选技术方案,其改进之处在于,所述根据所述软件总的可靠性影响因子和第一层各功能模块的权重,计算第一层各功能模块的可靠性影响因子,如下式所示:
其中,α为所述软件总的可靠性影响因子,n1为第一层功能模块的个数,sIM1i为第一层第i个功能模块的权重,f为单位权重对应的可靠性影响因子,fM1i为第一层的第i个功能模块的可靠性影响因子。
本发明提供的第四优选技术方案,其改进之处在于,所述对于第二层和以下各层,分别将上一层各功能模块的可靠性影响因子按照层级结构和权重分解至当前层,如下式所示:
其中,β表示当前层级数,(β-1)表示上一层级数,i为上一层功能模块的编号,j为对应上一层第i个功能模块的当前层功能模块的编号,nβi表示对应上一层第i个功能模块的当前层功能模块的数目,fM(β-1)i表示上一层第i个功能模块的可靠性影响因子,fMβij表示对应上一层第i个功能模块的当前层第j个功能模块的可靠性影响因子,f为单位权重对应的可靠性影响因子,sIMβij表示对应上一层第i个功能模块的当前层第j个功能模块的权重。
本发明提供的第五优选技术方案,其改进之处在于,所述基于软件测试数据,计算软件各个操作的可靠性,包括:
针对每个操作,根据软件测试数据,得到采用设定的各测试用例类型测试所述操作产生的软件问题,以及各软件问题的严重性类型和各严重性类型对软件的可靠性影响因素;
根据所述严重性类型和严重性类型对软件的可靠性影响因素,计算每个测试用例类型测试所述操作产生的所有软件问题对软件的可靠性影响因素;
根据各测试用例类型测试所述操作产生的所有软件问题对软件的可靠性影响因素,结合各测试用例类型测的使用概率,计算所述操作产生软件问题时对软件的可靠性。
本发明提供的第六优选技术方案,其改进之处在于,所述根据各测试用例类型测试所述操作产生的所有软件问题对软件的可靠性影响因素,结合各测试用例类型测的使用概率,计算所述操作产生软件问题时对软件的可靠性,如下式所示:
其中,rFP表示所述操作产生软件问题时对软件的可靠性,n表示所述操作的测试用例类型的总个数,pProλ表示所述操作的第λ类测试用例类型的使用概率,fOUλ表示第λ类测试用例类型测试所述操作产生的所有软件问题对软件的可靠性影响因素。
本发明提供的第七优选技术方案,其改进之处在于,所述根据所述严重性类型和严重性类型对软件的可靠性影响因素,计算每个测试用例类型测试所述操作产生的所有软件问题对软件的可靠性影响因素,如下式所示:
其中,λ表示测试用例类型,k为各软件问题的标志,t表示严重性类型,N表示采用第λ类测试用例类型测试所述操作产生软件问题的个数,fSertkλ表示采用第λ类测试用例类型测试所述操作产生第t类严重性类型的软件问题对软件的可靠性影响因素,fOUλ表示第λ类测试用例类型测试所述操作产生的所有软件问题对软件的可靠性影响因素。
本发明提供的第八优选技术方案,其改进之处在于,所述根据预先设定的各操作的可靠性影响因子、所述各个操作的可靠性,并结合各操作的使用概率,计算所述软件的可靠性,如下式所示:
其中,R表示所述软件的可靠性,δ表示软件的各操作的标志,γ表示所述软件的操作的总个数,pOperδ表示所述软件的第δ个操作的使用概率,rFPδ表示所述软件第δ个操作产生软件问题时对软件的可靠性,fOperδ表示所述软件第δ个操作的可靠性影响因子。
一种软件可靠性评估系统,其改进之处在于,包括:操作概率模块、操作可靠性模块和综合计算模块;
所述操作概率模块,用于通过操作剖面获取软件各操作的使用概率;
所述操作可靠性模块,用于基于软件测试数据,计算软件各个操作的可靠性;
所述综合计算模块,用于根据预先设定的各操作的可靠性影响因子、所述各个操作的可靠性,并结合各操作的使用概率,计算所述软件的可靠性;
所述操作剖面为所有操作以及各个操作的使用概率。
与最接近的现有技术相比,本发明具有的有益效果如下:
本发明提供的软件可靠性评估方法和系统,通过操作剖面取得各操作的使用概率,通过软件测试数据得到软件各个操作的可靠性,并结合各操作的可靠性影响因子,计算软件的可靠性,给出了一个通用的、适用于多种情况的软件可靠性评估方法和系统,克服了现有技术难以应对多种情况的软件可靠性测试的不足。
附图说明
图1为本发明提供的一种软件可靠性评估方法流程示意图;
图2为本发明提供的基于测试数据、操作剖面的软件可靠性评估技术框架示意图;
图3为本发明提供的一种软件可靠性评估系统基本结构示意图;
图4为本发明提供的一种软件可靠性评估系统详细结构示意图。
具体实施方式
下面结合附图对本发明的具体实施方式做进一步的详细说明。
实施例1:
本发明提供的一种软件可靠性评估方法流程示意图如图1所示,包括:
步骤1:通过操作剖面获取软件各操作的使用概率;
步骤2:基于软件测试数据,计算软件各个操作的可靠性;
步骤3:根据预先设定的各操作的可靠性影响因子、各个操作的可靠性,并结合各操作的使用概率,计算软件的可靠性;
操作剖面为所有操作以及各个操作的使用概率。
本发明介绍的软件可靠性评估方法是基于测试数据建立的,一般来说,软件测试过程如下:首先从测试的角度对软件需求进行分解细化,生成软件测试需求树,确定操作集;通过对操作集中的操作设计各种类型的测试用例;根据测试用例执行后产生的软件问题编写软件问题报告,并分析其严重性;通过操作剖面的获取得出各操作的实际使用频度。基于测试数据、操作剖面的软件可靠性评估技术框架如图2所示,主要包括两部分内容:(a)软件测试数据及其关系;(b)软件可靠性评估框架。
通过图2可知,软件可靠性评估模型中的数据来源于四个部分:(1)分析软件的相关文档,采用层次分析法,获取软件的操作集,依据各操作的重要性计算操作的可靠性影响因子;(2)获取各操作的实际使用概率;(3)通过设计各操作对应的测试用例,按照测试用例的测试类型,给出测试用例的使用概率,作为测试用例对应的软件问题的实际出现概率;(4)执行测试用例后,分析发现的软件问题的严重性
因此结合第某个操作产生在测试时产生的软件问题时对软件的可靠性,通过层次分析法分析软件需求文档得出的操作的可靠性影响因子以及通过操作剖面得出操作的使用概率,计算可得软件的可靠性
具体的,一种软件可靠性评估方法包括:
步骤101:获取软件各个操作的可靠性影响因子,具体如下:
本发明的测试需求树主要是按照需求文档来划分软件的功能模块,在软件测试时划分功能模块并不考虑其与可靠性的关系。功能模块的重要性反映了该模块产生软件问题时对软件整体功能的影响程度,一般来说,该模块越重要,它应具有失效率越低(可靠度越高),对软件整体可靠性贡献就越大。反之,若该模块不重要,即使有较高的失效率,对整个系统的可靠性贡献也有限。对软件的可靠性贡献可以看做是对软件的可靠性影响。例如,在日常使用ATM机器时,查询余额的操作频度远大于存钱、取钱的操作频度,但是存钱、取钱的操作一旦发生失效时对软件的可靠性影响远大于查询余额时发生失效对软件的可靠性影响,所以即使操作频度大的操作对软件可靠性贡献也可以很低。
通过假定整个软件的可靠性影响因子为α,通常可将α取值为1,并根据各层各功能模块重要性的不同,对整个软件的可靠性影响因子进行分配,并最终确立各操作的可靠性影响因子。本发明通过采用层次分析法,逐层分析各功能模块对软件的可靠性影响,最终获得功能节点,即操作。由于本发明中只对功能模块的重要性进行考虑,因此所采用的层次分析法会进行适当的改变。首先根据各功能模块对软件的重要性,给出各功能模块重要性对应的量化指标,表1为根据模块所属重要性类型所给出的权重值sIM,其中用户对量化指标可以根据实际情况进行相应的调整。
表1模块重要性的量化指标
模块重要性 | 权重值 |
高 | 0.5 |
中 | 0.3 |
低 | 0.2 |
根据表1所提供的量化指标,采用层次分析法分析各功能模块的可靠性影响因子,最终获得操作的可靠性影响因子的过程,可以概括为以下四个步骤:
步骤101-1:基于软件测试所建立的测试生成树,获得软件的递阶层次结构,同时获取递阶层次结构中各个层级中的各功能模块的重要性。
其中,递阶层次结构包括多个层级,每一层包括功能模块,第一层的功能模块对应该软件,第二层和以下各层的功能模块分别对应上一层的各功能模块,最底层的功能模块为软件的操作。
步骤101-2:假定整个软件的可靠性影响因子为1,根据第一层中各功能模块的重要性及表1找出根据各功能模块的重要性对应的权重值,计算第一层中各功能模块的可靠性影响因子,令f为单位权重值对应的功能模块的可靠性影响因子,n1为第一层的所有软件模块的个数,sIM1i为第一层第i个功能模块的权重,fM1i为第一层的第i个功能模块的可靠性影响因子。计算公式如下:
步骤101-3:通过公式(1)计算第一层各功能模块的可靠性影响因子fM1i,以及通过对第一层中第i个功能模块进行划分后,其对应的第二层功能模块j的重要性对应的权重值sIM2ij,如下式计算第一层第i个功能模块对应的第二层的各功能模块可靠性影响因子fM2ij:
公式(2)中,n2i为第一层第i个功能模块对应的第二层功能模块的个数,j表示第一层第i个功能模块对应的第二层功能模块的标志。
步骤101-4:重复步骤101-3,获得第一层中其他功能模块对应的第二层的各功能模块的可靠性影响因子,以及采用步骤101-3的方法,逐层计算各层功能模块的可靠性影响因子,直到得到软件各操作的可靠性影响因子fOperδ,具体计算方法如下式:
公式(3)中,β表示当前层级数,(β-1)表示上一层级数,i为上一层功能模块的编号,j为对应上一层第i个功能模块的当前层功能模块的编号,nβi表示对应上一层第i个功能模块的当前层功能模块的数目,fM(β-1)i表示上一层第i个功能模块的可靠性影响因子,fMβij表示对应上一层第i个功能模块的当前层第j个功能模块的可靠性影响因子,f为单位权重对应的可靠性影响因子,sIMβij表示对应上一层第i个功能模块的当前层第j个功能模块的权重。
其中,最终获得的各操作的可靠性影响因子应满足下式:
公式(4)中,δ表示软件的各操作的标志,γ表示软件的操作的总个数。
步骤102:获取软件各操作的可靠性。
获取软件各操作的可靠性基于软件问题的实际出现概率实现。软件问题指的是在测试过程中执行相关测试用例发现的问题,而软件失效是指软件交付使用后,用户在使用软件提供的操作时发生的软件故障。而用户在实际应用中具体使用某个操作进行输入数据时,提供正常数据的概率要远比边界或非法数据的概率要高,也就是说一个由正常测试用例发现的软件问题在用户真实使用软件时出现的概率要高于由边界或非法测试用例发现的软件问题出现的概率高。对基于测试数据进行的可靠性评估,需考虑测试用例类型的实际出现概率,在本发明中假设其如表2所示。用户可以根据实际情况对表中的概率值进行调整。在设计良好的测试中,软件问题报告与测试用例通常具有一一对应的关系,软件问题的实际出现概率用pPro表示。
表2测试用例类型的量化指标
类型 | 出现概率 |
正常 | 0.8 |
边界 | 0.1 |
非法 | 0.1 |
由于测试用例不会同时执行,因而其发现的软件问题通常是相互无关的。每个操作的每类测试用例可能会产生多个软件问题,各软件问题的严重性对软件的可靠性影响不同,因此需采用并联系统可靠性理论确定操作i的j类测试用例产生的所有软件问题时对软件的可靠性fOUij。所谓并联系统可靠性理论是指:当一个系统的所有子系统都不能工作时,系统才会停止运行,而此时该系统的软件可靠性Rs可以记为:
其中ri是指第i个子系统的可靠性,k是指该系统含有k个子系统。
将并联系统可靠性理论运用于计算一个操作的λ类测试用例的软件问题产生时对软件的可靠性影响因素fOUλ,具体过程如下:
步骤102-1:针对每个操作,通过测试后获得的软件测试数据即软件问题报告,根据采用第λ类测试用例类型测试该操作产生的第k个软件问题,找出其属于的严重性类型t以及该类严重性类型对软件的可靠性影响因素fSertkλ。如表3所示,软件问题的严重性类型共10个。
表3软件问题的严重性类型
序号 | 严重性类型 |
1 | 功能缺失 |
2 | 功能错误 |
3 | 性能缺陷 |
4 | 文档问题 |
5 | 用户界面问题 |
6 | 流程问题 |
7 | 接口问题 |
8 | 标准符合性问题 |
9 | 稳定性问题 |
10 | 易用性问题 |
步骤102-2:运用并联系统可靠性理论,计算采用λ类测试用例类型测试该操作产生的所有软件问题对软件的可靠性影响因素fOUλ,如下式:
公式(6)中,k为各软件问题的标志,N表示采用第λ类测试用例类型测试该操作产生软件问题的个数。
步骤102-3:根据fOUλ和获取的各类测试用例的使用概率pProλ,计算一个操作产生软件问题时对软件的可靠性rFP。
由于测试用例不会同时执行,因此可以认为测试用例之间是相互独立的。根据一个操作的λ类测试用例的使用概率pProλ以及fOUλ,同样采用前面介绍的并联系统可靠性理论计算一个操作在测试时产生软件问题时的对软件的可靠性rFP,计算公式如下:
公式(7)中,n表示操作的测试用例类型的总个数。
步骤103:获取软件各个操作的使用概率。
获取软件各个操作的使用概率也即获取软件的操作剖面。欧空局(ESA)标准PSS-01-21(1991)“ESA空间系统软件产品保证要求”中将操作剖面描述为:“对系统使用条件的定义,系统的输入值都用其按时间的分布或按它们在可能输入范围内出现概率的分布来定义”。简单来说,操作剖面为所有操作以及各个操作的使用概率。从软件可靠性测试被提出以来,操作剖面一直是软件可靠性所关心的内容。在Musa的研究中,构造操作剖面是最为关键的一项工作,通过操作剖面描述出用户对软件的使用情况,并在此基础上通过测试产生测试数据,从而构建软件可靠性评估模型。
获取操作剖面的具体方法包括:
I基于操作日志获取操作剖面
日志是指系统所指定对象的某些操作和其操作结果按时间有序的集合。现在日志管理功能成为应用系统不可或缺的部分,根据所属系统的类型,日志一般分为三种:操作系统日志、数据库日志、应用服务器日志。如今,一些大型项目的需求很难一次性开发完毕,往往采用迭代开发的方法,即先开发一个原型系统给用户使用。对于此类项目来说,可以通过收集并统计用户的操作日志得到操作列表和操作频率,当操作总数达到一定值,可以用操作频率/操作总数近似于操作i的使用概率pi,如下公式(8)所示。
公式(8)中,Ti代表操作i的次数,n为操作的种类。
II基于专家咨询法获取操作剖面
专家咨询法又称德尔菲法(Delphi),其特点在于集中专家的经验和意见,采取百分制打分的方式,确定各指标的权重值,并经过不断的反馈和修改得到比较满意的结果。在这一过程中,专家们处于互不知情的隔离状态,每个专家对软件的所有操作的使用情况进行独立的打分。专家咨询法的优点在于这种方法操作简单,专家打分比较直观。
下面是通过专家咨询法获得各操作的使用情况的步骤:
1、根据软件的相关文档,分析出用户需要使用的操作集。
2、根据用户或者专家在日常使用过程中对操作的使用情况进行划分,可以设定四个等级:频繁使用、一般使用、偶尔使用、基本不使用。
3、对各操作的使用情况进行分类。
4、将专家咨询法得出的各操作的使用情况进行量化。最后通过专家咨询法得出操作的使用情况,分析一个操作的实际使用概率pOper。
III基于操作插桩法获取操作概率
简单的说,插桩方法是借助向被测程序中插入探针来实现测试目的的方法。插桩技术在白盒测试中得到了大量的应用。白盒测试中的程序插桩是在各分支语句、循环语句等添加插桩代码。借助白盒测试中插桩原理,提出可在各操作对应的程序模块的入口处插入探针,用于记录该操作实际执行情况,在软件实际运行一段时间后对各操作执行记录进行分析,获得各操作的执行次数。
步骤104:根据各个操作的可靠性影响因子、各个操作可靠性,并结合各操作的使用概率,计算软件的可靠性。
具体计算公式如下:
其中,R表示软件的可靠性,δ表示软件的各操作的标志,γ表示软件的操作的总个数,pOperδ表示软件的第δ个操作的使用概率,rFPδ表示软件第δ个操作产生软件问题时对软件的可靠性,fOperδ表示件第δ个操作的可靠性影响因子。
实施例2:
下面给出一个软件可靠性评估方法的具体实施例。
本发明提供的基于假设检验的嵌入式基础软件可靠性评估方法包括下述步骤:
(1)分析软件系统的相关文档,采用层次分析法,获取软件系统的操作集,依据各操作的重要性计算操作的可靠性影响因子;
(2)通过介绍的获取操作剖面的方法,得出各操作的实际使用概率;
(3)通过设计各操作对应的测试用例,按照测试用例的测试类型,给出测试用例的经验使用概率,作为测试用例对应的软件问题的实际出现概率;
(4)执行测试用例后,分析发现的软件问题的严重性。
为了验证所建立模型的正确性,先假设存在这么一个已测试的软件,其中测试数据如下:有4个功能模块,分别是登陆、过程管理、资源管理、退出;过程管理下的子功能模块有测试需求、测试策划、测试执行;资源管理下的子功能模块有普通资源、知识资源。分别根据功能模块的重要性设置相应的权重值。参照表1给出的值和公式(1)、公式(3),按照层次分析法计算出各功能模块的可靠性影响因子fM(结果保留两位小数)。根据专家咨询法对各叶节点的功能模块设计操作,并分析各操作的使用概率,可以得出各操作使用概率数据pOperδ。根据软件测试报告得到各操作下的测试用例相关数据如数据fSertkλ、pProλ,根据公式(6)、公式(7)计算某个操作的某类测试用例的软件问题产生时对操作的可靠性影响因子fOU和某个操作在测试时产生软件问题时的操作的可靠性rFP。最后根据公式(9),计算软件系统的可靠性R。
实施例3:
基于同一发明构思,本发明还提供了一种软件可靠性评估系统,由于这些设备解决技术问题的原理软件可靠性评估方法相似,重复之处不再赘述。
该系统基本结构如图3所示,包括:
操作概率模块、操作可靠性模块和综合计算模块;
其中,操作概率模块,用于通过操作剖面获取软件各操作的使用概率;
操作可靠性模块,用于基于软件测试数据,计算软件各个操作的可靠性;
综合计算模块,用于根据预先设定的各操作的可靠性影响因子、各个操作的可靠性,并结合各操作的使用概率,计算软件的可靠性;
操作剖面为所有操作以及各个操作的使用概率。
其中,该系统,具体结构如图4所示,还包括用于设定的各操作的可靠性影响因子的影响因子模块;影响因子模块包括层级划分单元和影响因子设定单元;
层级划分单元,用于基于被测软件的功能结合层次分析法将被测软件划分为多个层级;
影响因子设定单元,用于针每层的功能模块设定可靠性影响因子,其中底层的功能模块为被测软件的各个操作。
其中,影响因子设定单元包括权重子单元、第一层子单元和下层子单元;
权重子单元,用于根据各功能模块的重要性确定各功能模块的权重;
第一层子单元,用于根据软件总的可靠性影响因子和第一层各功能模块的权重,计算第一层各功能模块的可靠性影响因子;
下层子单元,用于对于第二层和以下各层,分别将上一层各功能模块的可靠性影响因子按照层级结构和权重分解至当前层,直到得到软件各操作的影响因子。
其中,根据软件总的可靠性影响因子和第一层各功能模块的权重,计算第一层各功能模块的可靠性影响因子,如下式所示:
其中,α为软件总的可靠性影响因子,n1为第一层功能模块的个数,sIM1i为第一层第i个功能模块的权重,f为单位权重对应的可靠性影响因子,fM1i为第一层的第i个功能模块的可靠性影响因子。
其中,对于第二层和以下各层,分别将上一层各功能模块的可靠性影响因子按照层级结构和权重分解至当前层,如下式所示:
其中,β表示当前层级数,(β-1)表示上一层级数,i为上一层功能模块的编号,j为对应上一层第i个功能模块的当前层功能模块的编号,nβi表示对应上一层第i个功能模块的当前层功能模块的数目,fM(β-1)i表示上一层第i个功能模块的可靠性影响因子,fMβij表示对应上一层第i个功能模块的当前层第j个功能模块的可靠性影响因子,f为单位权重对应的可靠性影响因子,sIMβij表示对应上一层第i个功能模块的当前层第j个功能模块的权重。
其中,操作可靠性模块包括:数据获取单元、用例类型影响因素单元和操作可靠性单元;
数据获取单元,用于针对每个操作,根据软件测试数据,得到采用设定的各测试用例类型测试操作产生的软件问题,以及各软件问题的严重性类型和各严重性类型对软件的可靠性影响因素;
用例类型影响因素单元,用于根据严重性类型和严重性类型对软件的可靠性影响因素,计算每个测试用例类型测试操作产生的所有软件问题对软件的可靠性影响因素;
操作可靠性单元,用于根据各测试用例类型测试操作产生的所有软件问题对软件的可靠性影响因素,结合各测试用例类型测的使用概率,计算操作产生软件问题时对软件的可靠性。
其中,根据各测试用例类型测试操作产生的所有软件问题对软件的可靠性影响因素,结合各测试用例类型测的使用概率,计算操作产生软件问题时对软件的可靠性,如下式所示:
其中,rFP表示操作产生软件问题时对软件的可靠性,n表示操作的测试用例类型的总个数,pProλ表示操作的第λ类测试用例类型的使用概率,fOUλ表示第λ类测试用例类型测试操作产生的所有软件问题对软件的可靠性影响因素。
其中,根据严重性类型和严重性类型对软件的可靠性影响因素,计算每个测试用例类型测试操作产生的所有软件问题对软件的可靠性影响因素,如下式所示:
其中,λ表示测试用例类型,k为各软件问题的标志,t表示严重性类型,N表示采用第λ类测试用例类型测试操作产生软件问题的个数,fSertkλ表示采用第λ类测试用例类型测试操作产生第t类严重性类型的软件问题对软件的可靠性影响因素,fOUλ表示第λ类测试用例类型测试操作产生的所有软件问题对软件的可靠性影响因素。
其中,根据预先设定的各操作的可靠性影响因子、各个操作的可靠性,并结合各操作的使用概率,计算软件的可靠性,如下式所示:
其中,R表示软件的可靠性,δ表示软件的各操作的标志,γ表示软件的操作的总个数,pOperδ表示软件的第δ个操作的使用概率,rFPδ表示软件第δ个操作产生软件问题时对软件的可靠性,fOperδ表示软件第δ个操作的可靠性影响因子。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用于说明本申请的技术方案而非对其保护范围的限制,尽管参照上述实施例对本申请进行了详细的说明,所属领域的普通技术人员应当理解:本领域技术人员阅读本申请后依然可对申请的具体实施方式进行种种变更、修改或者等同替换,但这些变更、修改或者等同替换,均在申请待批的权利要求保护范围之内。
Claims (10)
1.一种软件可靠性评估方法,其特征在于:
通过操作剖面获取软件各操作的使用概率;
基于软件测试数据,计算软件各个操作的可靠性;
根据预先设定的各操作的可靠性影响因子、所述各个操作的可靠性,并结合各操作的使用概率,计算所述软件的可靠性;
所述操作剖面为所有操作以及各个操作的使用概率。
2.如权利要求1所述的方法,其特征在于,设定的各操作的可靠性影响因子,包括:
基于被测软件的功能结合层次分析法将被测软件划分为多个层级;
针每层的功能模块设定可靠性影响因子,其中底层的功能模块为被测软件的各个操作。
3.如权利要求2所述的方法,其特征在于,所述针每层的功能模块设定可靠性影响因子,包括:
根据各功能模块的重要性确定各功能模块的权重;
根据所述软件总的可靠性影响因子和第一层各功能模块的权重,计算第一层各功能模块的可靠性影响因子;
对于第二层和以下各层,分别将上一层各功能模块的可靠性影响因子按照层级结构和权重分解至当前层,直到得到所述软件各操作的影响因子。
4.如权利要求3所述的方法,其特征在于,所述根据所述软件总的可靠性影响因子和第一层各功能模块的权重,计算第一层各功能模块的可靠性影响因子,如下式所示:
其中,α为所述软件总的可靠性影响因子,n1为第一层功能模块的个数,sIM1i为第一层第i个功能模块的权重,f为单位权重对应的可靠性影响因子,fM1i为第一层的第i个功能模块的可靠性影响因子。
5.如权利要求3所述的方法,其特征在于,所述对于第二层和以下各层,分别将上一层各功能模块的可靠性影响因子按照层级结构和权重分解至当前层,如下式所示:
其中,β表示当前层级数,(β-1)表示上一层级数,i为上一层功能模块的编号,j为对应上一层第i个功能模块的当前层功能模块的编号,nβi表示对应上一层第i个功能模块的当前层功能模块的数目,fM(β-1)i表示上一层第i个功能模块的可靠性影响因子,fMβij表示对应上一层第i个功能模块的当前层第j个功能模块的可靠性影响因子,f为单位权重对应的可靠性影响因子,sIMβij表示对应上一层第i个功能模块的当前层第j个功能模块的权重。
6.如权利要求1所述的方法,其特征在于,所述基于软件测试数据,计算软件各个操作的可靠性,包括:
针对每个操作,根据软件测试数据,得到采用设定的各测试用例类型测试所述操作产生的软件问题,以及各软件问题的严重性类型和各严重性类型对软件的可靠性影响因素;
根据所述严重性类型和严重性类型对软件的可靠性影响因素,计算每个测试用例类型测试所述操作产生的所有软件问题对软件的可靠性影响因素;
根据各测试用例类型测试所述操作产生的所有软件问题对软件的可靠性影响因素,结合各测试用例类型测的使用概率,计算所述操作产生软件问题时对软件的可靠性。
7.如权利要求6所述的方法,其特征在于,所述根据各测试用例类型测试所述操作产生的所有软件问题对软件的可靠性影响因素,结合各测试用例类型测的使用概率,计算所述操作产生软件问题时对软件的可靠性,如下式所示:
其中,rFP表示所述操作产生软件问题时对软件的可靠性,n表示所述操作的测试用例类型的总个数,pProλ表示所述操作的第λ类测试用例类型的使用概率,fOUλ表示第λ类测试用例类型测试所述操作产生的所有软件问题对软件的可靠性影响因素。
8.如权利要6所述的方法,其特征在于,所述根据所述严重性类型和严重性类型对软件的可靠性影响因素,计算每个测试用例类型测试所述操作产生的所有软件问题对软件的可靠性影响因素,如下式所示:
其中,λ表示测试用例类型,k为各软件问题的标志,t表示严重性类型,N表示采用第λ类测试用例类型测试所述操作产生软件问题的个数,fSertkλ表示采用第λ类测试用例类型测试所述操作产生第t类严重性类型的软件问题对软件的可靠性影响因素,fOUλ表示第λ类测试用例类型测试所述操作产生的所有软件问题对软件的可靠性影响因素。
9.如权利要求1所述的方法,其特征在于,所述根据预先设定的各操作的可靠性影响因子、所述各个操作的可靠性,并结合各操作的使用概率,计算所述软件的可靠性,如下式所示:
其中,R表示所述软件的可靠性,δ表示软件的各操作的标志,γ表示所述软件的操作的总个数,pOperδ表示所述软件的第δ个操作的使用概率,rFPδ表示所述软件第δ个操作产生软件问题时对软件的可靠性,fOperδ表示所述软件第δ个操作的可靠性影响因子。
10.一种软件可靠性评估系统,其特征在于,包括:操作概率模块、操作可靠性模块和综合计算模块;
所述操作概率模块,用于通过操作剖面获取软件各操作的使用概率;
所述操作可靠性模块,用于基于软件测试数据,计算软件各个操作的可靠性;
所述综合计算模块,用于根据预先设定的各操作的可靠性影响因子、所述各个操作的可靠性,并结合各操作的使用概率,计算所述软件的可靠性;
所述操作剖面为所有操作以及各个操作的使用概率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810876702.4A CN109408360A (zh) | 2018-08-03 | 2018-08-03 | 一种软件可靠性评估方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810876702.4A CN109408360A (zh) | 2018-08-03 | 2018-08-03 | 一种软件可靠性评估方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109408360A true CN109408360A (zh) | 2019-03-01 |
Family
ID=65463561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810876702.4A Pending CN109408360A (zh) | 2018-08-03 | 2018-08-03 | 一种软件可靠性评估方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109408360A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110096426A (zh) * | 2019-03-15 | 2019-08-06 | 北京航空航天大学 | 一种环境载荷条件下软件测试剖面建立方法 |
CN110347599A (zh) * | 2019-07-11 | 2019-10-18 | 电信科学技术第十研究所有限公司 | 一种基于测试缺陷数据的管理方法及装置 |
CN110806977A (zh) * | 2019-10-30 | 2020-02-18 | 泰康保险集团股份有限公司 | 基于产品需求的测试用例集生成方法、装置及电子设备 |
CN111061640A (zh) * | 2019-12-18 | 2020-04-24 | 电信科学技术第十研究所有限公司 | 一种软件可靠性测试用例筛选方法及系统 |
CN113807743A (zh) * | 2021-10-08 | 2021-12-17 | 中国电力科学研究院有限公司 | 一种电网调度自动化软件可靠性评估方法及系统 |
CN115203059A (zh) * | 2022-09-09 | 2022-10-18 | 中国西安卫星测控中心 | 一种航天测控软件可靠性的评估方法和评估系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100299129A1 (en) * | 2009-05-19 | 2010-11-25 | International Business Machines Corporation | Mapping Between Stress-Test Systems and Real World Systems |
CN102360332A (zh) * | 2011-09-28 | 2012-02-22 | 北京航空航天大学 | 一种软件可靠性加速测试与评估方法及其计算机辅助工具 |
CN102508774A (zh) * | 2011-10-28 | 2012-06-20 | 哈尔滨工程大学 | 基于新环境因子函数的软件可靠性增长模型的建模方法 |
CN102508772A (zh) * | 2011-10-14 | 2012-06-20 | 哈尔滨工业大学 | 基于pcstm模型考虑测试与运行剖面不同测的试数据转换构件软件可靠性分析方法 |
CN103914353A (zh) * | 2014-04-17 | 2014-07-09 | 北京航空航天大学 | 结合软件可靠性测试与硬件可靠性试验的联合试验方法 |
-
2018
- 2018-08-03 CN CN201810876702.4A patent/CN109408360A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100299129A1 (en) * | 2009-05-19 | 2010-11-25 | International Business Machines Corporation | Mapping Between Stress-Test Systems and Real World Systems |
CN102360332A (zh) * | 2011-09-28 | 2012-02-22 | 北京航空航天大学 | 一种软件可靠性加速测试与评估方法及其计算机辅助工具 |
CN102508772A (zh) * | 2011-10-14 | 2012-06-20 | 哈尔滨工业大学 | 基于pcstm模型考虑测试与运行剖面不同测的试数据转换构件软件可靠性分析方法 |
CN102508774A (zh) * | 2011-10-28 | 2012-06-20 | 哈尔滨工程大学 | 基于新环境因子函数的软件可靠性增长模型的建模方法 |
CN103914353A (zh) * | 2014-04-17 | 2014-07-09 | 北京航空航天大学 | 结合软件可靠性测试与硬件可靠性试验的联合试验方法 |
Non-Patent Citations (1)
Title |
---|
吴珊等: ""基于测试数据的软件可靠性评估方法研究"", 《"智慧城市和绿色IT"2011年通信与信息技术新进展——第八届中国通信学会学术年会》, pages 333 - 339 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110096426A (zh) * | 2019-03-15 | 2019-08-06 | 北京航空航天大学 | 一种环境载荷条件下软件测试剖面建立方法 |
CN110347599A (zh) * | 2019-07-11 | 2019-10-18 | 电信科学技术第十研究所有限公司 | 一种基于测试缺陷数据的管理方法及装置 |
CN110806977A (zh) * | 2019-10-30 | 2020-02-18 | 泰康保险集团股份有限公司 | 基于产品需求的测试用例集生成方法、装置及电子设备 |
CN111061640A (zh) * | 2019-12-18 | 2020-04-24 | 电信科学技术第十研究所有限公司 | 一种软件可靠性测试用例筛选方法及系统 |
CN111061640B (zh) * | 2019-12-18 | 2023-02-17 | 电信科学技术第十研究所有限公司 | 一种软件可靠性测试用例筛选方法及系统 |
CN113807743A (zh) * | 2021-10-08 | 2021-12-17 | 中国电力科学研究院有限公司 | 一种电网调度自动化软件可靠性评估方法及系统 |
CN115203059A (zh) * | 2022-09-09 | 2022-10-18 | 中国西安卫星测控中心 | 一种航天测控软件可靠性的评估方法和评估系统 |
CN115203059B (zh) * | 2022-09-09 | 2022-12-09 | 中国西安卫星测控中心 | 一种航天测控软件可靠性的评估方法和评估系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109408360A (zh) | 一种软件可靠性评估方法和系统 | |
Vanderfeesten et al. | Quality metrics for business process models | |
CN110442936A (zh) | 基于数字孪生模型的设备故障诊断方法、装置及系统 | |
Miller | Using dependency structures for prioritization of functional test suites | |
Talebiyan et al. | Decentralized decision making for the restoration of interdependent networks | |
Liu et al. | Analysis of dependencies among performance shaping factors in human reliability analysis based on a system dynamics approach | |
Siegmund et al. | Attributed variability models: outside the comfort zone | |
CN103825755A (zh) | 电力二次系统的建模方法与系统 | |
CN104375943A (zh) | 一种基于静态模型的嵌入式软件黑盒测试用例生成方法 | |
Tomar et al. | Prediction of quality using ANN based on Teaching‐Learning Optimization in component‐based software systems | |
Mostaeen et al. | Clonecognition: machine learning based code clone validation tool | |
Agarwal et al. | A comparative study of artificial neural networks and info-fuzzy networks as automated oracles in software testing | |
Gu et al. | Measuring object-oriented class cohesion based on complex networks | |
CN105511869A (zh) | 一种基于用户反馈的需求跟踪系统及方法 | |
CN105868115A (zh) | 软件密集型系统软件测试模型的构建方法和系统 | |
US20200327125A1 (en) | Systems and methods for hierarchical process mining | |
CN113761193A (zh) | 日志分类方法、装置、计算机设备和存储介质 | |
Fedasyuk et al. | Variables state-based software usage model | |
Arlitt et al. | A generative human-in-the-loop approach for conceptual design exploration using flow failure frequency in functional models | |
Zou et al. | Reliability analysis and allocation: Development of a hierarchical structure modeling platform in I&C system Software Life Cycle | |
CN106650945A (zh) | 一种基于证据合成理论的软件体系结构安全性评估方法 | |
Cárdenas et al. | The DEVStone metric: performance analysis of DEVS simulation engines | |
Zhang et al. | Key fault propagation path identification of CNC machine tools based on maximum occurrence probability | |
Cao et al. | Module library development via graph mining | |
Hao et al. | Ontology Alignment Repair Through 0-1 Programming |
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 |