首页> 中国专利> 一种考虑检测效用及修正效用的软件可靠性检测方法

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

摘要

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

著录项

  • 公开/公告号CN104008048A

    专利类型发明专利

  • 公开/公告日2014-08-27

    原文格式PDF

  • 申请/专利权人 哈尔滨工程大学;

    申请/专利号CN201310551644.5

  • 申请日2013-11-07

  • 分类号G06F11/36(20060101);

  • 代理机构

  • 代理人

  • 地址 150001 黑龙江省哈尔滨市南岗区南通大街145号哈尔滨工程大学科技处知识产权办公室

  • 入库时间 2023-12-17 00:55:30

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-06-20

    授权

    授权

  • 2014-09-24

    实质审查的生效 IPC(主分类):G06F11/36 申请日:20131107

    实质审查的生效

  • 2014-08-27

    公开

    公开

说明书

技术领域

本发明属于软件可靠性研究领域,特别是考虑故障检测和修正过程中消耗资源对软件可 靠性的影响,提出一种考虑检测效用及修正效用的软件可靠性检测方法。

背景技术

随着软件应用领域的扩展和功能要求的提高,软件系统规模日益增大,计算机系统中由 软件实现的功能所占的比例迅速增加,软件的可靠性成为人们关注的焦点之一。如何准确的 度量和预测软件系统的可靠性是当前软件可靠性研究领域的一个热点。软件可靠性增长模型 是评估和预测软件可靠性的主要方法,是开展相关研究的核心和关键。

测试效用被认为是一种重要的测试过程因素,是指在测试过程中所消耗的资源,可用人 力、执行的测试用例、CPU时间等信息来度量。测试效用是影响软件可靠性重要因素,测试 效用随测试时间的变化情况对软件可靠性增长曲线的形状具有显著影响。测试效用函数(test effort function,以下简称TEF)描述了测试效用随测试时间变化的情况,一般用W(t)表示。 1993年Yamada在文献《Software reliability growth model with Weibull testing effort: a model and application》中首先提出了应当在建立软件可靠性增长模型的过程中考虑测试 资源的影响,并且给出了测试效用的概念,用Weibull函数来描述测试效用,建立了考虑测 试效用的软件可靠性增长模型,同时,通过实验证明考虑测试效用的软件可靠性增长模型的 拟合和预测能力均优于一般的软件可靠性增长模型。2002年Huang C Y在文献《Analysis of  incorporating logistic testing-effort function into software reliability modeling》 认为测试效用随时间的增长速率是先增后减的S-shaped增长趋势,提出了用Logistic函数 描述测试效用,建立了考虑Logistic TEF的软件可靠性增长模型。后续不少学者提出了许多 其他测试效用函数。但在以上文献中,均假设检测到的故障会立即被100%修正,忽略了故障 修正过程。实际上,故障修正是软件工程非常重要的一环,只考虑故障检测过程的软件可靠 性增长模型不能全面的反映软件测试的实际过程,对软件的可靠性评估的精确度也下降。2007 年,Huang C Y和Kuo S Y在文献《An assessment 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 时刻单位时间内每个故障被检测到的平均概率,

dmd(t)dt=b(t)(a-md(t));

(5)采集在t时刻投入的故障检测效用wd(t),b(t)=r×wd(t),r为每单位检测效用的故 障检测率,

dmd(t)dt1wd(t)=r(a-md(t));

(6)采集t时刻的累计故障检测数md(t);t时刻的累计故障修正数mc(t);故障修正率 p(t),p(t)表示t时刻单位时间内每个已检测到故障被正确修正的概率,

dmc(t)dt=p(t)(md(t)-mc(t));

(7)采集在t时刻投入的故障修正效用wc(t),p(t)=u×wc(t),u为每单位修正效用的故 障检测率,

dmc(t)dt1wc(t)=u(md(t)-mc(t));

(8)初始时刻:md(0)=0,mc(0)=0,

md(t)=a(1-e-rWd*(t)),

mc(t)=e-uWc*(t)[aeuWc*(t)-ua0twc(t)exp(-rWd*(t)+uWc*(t))+dt+C],

其中,Wd*(t)=Wd(t)-Wd(0),Wc*(t)=Wc(t)-Wc(0),

检测得软件可靠性:

mc(t)=a×{1-u(1-β)e[-W*(t)]-e[-u(1-β)W*(t)](1-β)u-βr}.

本发明的有益效果在于:本发明将传统的测试资源根据测试过程分为故障检测资源和故 障修正资源,并提出了故障检测效用和故障效用的概念,拟合和预测能力较传统的方法有很 大提高。

附图说明

图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得:

dmd(t)dt=b(t)(a-md(t))---(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)得:

dmd(t)dt1wd(t)=r(a-md(t))---(5)

由步骤二中假设4得:

dmc(t)dt=p(t)(md(t)-mc(t))---(6)

其中,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)得:

dmc(t)dt1wc(t)=u(md(t)-mc(t))---(8)

其中,md(t)为t时刻的累计故障检测数;mc(t)为t时刻的累计故障修正数;wd(t)、wc(t) 分别为t时刻的检测效用和修正效用;r为每单位检测效用的故障检测率;u为每单位修正效 用的故障修正率;a是软件故障总数。

初始条件:

md(0)=0        (9)

mc(0)=0        (10)

解公式(5)得:

md(t)=a(1-e-rWd*(t))---(11)

将上式代入公式(8),解方程:

mc(t)=e-uWc*(t)[aeuWc*(t)-ua0twc(t)exp(-rWd*(t)+uWc*(t))+dt+C]---(12)

其中,Wd*(t)=Wd(t)-Wd(0),Wc*(t)=Wc(t)-Wc(0)。

将步骤一的公式(1)、(2)代入(12),利用初始条件,得到考虑检测效用及修正效用的 软件可靠性:

mc(t)=a×{1-u(1-β)e[-W*(t)]-e[-u(1-β)W*(t)](1-β)u-βr}---(13)

其中,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得:

dmd(t)dt=b(t)(a-md(t))---(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)得:

dmd(t)dt1wd(t)=r(a-md(t))---(5)

由步骤二中假设4得:

dmc(t)dt=p(t)(md(t)-mc(t))---(6)

其中,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)得:

dmc(t)dt1wc(t)=u(md(t)-mc(t))---(8)

其中,md(t)为t时刻的累计故障检测数;mc(t)为t时刻的累计故障修正数;wd(t)、wc(t) 分别为t时刻的检测效用和修正效用;r为每单位检测效用的故障检测率;u为每单位修正效 用的故障修正率;a是软件故障总数。

初始条件:

md(0)=0                   (9)

mc(0)=0                    (10)

解公式(5)得:

md(t)=a(1-e-rWd*(t))---(11)

将上式代入公式(8),解方程:

mc(t)=e-uWc*(t)[aeuWc*(t)-ua0twc(t)exp(-rWd*(t)+uWc*(t))+dt+C]---(12)

其中,Wd*(t)=Wd(t)-Wd(0),Wc*(t)=Wc(t)-Wc(0)。

将步骤一的公式(1)、(2)代入(12),利用初始条件,得到考虑检测效用及修正效用的 软件可靠性:

mc(t)=a×{1-u(1-β)e[-W*(t)]-e[-u(1-β)W*(t)](1-β)u-βr}---(13)

其中,W*(t)=W(t)-W(0)。

将不同的测试效用函数W(t)代入公式(13),可以得到对应的考虑检测效用及修正效用 的软件可靠性。

为验证本发明的效果,测试效用函数的具体表达式采用文献《Analysis of incorporating  logistic testing-effort function into software reliability modeling》中提出的 logistic TEF,该函数被认为是已公开发表的测试效用函数中最能准确描述测试效用变化趋 势的。

logistic TEF为代入公式(13)得到基于logistic测试效用函数考 虑检测效用及修正效用的软件可靠性(以下简称DC SRGM with logistic TEF):

mc(t)=a×{1-u(1-β)e[-N1+Ae-αt]-e[-u(1-β)N1+Ae-αt](1-β)u-βr}---(14)

选取一组已公开发表的系统失效数据作为实验数据,见表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):

SSE=Σi=1n(yi-m(ti))2---(15)

其中,n表示失效数据集中失效样本的数目;i=1,2,3…,n,m(ti)表示到ti时刻为止失效 累积数的估算值,yi表示到ti时刻为止失效累积数的实测值。SSE的值越小,曲线拟合的误 差越小。

回归曲线方程的相关指数(R-square)被定义为:

R-square=Σi=1n(m(ti)-y)2Σi=1n(yi-y)2---(16)

其中,n表示失效数据集中失效样本的数目;i=1,2,3…,n,m(ti)表示到ti时刻为止失效 累积数的估算值,yi表示到ti时刻为止失效累积数的实测值。

y=1nΣi=1nyi---(17)

R-square的值越接近于1,表示模型的拟合效果越佳。

相对误差RE(RealativeError,RE)被定义为:

RE=m(ti)-yiyi---(18)

其中,n表示失效数据集中失效样本的数目;i=1,2,3…n,m(ti)表示到ti时刻为止失效 累积数的估算值,yi表示到ti时刻为止失效累积数的实测值。

各模型的参数估计值和模型拟合能力见表2。通过该表可得,本发明提出的DC SRGM with logistic TEF的拟合结果最优(SSE最小,R-square最接近于1)

表2各个模型的估计参数估计值和拟合能力

各个模型的拟合曲线和95%的置信区间,如图2所示。置信区间通常表示值以一定的置 信度落在制定区间。对于非齐次泊松类软件可靠性增长模型,均值函数的100×(1-α/2)%的 置信区间的计算方法如下:

Upperbound=m(t)+k1-α/2m(t)---(19)

Lowerbound=m(t)-k1-α/2m(t)---(20)

其中,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 SRGM with  logistic TEF的预测能力相比于其他模型具有明显的优势。

综上所述,本发明提出的一种考虑检测效用及修正效用的软件可靠性增长模型的拟合和 预测能力均优于现有模型。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号