CN111538655B - 软件故障检测方法、系统、存储介质、终端 - Google Patents
软件故障检测方法、系统、存储介质、终端 Download PDFInfo
- Publication number
- CN111538655B CN111538655B CN202010276212.8A CN202010276212A CN111538655B CN 111538655 B CN111538655 B CN 111538655B CN 202010276212 A CN202010276212 A CN 202010276212A CN 111538655 B CN111538655 B CN 111538655B
- Authority
- CN
- China
- Prior art keywords
- fault detection
- model
- repair
- imperfect
- debug
- 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.)
- Active
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/362—Software debugging
- G06F11/366—Software debugging using diagnostics
-
- 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
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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
- G06F11/3692—Test management for test results analysis
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal 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
本发明属于软件测试技术领域,公开了一种软件故障检测方法、系统、存储介质、计算机程序、终端,统一的故障检测与修复框架模型;故障检测率下考虑故障检测、修复与引入的不完美排错框架模型;所获得的统一的两类不完美排错框架模型,在初始条件下,被设定五种形式,继而分别求得五种情况累积故障检测函数。本发明提出统一的故障检测模型,建立可用于实施FDR研究的单一微分方程,进而建立涵盖故障检测、修复与引入的测试模型,建立可实施FDR研究的微分方程组。通过FDR支持下的这两类可靠性模型的性能,为区分不同FDR性能带来可能,并验证了建立含有丰富测试信息的可靠性模型对于提高可靠性的重要性。
Description
技术领域
本发明属于软件测试技术领域,尤其涉及一种软件故障检测方法、系统、存储介质、终端。
背景技术
目前,软件测试是不断提高软件可靠性的重要手段,采用软件可靠性增长模型SRGM定量地研究测试阶段软件可靠性的提高已被广泛采用。对可靠性进行有效度量与预测,要在建立准确的数学模型基础上进行研究。软件测试过程是多个复杂随机过程的统一,软件可靠性增长模型SRGM(software reliability and growth model)将这一过程进行假设,去掉若干因素,建立故障检测至修复过程的数学模型,求解得到某t时刻累积检测到的故障数量m(t),进而通过m(t)与可靠性R(t)的关联来得到R(t),进而再研究可靠性R(t)。可以看出,软件发布前是提高可靠性的重要时期,建立准确的描述测试过程的数学模型对于提高可靠性至关重要。通过建立有效的数学模型,得到m(t)并获得R(t),这是SRGM研究中的重要线索。
随着测试的进行,软件中的故障不断被排除掉,软件的可靠性得到持续增长。事实上,除了能够提高可靠性以外,SRGM还可以用于测试资源分配与管控、测试成本预估与管理、确定软件发布时间、计算与可靠性直接相关的指标等方面。因此,通过SRGM研究可靠性,在可靠性研究中占有重要地位。真实的软件测试过程包括从设计测试用例到进行故障修复等多个过程,会受到多种随机因素的影响,因而是较为复杂的随机过程,具有不完美现象。因此,将这种不完美现象融入到可靠性研究中形成了不完美排错研究这一分支领域。当前对不完美排错的研究主要包括两个层,包括被检测出来的错误没有被彻底排除(可被称为不完全排错)、排错中引入新的故障。从软件中累计的总的故障数量a(t)角度来看,对于引入新故障这类不完美排错会使得a(t)发生增长性变化。实际上,这些研究都是从不同角度和内容对不完美排错进行研究,但缺乏对软件测试过程中不完美排错的一体化研究,对不完美排错的建模中没有形成故障检测、修复与引入之间的定量关系。
测试过程的目的是不断发现与修复故障,提高可靠性,达到预期(发布)要求。客观上测试环境的不同,以及测试人员实施测试策略的差异,使得不同系统工程在测试中表现出不同的外在特征,故障检测率FDR就是典型的重要呈现。从建立数学模型的角度来看,不同模型的区别与FDR关联紧密,FDR宏观上刻画了测试环境下的故障检测能力,使得其成为影响SRGM性能的主要评测点。除测试覆盖、软件中全部故障数量外,故障检测率函数FDRF(Fault DetectionRate Function)b(t)是影响SRGM的重要因素,因而需要研究故障检测率b(t)对模型或可靠性的影响。
通过上述分析,现有技术存在的问题及缺陷为:现有技术缺乏对软件测试过程中不完美排错的一体化技术,没有准确建立软件测试过程中的故障检测、修复与引入之间的定量关系。
解决以上问题及缺陷的难度为:需要着重分析软件测试中不完美排错所涉及到的主要因素,关键与难点在于通过微分方程组的形式准确建立各因素之间的数学关系模型,使得FDR支持下的不完美排错模型具有优秀性能。
解决以上问题及缺陷的意义为:所建立的统一的FDR相关的不完美排错模型,充分考虑到了多种真实测试情况,能够更加准确的描述实际测试过程,可以指导软件测试人员确立测试中的可靠性增长模型,进而定量地提高软件可靠性,为测试资源投入、软件发布等带来重要的指导与决策意义。
发明内容
针对现有技术存在的问题,本发明提供了一种软件故障检测方法、系统、存储介质、终端。
本发明是这样实现的,一种软件故障检测方法,所述软件故障检测方法包括:
第一步,统一的故障检测与修复框架模型;
第二步,故障检测率下考虑故障检测、修复与引入的不完美排错框架模型;
第三步,所获得的统一的两类不完美排错框架模型,在初始条件下,被设定五种形式,继而分别求得五种情况累积故障检测函数。
进一步,所述第一步统一的故障检测与修复框架模型包括:
一般的故障检测与修复过程建模:
将t时刻检测的故障数量认为与当前剩余的故障总数成比例,比例系数是b(t),p(t)表示故障修复概率,即故障修复是不完全修复;
在m(0)=0,a(0)=a的初始条件下,进行求解,对应的齐次方程为:
其解为:
令C=u(t)得:
代入原方程得到:
对u'(t)积分得u(t)代入原方程得:
对于m(0)=0,C=0,则得到:
式中b(t),p(t)和a(t)的多种设置,得到多种m(t)。
进一步,所述第二步故障检测率下考虑故障检测、修复与引入的不完美排错框架模型包括:考虑不完美排错的统一的软件测试模型,得到方程组:
t时刻增加的故障数量与该时刻修复的故障数量成比例;故障检测、修复与引入三者之间的关联,m(t)和a(t)是待求解函数,故障检测率b(t),故障修复率p(t)和故障引入率r(t)是对整体测试环境下测试水平的描述;
m(t)和a(t)是由三个参变量函数k(t)、p(t)和r(t)刻画和决定的,合理设置三个参函数可以得到描述实际测试过程的准确模型;待求函数为m(t)和a(t),在m(0)=0和a(0)=a的初始条件下进行求解;
边界条件是:m(t)=0和a(t)=a;p(t)=p,边界条件是:m(t)=0和a(t)=a;
x(t)=a(t)-p·m(t);
对两边同时求微分得:
将中代入/>中得:
将中代入/>中得:
将x(t)=a(t)-p·m(t)代入中得:
由初始条件可得x(0)=a(0)-p·m(0)=a。则由一阶齐次线性微分方程的通解,可得解为:
将x(t)=a(t)-p·m(t)代入中得:
将代入/>中解得:
将代入中/>解得:
进一步,所述第三步基于所获得的统一的两类不完美排错框架模型,按照b(t)进行分析,在m(0)=0和a(0)=a的初始条件下,b(t)被设定为b1(t),b2(t),b3(t),b4(t)和b5(t),继而分别求得下面五种情况累积故障检测函数m(t):
(1)若b1(t)=bαβe-βt,则可求得m(t)如下:
其中mIDI_1(t)和mIDII_1(t)分别表示两类不完美排错框架模型在同一b(t)参与得到的具体的累积故障检测函数m(t);
此时,随着测试的持续进行,b1(t→∞)=0;
(2)若则求得m(t)如下:
随着测试的持续进行,b2(t→∞)→b;
(3)若则求得m(t)如下:
此时,随着测试的持续进行,b3(t→∞)=0;
(4)若b4(t)=b2t/(1+bt),则求得m(t)如下:
此时,随着测试的持续进行,b4(t→∞)→b;
(5)若则可以求得m(t)如下:
此时,随着测试的持续进行,b5(t→∞)→b(1+σ)。
本发明的另一目的在于提供一种接收用户输入程序存储介质,所存储的计算机程序使电子设备执行下列步骤:
第一步,统一的故障检测与修复框架模型;
第二步,故障检测率下考虑故障检测、修复与引入的不完美排错框架模型;
第三步,所获得的统一的两类不完美排错框架模型,在初始条件下,被设定五种形式,继而分别求得五种情况累积故障检测函数。
本发明的另一目的在于提供一种存储在计算机可读介质上的计算机程序产品,包括计算机可读程序,供于电子装置上执行时,提供用户输入接口以实施所述的软件故障检测方法。
本发明的另一目的在于提供一种实施所述的软件故障检测方法的软件故障检测系统,所述软件故障检测系统包括:
第一不完美排错模块,用于统一的故障检测与修复框架模型;
第二不完美排错模块,故障检测率下考虑故障检测、修复与引入的不完美排错框架模型;
累积故障检测函数模块,用于所获得的统一的两类不完美排错框架模型,在初始条件下,被设定五种形式,继而分别求得五种情况累积故障检测函数。
本发明的另一目的有助于形成一种终端,所述终端搭载所述的软件故障检测系统。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明从可靠性建模中必不可少的构成要素故障检测率FDR(Fault Detection Rate)角度,提出两类不完美排错下可靠性模型,提出的模型是一种相对柔韧的与统一的软件可靠性增长模型。首先考虑排错不完全现象与故障修复,建立FDR相关的统一的不完美排错框架模型,称之为不完美排错I型;在此基础之上,进一步考虑排错中新故障引入,建立支持多种FDR的统一的不完美排错框架模型,称之为不完美排错II型。最后,将多个具体的FDR融入到两类不完美排错框架模型中,衍生得到一系列具体的可靠性模型。基于对两类不完美排错模型在多个公开发表的失效数据集上的分析,从拟合度量和预测研判角度分析模型性能差异,找到了更加能够描述故障检测过程的故障检测率函数。将此故障检测率函数融入到两类不完美排错模型中得到了更加准确的模型,使得该模型具有优秀性能,明显优于其他模型,能够更加细腻的描述真实的测试过程,指导软件测试人员定量地提高软件可靠性。
本发明提出统一的故障检测(含修复)模型,建立可用于实施FDR研究的单一微分方程,进而建立涵盖故障检测、修复与引入的测试模型,建立可实施FDR研究的微分方程组。通过FDR支持下的这两类可靠性模型的性能,为区分不同FDR性能带来可能,并验证了建立含有丰富测试信息的可靠性模型对于提高可靠性的重要性。本发明提出的不完美排错的软件可靠性过程分析方法,着重考虑了FDR的影响,建立了不完美排错下FDR相关的统一框架模型,对于提高软件可靠性具有重要意义。
附图说明
图1是本发明实施例提供的软件故障检测方法流程图。
图2是本发明实施例提供的软件故障检测系统的结构示意图;
图中:1、第一不完美排错模块;2、第二不完美排错模块;3、累积故障检测函数模块。
图3是本发明实施例提供的IDI类模型的拟合曲线示意图;
图中:(a)IDI类模型在DS1上拟合曲线;(b)IDI类模型在DS2上拟合曲线;(c)IDI类模型在DS3上拟合曲线。
图4是本发明实施例提供的IDII类模型的拟合曲线示意图;
图中:(a)IDII类模型在DS1上拟合曲线;(b)IDII类模型在DS2上拟合曲线;(c)IDII类模型在DS3上拟合曲线。
图5是本发明实施例提供的模型的拟合曲线示意图;
图中:(a)模型在DS1上拟合曲线;(b)模型在DS2上拟合曲线;(c)模型在DS3上拟合曲线。
图6是本发明实施例提供的模型的预测曲线示意图;
图中:(a)模型在DS1上的预测曲线;(b)模型在DS2上的预测曲线;(c)模型在DS3上的预测曲线。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种软件故障检测方法、系统、存储介质、终端,下面结合附图对本发明作详细的描述。
如图1所示,本发明提供的软件故障检测方法包括以下步骤:
S101:统一的故障检测与修复框架模型;
S102:故障检测率下考虑故障检测、修复与引入的不完美排错框架模型;
S103:所获得的统一的两类不完美排错框架模型,在初始条件下,被设定五种形式,继而分别求得五种情况累积故障检测函数。
如图2所示,本发明提供的软件故障检测系统包括:
第一不完美排错模块1,用于统一的故障检测与修复框架模型。
第二不完美排错模块2,故障检测率下考虑故障检测、修复与引入的不完美排错框架模型。
累积故障检测函数模块3,用于所获得的统一的两类不完美排错框架模型,在初始条件下,被设定五种形式,继而分别求得五种情况累积故障检测函数。
下面结合附图对本发明的技术方案作进一步的描述。
1、不完美排错与FDR
在当前不完美排错中,整体上可以分为不完全排错与(或)引入新故障,这些都是实际的软件测试过程中的真实情况,进行如下分类:
(1)不完全排错:考虑测试中的修复工作,但修复是不完全的,存在着被不完全修复的部分故障可能在后续测试中被检测到的现象。这种情况可以被解释为,排错人员的经验与熟练度存在着差异,以及排错环境等因素等,会导致被检测出的故障存在着没有被彻底修复的可能。
(2)引入新故障:考虑测试中的修复工作,但修复是不完全的,且存在着修复中引入新故障现象。这种情况可以被解释为,在真实的软件测试过程中,被检测到的故障要经历报告、诊断、隔离、修复(改正)与验证环节,这使得修复中存在着破坏软件的固有结构,会导致故障排除过程中存在着引入新故障的可能。
在当前软件可靠性增长模型的研究中,其所建立的各种模型均包含FDR,FDR也成为了可靠性研究中必不可少的要素。FDR具备描述整体测试环境下的故障检测能力,对于故障检测、修复等环节带来重要影响,将直接影响到软件可靠性。虽然有一些FDR函数被提出,用于直接参与到可靠性模型的建立,但尚未对FDR的性能进行分析。
综上,排错的不完全性与引入新故障是典型的不完美排错现象,FDR是建模可靠性模型的重要参数,但在当前的研究中缺乏对三者的全面与深入研究,显得较为薄弱。
2、不完美排错下故障检测率相关的SRGM
2.1基本假设
基于对测试环境的认知,考虑故障检测率相关的不完美排错模型的假设如下:
(1)故障检测与修复过程服从非齐次泊松分布过程NHPP(Non-HomogeneousPoisson Process);
(2)软件失效由软件中剩余的故障引发;
(3)在时间区间(t,t+Δt)内,最多发生一个故障,且所检测到的故障数量与当前剩余的故障总数成比例,比例系数为p(t);
(4)在时间区间(t,t+Δt)内,被修复的故障数量与被检测的故障数量成比例;
(5)故障修复的过程中,存在引入新故障现象,引入的故障数量与累积修复的故障数量成比例,比例系数为r(t)。
基于上面的假设,本发明可以建立两种类型的不完美排错模型。
2.2不完美排错I型:统一的故障检测与修复框架模型
FDR是软件测试过程中测试技术综合运用取得的结果,即可以从测试覆盖角度进行建模,也可以从测试工作量,还可以直接根据实际进行设定。FDF与可靠性的建模与度量紧密相关,在当前可查证到的SRGM研究中,所有模型的建立均是基于下面的假设,即“t时刻累积检测的故障数量与当前软件中剩余的故障数量成比例”。为此,提出一般的故障检测与修复过程建模:
将t时刻检测的故障数量认为与当前剩余的故障总数成比例,比例系数是b(t),p(t)表示故障修复概率,即故障修复是不完全修复。
在m(0)=0,a(0)=a的初始条件下,进行求解。公式(1)对应的(一元微分方程)齐次方程为:
其解为:
令C=u(t)得:
代入原方程可以得到:
对u'(t)积分得u(t)代入原方程得:
对于m(0)=0,C=0,则可以得到:
显然,公式(3)中b(t),p(t)和a(t)的多种设置,可以得到多种m(t),因此,这里提出的是一种框架式模型,具有较强的柔韧性。
2.3不完美排错II型:故障检测率下考虑故障检测、修复与引入的不完美排错框架模型:
在大型软件系统的测试过程中,软件结构复杂,程序员对故障的修复很可能会破坏程序原有结构,进而会引入新故障。为此,在所建立模型(1)的基础上,从故障检测、修复与引入的角度,提出考虑不完美排错的统一的软件测试模型如下。
在假设(1)至(5)的基础上,可以得到公式(4)的方程组:
第二个微分方程建立了故障引入的过程,即t时刻增加的故障数量与该时刻修复的故障数量成比例。由于新故障的引入是在故障修复的过程中发生,而非故障检测的过程,因此t时刻增加的故障数量与t时刻修复的故障数量成比例。公式(4)整体上建模描述了故障检测、修复与引入三者之间的关联,m(t)和a(t)是待求解函数,故障检测率b(t),故障修复率p(t)和故障引入率r(t)是对整体测试环境下测试水平的描述。
可以看出,m(t)和a(t)是由三个参变量函数k(t)、p(t)和r(t)来刻画和决定的,合理设置三个参函数可以得到描述实际测试过程的准确模型。上式在求解上,已超出了常规微分方程的求解,此外,主要关注于故障检测率k(t)对模型的影响,因此不妨令p(t)=p。
待求函数为m(t)和a(t),在m(0)=0和a(0)=a的初始条件下进行公式(4)的求解。
上式在求解上较为复杂,为降低复杂度,考虑到求解的方便可行性和不影响模型的整体功效,不妨令p(t)=p。上式的边界条件是:m(t)=0和a(t)=a。不影响模型的整体功效,不妨令p(t)=p。上式的边界条件是:m(t)=0和a(t)=a。
令:
x(t)=a(t)-p·m(t) (5)
对两边同时求微分得:
将(4)中第2个子式代入(6)式中可得:
将(4)中第1个子式代入(7)式中可得:
将(5)式代入(8)式中可得:
由初始条件可得x(0)=a(0)-p·m(0)=a。则由一阶齐次线性微分方程的通解,可得(9)式解为:
将(5)式代入(4)中第1个子式可得:
将(10)式代入(11)式中可解得:
将(12)式代入(4)中第2个子式中可解得:
2.4关于模型建模针对性讨论
显然,得到的可靠性模型m(t)是框架模型,测试阶段的软件可靠性随着测试时间下FDR的改变而提升。
上述两个模型分别针对故障检测、修复与引入新故障不同情况建立了测试过程的数学描述。公式(4)通过一个微分方程建立了统一的故障检测与修复模型,关于该模型的有效性通过下面的描述介绍如下:
(1)模型的柔韧性:该模型能够涵盖自经典的G-O模型至复杂模型的故障检测部分建模,因此具有较强的柔韧性;
(2)屏蔽细节性:相比于建立测试更多的细节,这里通过一个微分方程建立模型,注重于故障检测过程,而故障检测率FDR是对故障检测过程的重要体现,因此该模型可以成为研究FDR的载体;
(3)得到系列模型:公式(4)是框架模型,通过求解得到的公式(5)和公式(6)可以看出,借助于设定其中多个参数可以得到一系列具体的模型:求解得到的m(t)均是框架式模型,通过设定其中的参变量函数尤其是FDR函数b(t),可以得到一系列多个模型。公式(4)通过量个微分方程建立了统一的故障检测、修复与新故障引入模型,关于该模型的有效性通过下面的描述介绍如下:
(4)该模型同样具有柔韧性,是典型的框架式模型;
(5)公式(4)第二个子式建模了新故障引入模型:排错的不完美性还体现在引入新故障上,而这一事实往往发生在对被检测的故障进行修复的过程中,因此,新故障引入与修复的故障数量紧密相关,即t时刻修复的故障数量与引入的故障数量成比例;
针对FDR的影响作用,可以通过设定公式(4)中其余参数为固定函数形式来求解m(t),这使得m(t)成为FDR的函数,这样通过观测FDR的多种变动形式来研究m(t)(即研究FDR对可靠性的影响)成为一种观测FDR影响作用有效的方法。
3、FDR相关的可靠性模型,基于所获得的统一的两类不完美排错框架模型,按照b(t)进行分析。在m(0)=0和a(0)=a的初始条件下,b(t)主要被设定为如下五种形式(分别为b1(t),b2(t),b3(t),b4(t)和b5(t)),继而分别求得如下面五种情况累积故障检测函数m(t):
(1)若b1(t)=bαβe-βt,则可求得m(t)如下:
其中mIDI_1(t)和mIDII_1(t)分别表示两类不完美排错框架模型在同一b(t)参与下得到的具体的累积故障检测函数m(t),下面情形与之相同。
此时,随着测试的持续进行,b1(t→∞)=0。
(2)若则可以求得m(t)如下:
此时,随着测试的持续进行,b2(t→∞)→b。
(3)若则可以求得m(t)如下:/>
此时,随着测试的持续进行,b3(t→∞)=0。
(4)若b4(t)=b2t/(1+bt),则可以求得m(t)如下:
此时,随着测试的持续进行,b4(t→∞)→b。
(5)若则可以求得m(t)如下:
此时,随着测试的持续进行,b5(t→∞)→b(1+σ)。
下面结合数值算例对本发明的技术效果作详细的描述。
1、模型与失效数据集,选定3组公开发表的失效数据集DS7 [3]、DS11 [4]、DS16 [2]来进行验证模型的性能,这些数据集已被广泛用来解释SRGM的性能。同时,本发明也选定了5个考虑不完美排错的模型参与比较,如表1所示,用以显示本发明所提出的不完美排错模型在拟合与预测失效数据的有效性与灵活性。
表1参与比较的模型
[1]Pham H,System Software Reliability[M].Springer;1st Edition,2006.
[2]Pham H,Zhang X M.NHPP software reliability and cost models withtesting coverage[J].European Journal of Operational Research,2003,145(2):443-454.
[3]PHam.H,Software reliability[M].Singapore:Springer,2000.
[4]Wood A.Predicting software reliability.Computer,1996,29(11):69-77.
[5]Yamada S,Tokuno K,Osaki S.Imperfect debugging models with faultintroduction rate for software reliability assessment.International Journalof Systems Science,1992,23(12):2241-2252.
2、比较标准
采用均方误差值(Mean Square Error,MSE),Variance,RMS-PE,BMMRE和回归曲线方程的相关指数(R-square)度量曲线拟合效果,利用相对误差(Relative Error,RE)度量模型的预测能力。
其中,yi表示到ti时累积失效个数,m(ti)表示到ti时利用模型得到的估算值,k表示失效数据样本数量。显然,MSE,Variance,RMS-PE和BMMRE的值越小,R-square值越接近于1,拟合效果越好。RE越趋近于0,模型预测效果越好。
2、性能验证
首先,将表1中的模型在3个失效数据集上进行参数拟合,基于拟合后得到的参数值,本发明对模型的性能进行概要分析。
2.1FDR相关的不完美排错模型性能分析
为了验证故障检测率函数的差异,本发明在第I类仅考虑不完全排错的模型中来进行验证和观测,在第I类不完美排错模型中,参数只有故障总数、故障修复概率和故障检测率函数,易于分析出故障检测率的性能。将第I类不完美排错模型即IDI类模型在3个数据集上进行实验,图4给出了IDI类模型的拟合曲线。
第1类模型是统一的不完全排错模型,从图4可以直接看出,这些模型在3个数据集上具有相同的曲线形状,这反应出5类不同的FDR对曲线的本质走向并没有产生实质性影响。
为了区分不同模型的性能,特别是找出不同FDR的性能差异,表2给出了模型的度量指标。
表2 IDI类模型的性能比较
从表2可以看出,IDI_2与IDI_5两个模型在5个标准上相差无几,明显优于其他3个模型,这表明其所采用的FDR(即b2(t)和b5(t))更加符合真实的故障检测,其性能优于另外3个FDR模型。事实上,IDI_2与IDI_5中的2个b(t)函数从形式上具有相同的结构,均是呈现S型变化趋势,能够适应软件测试中的多种变化情形,因此二者对应的累积故障检测函数m(t)性能较为接近。
接着,本发明对第II类不完美排错模型在3个失效数据集上进行分析,图5给出了第II类不完美排错模型在失效数据集上的拟合结果。
同样可以看到第II类不完美排错中的5个模型具有相同的曲线形状,但曲线之间的距离与第I类不完美排错相比偏大,这是由于第II类不完美排错模型建模中考虑到了新故障引入现象,采用一个微分方程组进行建模描述,最终求解得到的累积故障检测函数m(t)之间差异较大。为了进一步区分第II类不完美排错中的5个模型之间的性能差异,表3给出了5个模型的拟合度量指标数值。
表3 IDII类模型的性能比较
从表3可以看出,模型IDII_5在每个性能指标上或者处于最优或者处于次优,整体上具有最优的性能。模型IDII_5与其他同类4个模型具有相同的建模过程,区别仅在在于采用了b5(t),因此这证明b5(t)相比较于其他4个FDR函数性能更优异。
综上,通过两类不完美排错模型在失效数据集上的验证,本发明都得到了b5(t)(即)参与下的模型具有最优性能,优于同类其他模型,且两类不完美排错模型均采用各自统一的建模,因此可以知道该故障检测率函数b5(t)能够更加准确的描述软件测试过程中的故障检测情况。
至此,本发明分别得到了两类不完美排错模型中各自最优的模型,分别是IDI_5(IDI_2的性能非常接近于IDI_5,因为二者具有相同的建模过程和相同结果的FDR函数)、IDII_5,此两个最优模型均是b5(t)相关的模型。
2.2第II类不完美排错模型性能分析
易知,第II类不完美排错模型建立了故障检测、修复与引入之间的数学关系,将更多的测试中随机因素进行了考虑,为此,本发明讨论第II类不完美排错模型的性能。图5给出了表1中所有模型在失效数据集上的曲线比较。
从图5可以直接看出,除了个别模型与真实的失效数据曲线发生严重偏离,无法描述软件测试过程中故障检测数量的变化趋势。为了区分模型之间的性能,表4给出了表1中所有模型的拟合性能数据值。
表4所有模型的拟合性能比较
(1)关于第II类不完美排错模型与第I类不完美排错模型性能比较
这里,仅以IDII_5与IDI_5两个模型作为两类模型的代表进行比较。可以发现:
①在DS1上,IDII_5有3个指标(Variation,RMS-PE,BMMRE)处于最优,1个指标(MSE)处于次优,1个指标(R-square)与其最优指标非常接近;
②在DS2上,IDII_5有1个指标(MSE)处于最优,其他4个指标(R-square,Variation,RMS-PE,BMMRE)处于次优,且与最优指标数值仅仅在小数点后第5位或第6位不同;
③在DS3上,IDII_5有3个指标(MSE,Variation,RMS-PE)处于最优,R-square指标与最优数值相差仅在0.01—0.02之间,BMMRE指标与最优数值相差在0.03—0.04之间。
这样,可以看出IDII_5略优于IDI_5,即第II类既考虑不完全排错又考虑引入新故障排错的不完美排错模型,优于仅考虑不完全排错的第I类模型。这是因为,仅考虑不完全排错的不完美模型忽视了排错中的引入新故障现象,丢失了真实的软件排错过程中的重要随机因素,造成函数失真。
(2)关于ID-2模型与所有其他模型比较
按照上述分析,可以发现IDII_5性能要明显优于M-6、M-7、M-12、M-13和M-15模型,显示出了良好的优势。
本发明所提出的第II类统一的不完美排错模型通过2个微分方程,将故障检测、修复与引入关系进行了定量的刻画,能够更加准确的对软件整个测试过程进行建模,充分考虑到了排错的不完全性与新故障的引入。
同时,本发明绘制了所有模型在失效数据集上的预测RE曲线,如图6所示。
RE预测曲线中,可以发现第II类不完美排错模型IDII_5能够较快的向0标准曲线靠拢,显示出优秀的预测性能。
基于图6曲线以及表4的数据比较分析,可以明显看出,第II类不完美排错模型IDII_5既考虑不完全排错又考虑引入新故障排错的不完美排错模型要优于表1中的其他众多模型。
综上,本发明所提出的两类不完美排错模型,特别是第II类不完美排错模型充分将故障检测率进行了考虑,能够较好的拟合失效数据,并具备较好的预测性能,优于其它模型,这表明模型的建模能够较好的描述真实的测试过程。另外,也可以看出,具有S型变化趋势形状的b5(t)相对于其他故障检测率函数具有更好的性能,可以较好的描述软件测试过程中的故障检测率变化情况。
本发明在对不完美排错进行分类的基础上,提出了两类不完美排错模型,分别建立FDR相关的统一的不完美排错框架模型。通过在真实的、公开的失效数据集上的实验与分析,验证所提出模型的有效性,考虑S型FDR函数、不完全排错与新故障引入的不完美排错模型具有良好的拟合与预测性能,优于其他模型。所建立的模型将更多的测试过程中随机因素进行考虑,包含丰富的信息,具有较强的适应性,更加适合描述实际测试过程。
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
Claims (6)
1.一种软件故障检测方法,其特征在于,所述软件故障检测方法包括:
第一步,统一的故障检测与修复框架模型;
第二步,故障检测率下考虑故障检测、修复与引入的不完美排错框架模型;
第三步,所获得的统一的两类不完美排错框架模型,在初始条件下,被设定五种形式,继而分别求得五种情况累积故障检测函数;
所述第二步故障检测率下考虑故障检测、修复与引入的不完美排错框架模型包括:考虑不完美排错的统一的软件测试模型,得到方程组:
t时刻增加的故障数量与该时刻修复的故障数量成比例;故障检测、修复与引入三者之间的关联,m(t)和a(t)是待求解函数,故障检测率b(t),故障修复率p(t)和故障引入率r(t)是对整体测试环境下测试水平的描述;
m(t)和a(t)是由三个参变量函数k(t)、p(t)和r(t)刻画和决定的,合理设置三个参函数可以得到描述实际测试过程的准确模型;待求函数为m(t)和a(t),在m(0)=0和a(0)=a的初始条件下进行求解;
边界条件是:m(t)=0和a(t)=a;p(t)=p,边界条件是:m(t)=0和a(t)=a;
x(t)=a(t)-p·m(t);
对两边同时求微分得:
将中代入/>中得:
将中代入/>中得:
将x(t)=a(t)-p·m(t)代入中得:
由初始条件可得x(0)=a(0)-p·m(0)=a,则由一阶齐次线性微分方程的通解,可得解为:
将x(t)=a(t)-p·m(t)代入中得:
将代入/>中解得:
将代入中/>解得:
2.如权利要求1所述的软件故障检测方法,其特征在于,所述第一步统一的故障检测与修复框架模型包括:
一般的故障检测与修复过程建模:
将t时刻检测的故障数量认为与当前剩余的故障总数成比例,比例系数是b(t),p(t)表示故障修复概率,即故障修复是不完全修复;
在m(0)=0,a(0)=a的初始条件下,进行求解,对应的齐次方程为:
其解为:
令C=u(t)得:
代入原方程得到:
对u'(t)积分得u(t)代入原方程得:
对于m(0)=0,C=0,则得到:
式中b(t),p(t)和a(t)的多种设置,得到多种m(t)。
3.如权利要求1所述的软件故障检测方法,其特征在于,所述第三步基于所获得的统一的两类不完美排错框架模型,按照b(t)进行分析,在m(0)=0和a(0)=a的初始条件下,b(t)被设定为b1(t),b2(t),b3(t),b4(t)和b5(t),继而分别求得下面五种情况累积故障检测函数m(t):
(1)若b1(t)=bαβe-βt,则可求得m(t)如下:
其中mIDI_1(t)和mIDII_1(t)分别表示两类不完美排错框架模型在同一b(t)参与得到的具体的累积故障检测函数m(t);
此时,随着测试的持续进行,b1(t→∞)=0;
(2)若则求得m(t)如下:
随着测试的持续进行,b2(t→∞)→b;
(3)若则求得m(t)如下:
此时,随着测试的持续进行,b3(t→∞)=0;
(4)若b4(t)=b2t/(1+bt),则求得m(t)如下:
此时,随着测试的持续进行,b4(t→∞)→b;
(5)若则可以求得m(t)如下:
此时,随着测试的持续进行,b5(t→∞)→b(1+σ)。
4.一种接收用户输入程序存储介质,所存储的计算机程序使电子设备执行权利要求1~3任意一项所述包括下列步骤:
第一步,统一的故障检测与修复框架模型;
第二步,故障检测率下考虑故障检测、修复与引入的不完美排错框架模型;
第三步,所获得的统一的两类不完美排错框架模型,在初始条件下,被设定五种形式,继而分别求得五种情况累积故障检测函数。
5.一种实施权利要求1~3任意一项所述的软件故障检测方法的软件故障检测系统,其特征在于,所述软件故障检测系统包括:
第一不完美排错模块,用于统一的故障检测与修复框架模型;
第二不完美排错模块,故障检测率下考虑故障检测、修复与引入的不完美排错框架模型;
累积故障检测函数模块,用于所获得的统一的两类不完美排错框架模型,在初始条件下,被设定五种形式,继而分别求得五种情况累积故障检测函数。
6.一种终端,其特征在于,所述终端搭载权利要求5所述的软件故障检测系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010276212.8A CN111538655B (zh) | 2020-04-09 | 2020-04-09 | 软件故障检测方法、系统、存储介质、终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010276212.8A CN111538655B (zh) | 2020-04-09 | 2020-04-09 | 软件故障检测方法、系统、存储介质、终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111538655A CN111538655A (zh) | 2020-08-14 |
CN111538655B true CN111538655B (zh) | 2023-09-22 |
Family
ID=71977065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010276212.8A Active CN111538655B (zh) | 2020-04-09 | 2020-04-09 | 软件故障检测方法、系统、存储介质、终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111538655B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988564B (zh) * | 2021-01-22 | 2023-05-23 | 哈尔滨工业大学(威海) | 一种考虑成本-可靠性的srgm决策模型及其构建方法 |
CN112783772B (zh) * | 2021-01-22 | 2023-09-15 | 哈尔滨工业大学(威海) | 软件可靠性分析方法、系统、介质、设备、终端及应用 |
CN112817842B (zh) * | 2021-01-22 | 2023-09-15 | 哈尔滨工业大学(威海) | 不完美排错srgm决策方法、系统、介质、设备及应用 |
CN115904980B (zh) * | 2022-11-25 | 2023-09-22 | 安徽工业大学 | 软件架构腐蚀修复成本预估方法、装置、设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1420344A2 (en) * | 2002-11-13 | 2004-05-19 | Imbus Ag | Method and device for prediction of the reliability of software programs |
CN104915192A (zh) * | 2015-03-25 | 2015-09-16 | 哈尔滨工程大学 | 一种基于移动点和不完美排错的软件可靠性建模方法 |
CN109857582A (zh) * | 2019-01-29 | 2019-06-07 | 山西大学 | 一种基于排错过程引进故障的开源软件可靠性建模方法 |
CN110008122A (zh) * | 2019-03-22 | 2019-07-12 | 哈尔滨工业大学(威海) | 一种考虑te与cp下的一般性不完美排错模型 |
-
2020
- 2020-04-09 CN CN202010276212.8A patent/CN111538655B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1420344A2 (en) * | 2002-11-13 | 2004-05-19 | Imbus Ag | Method and device for prediction of the reliability of software programs |
CN104915192A (zh) * | 2015-03-25 | 2015-09-16 | 哈尔滨工程大学 | 一种基于移动点和不完美排错的软件可靠性建模方法 |
CN109857582A (zh) * | 2019-01-29 | 2019-06-07 | 山西大学 | 一种基于排错过程引进故障的开源软件可靠性建模方法 |
CN110008122A (zh) * | 2019-03-22 | 2019-07-12 | 哈尔滨工业大学(威海) | 一种考虑te与cp下的一般性不完美排错模型 |
Non-Patent Citations (1)
Title |
---|
考虑故障检测与修正的软件可靠性增长模型;高峰;袁赣南;刘厂;;华中科技大学学报(自然科学版)(第06期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111538655A (zh) | 2020-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111538655B (zh) | 软件故障检测方法、系统、存储介质、终端 | |
US7617415B1 (en) | Code coverage quality estimator | |
CN111274126B (zh) | 测试用例筛选方法、装置及介质 | |
CN104035431B (zh) | 用于非线性过程监控的核函数参数的获取方法和系统 | |
Gonzalez‐Sanchez et al. | Prioritizing tests for software fault diagnosis | |
JP3734392B2 (ja) | 半導体集積回路の故障検査方法及びレイアウト方法 | |
CN112199293A (zh) | 软件质量评价方法、装置、终端设备及存储介质 | |
CN113484813B (zh) | 多环境应力下的智能电表故障率预估方法及系统 | |
CN105975797A (zh) | 一种基于模糊数据处理的产品早期故障根原因识别方法 | |
CN111351697A (zh) | 一种键合金丝可靠性评价方法 | |
CN111538654B (zh) | 一种软件可靠性测试方法、系统、存储介质 | |
CN117332205B (zh) | 压电阻抗温度补偿高精度自动优化方法及装置 | |
CN112817842B (zh) | 不完美排错srgm决策方法、系统、介质、设备及应用 | |
CN110059010A (zh) | 基于动态符号执行与模糊测试的缓冲区溢出检测方法 | |
Mittal et al. | Test chip design for optimal cell-aware diagnosability | |
TWI427487B (zh) | 工件抽樣檢驗的方法及其電腦程式產品 | |
CN110599021A (zh) | 一种炼化装置中preama腐蚀适应性评估标准系统及方法 | |
Umar | Software testing defect prediction model-a practical approach | |
Nazir et al. | Testability estimation model (TEM OOD) | |
US10586014B1 (en) | Method and system for verification using combined verification data | |
CN112783772B (zh) | 软件可靠性分析方法、系统、介质、设备、终端及应用 | |
CN112445632A (zh) | 基于故障数据建模的hpc可靠性评估方法 | |
CN109388829B (zh) | 一种电子产品寿命测算方法 | |
CN112035996A (zh) | 一种装备测试性一体化设计与评估系统 | |
CN108763092A (zh) | 一种基于交叉验证的代码缺陷检测方法及装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |