CN104008048B - 一种考虑检测效用及修正效用的软件可靠性检测方法 - Google Patents

一种考虑检测效用及修正效用的软件可靠性检测方法 Download PDF

Info

Publication number
CN104008048B
CN104008048B CN201310551644.5A CN201310551644A CN104008048B CN 104008048 B CN104008048 B CN 104008048B CN 201310551644 A CN201310551644 A CN 201310551644A CN 104008048 B CN104008048 B CN 104008048B
Authority
CN
China
Prior art keywords
effectiveness
failure
amendment
fault detect
software
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
Application number
CN201310551644.5A
Other languages
English (en)
Other versions
CN104008048A (zh
Inventor
高峰
万程程
常帅
孟斌
陈嵩博
宋子阳
孟欣冉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Harbin Engineering University
Original Assignee
Harbin Engineering University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Harbin Engineering University filed Critical Harbin Engineering University
Priority to CN201310551644.5A priority Critical patent/CN104008048B/zh
Publication of CN104008048A publication Critical patent/CN104008048A/zh
Application granted granted Critical
Publication of CN104008048B publication Critical patent/CN104008048B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Complex Calculations (AREA)

Abstract

本发明属于软件可靠性研究领域,特别是考虑故障检测和修正过程中消耗资源对软件可靠性的影响,提出一种考虑检测效用及修正效用的软件可靠性检测方法。本发明包括:检测软件的运行时间;采集故障检测效用,故障修正效用;计算检测效用占总体测试效用的比例;采集t时刻的累计故障检测数;软件故障总数;故障检测率;采集在t时刻投入的故障检测效用;采集t时刻的累计故障检测数;t时刻的累计故障修正数mc(t);故障修正率p(t),p(t)表示t时刻单位时间内每个已检测到故障被正确修正的概率;采集在t时刻投入的故障修正效用;检测得软件可靠性。本发明将传统的测试资源根据测试过程分为故障检测资源和故障修正资源,拟合和预测能力较传统的方法有很大提高。

Description

一种考虑检测效用及修正效用的软件可靠性检测方法
技术领域
本发明属于软件可靠性研究领域,特别是考虑故障检测和修正过程中消耗资源对软件可靠性的影响,提出一种考虑检测效用及修正效用的软件可靠性检测方法。
背景技术
随着软件应用领域的扩展和功能要求的提高,软件系统规模日益增大,计算机系统中由软件实现的功能所占的比例迅速增加,软件的可靠性成为人们关注的焦点之一。如何准确的度量和预测软件系统的可靠性是当前软件可靠性研究领域的一个热点。软件可靠性增长模型是评估和预测软件可靠性的主要方法,是开展相关研究的核心和关键。
测试效用被认为是一种重要的测试过程因素,是指在测试过程中所消耗的资源,可用人力、执行的测试用例、CPU时间等信息来度量。测试效用是影响软件可靠性重要因素,测试效用随测试时间的变化情况对软件可靠性增长曲线的形状具有显著影响。测试效用函数(testeffort function,以下简称TEF)描述了测试效用随测试时间变化的情况,一般用W(t)表示。1993年Yamada在文献《Software reliability growth model with Weibulltesting effort:a model and application》中首先提出了应当在建立软件可靠性增长模型的过程中考虑测试资源的影响,并且给出了测试效用的概念,用Weibull函数来描述测试效用,建立了考虑测试效用的软件可靠性增长模型,同时,通过实验证明考虑测试效用的软件可靠性增长模型的拟合和预测能力均优于一般的软件可靠性增长模型。2002年Huang CY在文献《Analysis of incorporating logistic testing-effort function intosoftware reliability modeling》认为测试效用随时间的增长速率是先增后减的S-shaped增长趋势,提出了用Logistic函数描述测试效用,建立了考虑Logistic TEF的软件可靠性增长模型。后续不少学者提出了许多其他测试效用函数。但在以上文献中,均假设检测到的故障会立即被100%修正,忽略了故障修正过程。实际上,故障修正是软件工程非常重要的一环,只考虑故障检测过程的软件可靠性增长模型不能全面的反映软件测试的实际过程,对软件的可靠性评估的精确度也下降。2007年,Huang C Y和Kuo S Y在文献《Anassessment of testing-effort dependent software reliability growth models》中在考虑测试资源消耗的基础上建立了故障检测与修正过程的软件可靠性增长模型,但在该模型中故障检测消耗的资源与修正故障消耗的资源是一样的,采用同一函数描述。实际上,故障的检测和修正是由不同的人员采用不同的工具在相互独立的环境中进行的。所以,故障检测和故障修正所用的测试资源是独立的,两者共同对软件可靠性产生影响。因此,在软件可靠性检测中分别考虑故障检测消耗的资源和修正消耗的资源能有效的提高评估能力。
发明内容
本发明的目的是针对故障检测和修正过程中消耗资源对软件可靠性的影响,提出一种考虑检测效用及修正效用的软件可靠性检测方法。
本发明的目的是这样实现的:
(1)检测软件的运行时间t;
(2)采集故障检测效用Wd(t),故障修正效用Wc(t),表示t时刻的累计测试效用W(t)=Wd(t)+Wc(t);
(3)计算检测效用占总体测试效用的比例β,Wd(t)=βW(t),Wc(t)=(1-β)W(t);
(4)采集t时刻的累计故障检测数md(t);软件故障总数a;故障检测率b(t),b(t)表示t时刻单位时间内每个故障被检测到的平均概率,
(5)采集在t时刻投入的故障检测效用wd(t),b(t)=r×wd(t),r为每单位检测效用的故障检测率,
(6)采集t时刻的累计故障检测数md(t);t时刻的累计故障修正数mc(t);故障修正率p(t),p(t)表示t时刻单位时间内每个已检测到故障被正确修正的概率,
(7)采集在t时刻投入的故障修正效用wc(t),p(t)=u×wc(t),u为每单位修正效用的故障检测率,
(8)初始时刻:md(0)=0,mc(0)=0,
其中,Wd *(t)=Wd(t)-Wd(0),Wc *(t)=Wc(t)-Wc(0),
检测得软件可靠性:
本发明的有益效果在于:本发明将传统的测试资源根据测试过程分为故障检测资源和故障修正资源,并提出了故障检测效用和故障效用的概念,拟合和预测能力较传统的方法有很大提高。
附图说明
图1本发明的方法流程图;
图2各个模型的拟合曲线和95%的置信区间示意图;
图3各个模型预测能力的评估曲线示意图。
具体实施方式
下面将结合附图对本发明作进一步的详细说明。
一种考虑检测效用及修正效用的软件可靠性检测方法,包含以下几个步骤:
步骤一、定义故障检测效用及修正效用。
故障的检测和修正是由不同的人员采用不同的工具在相互独立的环境中进行的。因此,测试效用应分为故障检测效用和故障修正效用。下面给出相关定义:
故障检测效用:为检测故障所投入的资源,包括执行的测试用例、检测人力、检测时间等。
故障检测效用函数(detection effort function):表示t时刻,已投入的累计故障检测效用,用Wd(t)表示。
故障修正效用:为修正故障所投入的资源,包括修正人力、修正时间等。可用修正人力、CPU时间等信息来度量。
故障修正效用函数(correction effort function):表示t时刻,已投入的累计修正效用,用Wc(t)表示。
根据定义,故障检测效用、故障修正效用和测试效用之间的关系可用下式描述:
Wd(t)=βW(t) (1)
Wc(t)=(1-β)W(t) (2)
其中,β为检测效用占总体测试效用的比例,W(t)表示t时刻的累计测试效用。
步骤二、考虑检测效用及修正效用的软件可靠性的基本假设条件。
1)软件失效遵循NHPP过程;
2)软件中每个故障是相互独立的,每个故障导致系统发生失效的可能性也相同;
3)任意时间间隔t到t+Δt内期望的故障发生数,与t时刻剩余的故障数成比例;
4)软件排错是不完全的,任意时间间隔t到t+Δt内期望的故障修正数,与t时刻剩余的待修正故障数成比例。
步骤三、考虑检测效用及修正效用的软件可靠性的检测过程。
由步骤二中假设1~3得:
其中,md(t)为t时刻的累计故障检测数;a是软件故障总数;b(t)称为故障检测率,表示t时刻单位时间内每个故障被检测到的平均概率。
假设在t时刻,投入的故障检测效用为wd(t)=Wd′(t)。
在实际测试过程中,投入的检测资源越多,检测到的故障也就越多,即故障检测率b(t)受wd(t)影响。当故障检测效用wd(t)增加时,故障检测率b(t)也随之增加,因此,故障检测率函数b(t)与当前时刻的检测效用wd(t)成正比,且比值为每单位检测效用的故障检测率r。
b(t)=r×wd(t) (4)
将公式(4)代入公式(3)得:
由步骤二中假设4得:
其中,md(t)为t时刻的累计故障检测数;mc(t)为t时刻的累计故障修正数;p(t)称故障修正率,表示t时刻单位时间内每个已检测到故障被正确修正的概率。
假设在t时刻,投入的故障修正效用为
在实际测试过程中,投入的修正资源越多,修正的故障也就越多,即故障修正率p(t)受wc(t)影响。当故障修正效用wc(t)增加时,故障修正率p(t)也随之增加。因此,故障修正率p(t)与当前的时刻的修正效用wc(t)成正比,且比值为每单位修正效用的故障检测率u。
p(t)=u×wc(t) (7)
将公式(7)代入公式(6)得:
其中,md(t)为t时刻的累计故障检测数;mc(t)为t时刻的累计故障修正数;wd(t)、wc(t)分别为t时刻的检测效用和修正效用;r为每单位检测效用的故障检测率;u为每单位修正效用的故障修正率;a是软件故障总数。
初始条件:
md(0)=0 (9)
mc(0)=0 (10)
解公式(5)得:
将上式代入公式(8),解方程:
其中,Wd *(t)=Wd(t)-Wd(0),Wc *(t)=Wc(t)-Wc(0)。
将步骤一的公式(1)、(2)代入(12),利用初始条件,得到考虑检测效用及修正效用的软件可靠性:
其中,W*(t)=W(t)-W(0)。
将不同的测试效用函数W(t)代入公式(13),可以得到对应的考虑检测效用及修正效用的软件可靠性。
本发明的一种考虑检测效用及修正效用的软件可靠性测试方法的具体如图1所示,包含以下步骤:
步骤一、定义故障检测效用及修正效用。
故障的检测和修正是由不同的人员采用不同的工具在相互独立的环境中进行的。因此,测试效用应分为故障检测效用和故障修正效用。下面给出相关定义:
故障检测效用:为检测故障所投入的资源,包括执行的测试用例、检测人力、检测时间等。
故障检测效用函数(detection effort function):表示t时刻,已投入的累计故障检测效用,用Wd(t)表示。
故障修正效用:为修正故障所投入的资源,包括修正人力、修正时间等。可用修正人力、CPU时间等信息来度量。
故障修正效用函数(correction effort function):表示t时刻,已投入的累计修正效用,用Wc(t)表示。
根据定义,故障检测效用、故障修正效用和测试效用之间的关系可用下式描述:
Wd(t)=βW(t) (1)
Wc(t)=(1-β)W(t) (2)
其中,β为检测效用占总体测试效用的比例。
步骤二、考虑检测效用及修正效用的软件可靠性的基本假设条件。
1)软件失效遵循NHPP过程;
2)软件中每个故障是相互独立的,每个故障导致系统发生失效的可能性也相同;
3)任意时间间隔t到t+Δt内期望的故障发生数,与t时刻剩余的故障数成比例;
4)软件排错是不完全的,任意时间间隔t到t+Δt内期望的故障修正数,与t时刻剩余的待修正故障数成比例。
步骤三、考虑检测效用及修正效用的软件可靠性的建模过程。
由步骤二中假设1~3得:
其中,md(t)为t时刻的累计故障检测数;a是软件故障总数;b(t)称为故障检测率,表示t时刻单位时间内每个故障被检测到的平均概率。
假设在t时刻,投入的故障检测效用为wd(t)=Wd′(t)。
在实际测试过程中,投入的检测资源越多,检测到的故障也就越多,即故障检测率b(t)受wd(t)影响。当故障检测效用wd(t)增加时,故障检测率b(t)也随之增加,因此,故障检测率函数b(t)与当前时刻的检测效用wd(t)成正比,且比值为每单位检测效用的故障检测率r。
b(t)=r×wd(t) (4)
将公式(4)代入公式(3)得:
由步骤二中假设4得:
其中,md(t)为t时刻的累计故障检测数;mc(t)为t时刻的累计故障修正数;p(t)称故障修正率,表示t时刻单位时间内每个已检测到故障被正确修正的概率。
假设在t时刻,投入的故障修正效用为wc(t)=Wc′(t)。
在实际测试过程中,投入的修正资源越多,修正的故障也就越多,即故障修正率p(t)受wc(t)影响。当故障修正效用wc(t)增加时,故障修正率p(t)也随之增加。因此,故障修正率p(t)与当前的时刻的修正效用wc(t)成正比,且比值为每单位修正效用的故障检测率u。
p(t)=u×wc(t) (7)
将公式(7)代入公式(6)得:
其中,md(t)为t时刻的累计故障检测数;mc(t)为t时刻的累计故障修正数;wd(t)、wc(t)分别为t时刻的检测效用和修正效用;r为每单位检测效用的故障检测率;u为每单位修正效用的故障修正率;a是软件故障总数。
初始条件:
md(0)=0 (9)
mc(0)=0 (10)
解公式(5)得:
将上式代入公式(8),解方程:
其中,Wd *(t)=Wd(t)-Wd(0),Wc *(t)=Wc(t)-Wc(0)。
将步骤一的公式(1)、(2)代入(12),利用初始条件,得到考虑检测效用及修正效用的软件可靠性:
其中,W*(t)=W(t)-W(0)。
将不同的测试效用函数W(t)代入公式(13),可以得到对应的考虑检测效用及修正效用的软件可靠性。
为验证本发明的效果,测试效用函数的具体表达式采用文献《Analysis ofincorporating logistic testing-effort function into software reliabilitymodeling》中提出的logistic TEF,该函数被认为是已公开发表的测试效用函数中最能准确描述测试效用变化趋势的。
logistic TEF为代入公式(13)得到基于logistic测试效用函数考虑检测效用及修正效用的软件可靠性(以下简称DC SRGM with logistic TEF):
选取一组已公开发表的系统失效数据作为实验数据,见表1所示(参考文献:M.Ohba发表的《Software reliability analysis models》)。表中列出了19周(Week)发现的累积故障数目(Cumulative Failures)和消耗的测试效用(用CPU时间度量)。
表1系统失效数据
选取5个软件可靠性增长模型作为对比,其中前3个是经常用于软件可靠性建模验证研究的经典模型:G-O Model、Delayed S-shaped SRGM和Inflection S-shaped SRGM;后2个选择在Schneidewind Model、Delayed S-shaped SRGM with logistic TEF作为考虑故障检测与修正过程的软件可靠性增长模型类的对比模型。采用最小二乘法估计模型的参数值,并选择误差平方和SSE和回归指数R-square作为软件可靠性增长模型拟合能力的评价标准,使用RE(Relative Error)用来计算模型的预测能力。
误差平方和(SumofSquareError,SSE):
其中,n表示失效数据集中失效样本的数目;i=1,2,3…,n,m(ti)表示到ti时刻为止失效累积数的估算值,yi表示到ti时刻为止失效累积数的实测值。SSE的值越小,曲线拟合的误差越小。
回归曲线方程的相关指数(R-square)被定义为:
其中,n表示失效数据集中失效样本的数目;i=1,2,3…,n,m(ti)表示到ti时刻为止失效累积数的估算值,yi表示到ti时刻为止失效累积数的实测值。
R-square的值越接近于1,表示模型的拟合效果越佳。
相对误差RE(RealativeError,RE)被定义为:
其中,n表示失效数据集中失效样本的数目;i=1,2,3…n,m(ti)表示到ti时刻为止失效累积数的估算值,yi表示到ti时刻为止失效累积数的实测值。
各模型的参数估计值和模型拟合能力见表2。通过该表可得,本发明提出的DCSRGM withlogistic TEF的拟合结果最优(SSE最小,R-square最接近于1)
表2各个模型的估计参数估计值和拟合能力
各个模型的拟合曲线和95%的置信区间,如图2所示。置信区间通常表示值以一定的置信度落在制定区间。对于非齐次泊松类软件可靠性增长模型,均值函数的100×(1-α/2)%的置信区间的计算方法如下:
其中,k1-α/2是100×(1-α/2)%标准正态分布值。通过查表可得,当置信区间为95%时,k1-α/2的值为1.96。
观察图2,DC SRGM with logistic TEF在整个软件测试过程的拟合效果最好,尤其是在第10周以后,模型的拟合曲线与实际数据几乎完全重合实际数据完全模型拟合数据的置信区间内。
各个模型的预测能力评估曲线如图3所示。DC SRGM with logistic TEF的RE值从第5周开始都在0.02内,且在第6周后,已经几乎接近于0,是所有模型中最快趋近于0的;相对来说,其他模型虽都有收敛到0的趋势,但收敛速度较慢,振幅较大。说明了,DC SRGMwith logistic TEF的预测能力相比于其他模型具有明显的优势。
综上所述,本发明提出的一种考虑检测效用及修正效用的软件可靠性增长模型的拟合和预测能力均优于现有模型。

Claims (1)

1.一种考虑检测效用及修正效用的软件可靠性检测方法,其特征在于:
(1)检测软件的运行时间t;
(2)采集故障检测效用Wd(t),故障修正效用Wc(t),表示t时刻的累计测试效用W(t)=Wd(t)+Wc(t);
(3)计算检测效用占总体测试效用的比例β,Wd(t)=βW(t),Wc(t)=(1-β)W(t);
(4)采集t时刻的累计故障检测数md(t);软件故障总数;故障检测率b(t),b(t)表示t时刻单位时间内每个故障被检测到的平均概率,
dm d ( t ) d t = b ( t ) ( a - m d ( t ) ) ;
(5)采集在t时刻投入的故障检测效用wd(t),b(t)=r×wd(t),r为每单位检测效用的故障检测率,
dm d ( t ) d t 1 w d ( t ) = r ( a - m d ( t ) ) ;
(6)采集t时刻的累计故障检测数md(t);t时刻的累计故障修正数mc(t);故障修正率p(t),p(t)表示t时刻单位时间内每个已检测到故障被正确修正的概率,
dm c ( t ) d t = p ( t ) ( m d ( t ) - m c ( t ) ) ;
(7)采集在t时刻投入的故障修正效用wc(t),p(t)=u×wc(t),u为每单位修正效用的故障检测率,
dm c ( t ) d t 1 w c ( t ) = u ( m d ( t ) - m c ( t ) ) ;
(8)初始时刻:md(0)=0,mc(0)=0,
m d ( t ) = a ( 1 - e - rW d * ( t ) ) ,
m c ( t ) = e - uW c * ( t ) [ ae uW c * ( t ) - u a ∫ 0 t w c ( t ) exp ( - rW d * ( t ) + uW c * ( t ) ) d t + C ] ,
其中,Wd *(t)=Wd(t)-Wd(0),Wc *(t)=Wc(t)-Wc(0),
检测得:
m c ( t ) = a × { 1 - u ( 1 - β ) e [ - rβW * ( t ) ] - rβe [ - u ( 1 - β ) W * ( t ) ] ( 1 - β ) u - β r } .
CN201310551644.5A 2013-11-07 2013-11-07 一种考虑检测效用及修正效用的软件可靠性检测方法 Active CN104008048B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310551644.5A CN104008048B (zh) 2013-11-07 2013-11-07 一种考虑检测效用及修正效用的软件可靠性检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310551644.5A CN104008048B (zh) 2013-11-07 2013-11-07 一种考虑检测效用及修正效用的软件可靠性检测方法

Publications (2)

Publication Number Publication Date
CN104008048A CN104008048A (zh) 2014-08-27
CN104008048B true CN104008048B (zh) 2017-06-20

Family

ID=51368709

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310551644.5A Active CN104008048B (zh) 2013-11-07 2013-11-07 一种考虑检测效用及修正效用的软件可靠性检测方法

Country Status (1)

Country Link
CN (1) CN104008048B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017185379A1 (zh) * 2016-04-29 2017-11-02 华为技术有限公司 返修概率预测方法、装置、服务器、终端及存储介质
CN107767977B (zh) * 2017-10-31 2019-12-06 北京广利核系统工程有限公司 一种核电站用安全控制方法和系统
CN109815149A (zh) * 2019-01-29 2019-05-28 山西大学 一种基于Weibull分布引进故障的软件可靠性增长模型

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102033806B (zh) * 2010-12-14 2012-07-25 北京航空航天大学 一种实时嵌入式软件可靠性测试数据生成方法
CN102629232A (zh) * 2012-01-09 2012-08-08 北京航空航天大学 引入测试有效性的软件可靠性验证测试方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102033806B (zh) * 2010-12-14 2012-07-25 北京航空航天大学 一种实时嵌入式软件可靠性测试数据生成方法
CN102629232A (zh) * 2012-01-09 2012-08-08 北京航空航天大学 引入测试有效性的软件可靠性验证测试方法

Also Published As

Publication number Publication date
CN104008048A (zh) 2014-08-27

Similar Documents

Publication Publication Date Title
CN108647891B (zh) 数据异常归因分析方法及装置
Austin et al. The median hazard ratio: a useful measure of variance and general contextual effects in multilevel survival analysis
Yao et al. Design of new fault diagnosis and fault tolerant control scheme for non-Gaussian singular stochastic distribution systems
Emran et al. Estimating an import demand function in developing countries: A structural econometric approach with applications to India and Sri Lanka
Teng et al. A new methodology for predicting software reliability in the random field environments
Gumedze et al. A variance shift model for detection of outliers in the linear mixed model
Xie et al. An additive reliability model for the analysis of modular software failure data
Dai et al. Protection dynamic reliability analysis system based on 3RF technique
CN104376231B (zh) 基于改进近似贝叶斯计算的损伤识别方法
Asai et al. Modelling and forecasting noisy realized volatility
Sheldon et al. Reliability measurement: From theory to practice
CN102508774A (zh) 基于新环境因子函数的软件可靠性增长模型的建模方法
EP2365322A1 (en) Gas sensor age compensation and failure detection
CN104008048B (zh) 一种考虑检测效用及修正效用的软件可靠性检测方法
CN103530229B (zh) 一种考虑测试效用的软件可靠性检测方法
Xu et al. Software reliability growth model with partial differential equation for various debugging processes
Wang An imperfect software debugging model considering irregular fluctuation of fault introduction rate
Kumar et al. Exploring the effect of tourism and economic growth in Fiji: Accounting for capital, labor, and structural breaks
Zheng et al. Software-hardware embedded system reliability modeling with failure dependency and masked data
Subramanian Multiple imputations and the missing censoring indicator model
Tiwari et al. Imperfect debugging-based modeling of fault detection and correction using statistical methods
Gupta et al. Software reliability estimation using Yamada delayed S-shaped model under imperfect debugging and time lag
Inoue et al. Software hazard rate modeling with multiple change-point occurrences
CN113994276A (zh) 用于验证能量系统的系统参数的方法、用于运行能量系统的方法以及用于能量系统的能量管理系统
Prasad et al. Assessing software reliability using inter failures time data

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant