APP下载

考虑故障检测效用与修正效用的软件可靠性增长模型

2015-06-01赵玉新万程程

系统工程与电子技术 2015年4期
关键词:软件可靠性效用修正

赵玉新,常 帅,万程程

(哈尔滨工程大学自动化学院,黑龙江哈尔滨150001)

考虑故障检测效用与修正效用的软件可靠性增长模型

赵玉新,常 帅,万程程

(哈尔滨工程大学自动化学院,黑龙江哈尔滨150001)

测试效用是影响软件测试过程的重要因素,其随时间的变化情况直接影响着测试过程中的故障检测和修正的效率,合理地评估测试效用对测试过程的影响是建立精确软件可靠性模型的关键因素。针对现有模型对测试效用认识的不足,严格根据实际测试情况,将测试效用分为故障检测效用和故障修正效用,并在此基础上,建立了综合考虑这两种效用的软件可靠性增长模型。利用公开发表的软件测试失效数据集对模型进行验证,结果表明,与现有的考虑故障检测与修正过程的模型相比,所提模型具有更好的拟合和预测能力。

软件可靠性增长模型;测试效用;故障检测效用;故障修正效用

0 引 言

软件可靠性[13]是衡量软件质量的重要特性,其反映了软件开发和使用过程中出现的失效情况。软件可靠性增长模型(software reliability growth model,SRGM)的建立位于软件开发时期的系统测试阶段,其在对软件反复进行测试和故障排除的过程中得以建立,可以有效地评估和预测软件可靠性,是开展相关研究的核心和关键。非齐次泊松过程[4](non-homogeneous Poisson process,NHPP)类SRGM是目前研究最多、应用最广的一类。

测试效用被认为是一种重要的测试过程因素,是指在测试过程中所消耗的资源,可用人力、执行的测试用例、CPU时间等信息来度量,是影响软件可靠性的重要因素[56]。测试效用函数(test effort function,TEF)用来描述测试效用随测试时间变化的情况,一般用W(t)表示。故障检测过程和故障修正过程是影响软件可靠性建模准确性的两个主要因素。目前,很多SRGM都考虑到了故障检测过程的变化趋势,以及故障修正过程中的不完全修正性。文献[7]提出的G-O模型是最早提出的一种NHPP类可靠性模型。该模型假设错误检测出来后被立即100%排除;故障检测率则取常数b。文献[8]提出了测试效用的概念,并在G-O模型的基础上考虑其影响,建立了SRGM withWeibull TEF模型,该模型认为故障检测率受测试效用影响,是随时间变化的函数b(t);但该模型忽略了故障修正过程。文献[9]提出故障修正是不完全的,引入了故障修正率函数p(t),并认为故障检测与修正过程均服从NHPP,对其分别进行建模,得到故障检测模型md(t)和故障修正模型mc(t),统称Lo SRGM;但该模型忽略了测试效用对软件可靠性的影响。文献[10]在Lo模型基础上,考虑了测试效用,建立了Huang SRGM,明显提高了模型的评估能力;但该模型认为故障检测率和故障修正率均与整体测试效用成比例,与实际情况有较大出入。

实际上,故障的检测和修正是由不同的人员在相互独立的环境中进行的[11],如图1所示。在检测故障过程中,故障检测率b(t)直接受到投入检测资源的影响;在修正过程中,故障修正率p(t)则受投入修正资源的影响。同时,在故障检测和故障修正过程中所投入的资源往往是不同的,不存在直接相关性。基于此,本文在考虑故障检测投入资源和故障修正投入资源对故障检测率和修正率的影响的基础上,建立了一种新的考虑故障检测效用与故障修正效用的SRGM。利用一组公开发表的实效数据进行仿真验证,实验结果表明该模型具有更好的拟合效果和预测能力。

图1 故障检测与故障修正的关系图

1 故障检测效用与修正效用

传统的考虑测试效用的SRGM均假设任意时间间隔t到t+Δt内,期望的故障数与当前时刻测试效用的比值与t时刻剩余的故障数成正比。由该假设可看出,传统的考虑测试效用的SRGM将测试效用等同于故障检测过程中投入的资源。实际上,测试效用指的是整体测试过程中所投入的资源,包括故障检测过程和修正过程,应该区分看待。首先,进行如下定义:

故障检测效用:为检测故障所投入的资源,包括执行的测试用例、检测人力、检测时间等。

故障检测效用函数(detection effort function,DEF):表示t时刻,已投入的累计故障检测效用,用Wd(t)表示。

故障修正效用:为修正故障所投入的资源,包括修正人力、修正时间等。可用修正人力、CPU时间等信息来度量。

故障修正效用函数(correction effort function,CEF):表示t时刻,已投入的累计修正效用,用Wc(t)表示。

根据定义,故障检测效用、故障修正效用和测试效用之间的关系可描述为

式中,β(t)为检测效用占总体测试效用的比例,该比例是随时间变化的函数,由相应时刻所投入的故障检测资源和修正资源决定。

2 考虑故障检测效用与修正效用的SRGM

本节符号说明:

a:软件故障总数;

b(t):故障检测率,表示t时刻单位时间内每个故障被检测到的概率;

md(t):t时刻的累计故障检测数;

mc(t):t时刻的累计故障修正数;

p(t):故障修正率,表示t时刻单位时间内每个已检测到故障被正确修正的概率;

r:每单位检测效用的故障检测率;

u:每单位修正效用的故障修正率。

2.1 模型假设条件

假设1 软件失效和修正都遵循NHPP过程;

假设2 软件中每个故障是相互独立的,每个故障导致系统发生失效的可能性也相同;

假设3 任意时间间隔t到t+Δt内期望的故障发生数,与t时刻剩余的故障数成比例,比例为故障检测率函数b(t);

假设4 软件排错是不完全的,任意时间间隔t到t+Δt内期望的故障修正数,与t时刻剩余的待修正故障数成比例,比例为故障修正率函数p(t)。

2.2 建模过程

由假设1~假设3得

从而得到微分方程

在t时刻,单位时间内投入的故障检测效用wd(t)=W′d(t)。

在实际测试过程中,单位时间内投入的检测资源越多,检测到的故障也就越多,即故障检测率b(t)受wd(t)影响。当故障检测效用wd(t)增加时,故障检测率b(t)也随之增加,因此,故障检测率b(t)与当前时刻的检测效用wd(t)成正比,且比值为每单位检测效用的故障检测率r,表示为

将式(5)代入式(4)得

由假设4得

从而得到微分方程

在t时刻,单位时间投入的故障修正效用为wc(t)=W′c(t)。

在实际测试过程中,单位时间内投入的修正资源越多,修正的故障也就越多,即故障修正率p(t)受wc(t)影响。当故障修正效用wc(t)增加时,故障修正率p(t)也随之增加。因此,故障修正率p(t)与当前的时刻的修正效用wc(t)成正比,且比值为每单位修正效用的故障修正率u,表示为

将式(9)代入式(8)得

初始条件为

解式(6)得

将式(12)代入式(10),解方程得

式中

由初始条件得

将式(1)和式(2)代入式(12)和式(14),得

因此,可选取的函数为

式中,k>0,k的大小决定了β(t)变化的快慢。将式(17)代入式(15)和式(16),得

当k=0即Wd(t)=W(t),且r×W*(t)=b时,该模型即为G-O模型。当r×W*d(t)=b,u×W*c(t)=p时,该模型即为Lo SRGM。当Wd(t)=Wc(t)=W(t),r=u时,该模型即为Huang SRGM。

3 模型的验证与评价

3.1 评价标准

误差平方和(error sum of square,ESS)[12]和回归指数R-square作为SRGM拟合能力的评价标准,相对误差(realative error,RE)作为SRGM预测能力的评价标准。

SSE的值越小,曲线拟合的误差越小。其定义为

式中,n表示失效数据集中失效样本的数目;yi表示到ti时刻累积故障数;m(ti)表示在ti时刻模型估算得到的累积故障数。

回归曲线方程的相关指数R-square的值越接近于1,表示模型的拟合效果越佳。其定义为[12]

不知什么原因,我练功出了岔子,在体内游走的真气本应暖烘烘的,却变得冰冷无比,三伏天,我手脚冰凉,晚上睡觉要盖被子,盖被子也没用,照样冻得直抖。

RE用来计算模型的预测能力,表示为

由式(23)计算出每个观测数据点的RE值,绘制RE曲线,曲线越快接近于零,模型的预测能力越强。

3.2 对比模型与TEF的选择

为了验证本文模型的拟合效果,用最小二乘法估计参数,选择4个比较经典的SRGM作为对比模型,具体如表1所示。并应用一组公开发表的数据集进行分析。该数据来自RADC(Rome Air Development Center)的T1系统的净室测试数据,该系统是一个大型的软件系统,测试过程为21周,共检测和修正了136个故障[13]。

表1 SRGM及其m(t)

本文的TEF选择文献[5]提出的Delayed S-shaped TEF。该TEF具有很好的拟合性及适应性,DelayedS-shaped TEF的表达式为

式中,N表示预期消耗的总的测试效用;h表示测试效用的消耗率;A为常量。

对于本文中的测试效用数据进行拟合,得到参数N=29.114 3,h=0.493 2,A=4610.010 1。图2给出了Delayed S-shaped TEF的拟合仿真曲线,仿真结果显示Delayed S-shaped TEF对本文数据具有很好的拟合效果。

图2 Delayed S-shaped TEF的拟合仿真曲线

3.3 模型验证与评估

为方便描述,本文模型称为Proposed Model。表2给出了各个模型的拟合结果的SSE参数标准和R-square参数标准。从表2可以看出,Proposed Model和Huang SRGM的拟合效果明显优于其他模型,其中Proposed Model的SSE值最小,R-square值最接近于1,证明该模型的拟合最佳。

表2 各个模型的拟合能力

各个模型对检测过程、修正过程的拟合曲线分别如图3和图4所示。由图3和图4可以观察得,Proposed Model的拟合能力显而易见,Huang SRGM和SRGM with TEF虽然也能拟合实际失效数据的大体趋势,但相对于Proposed Model略显逊色。各个模型对检测过程、修正过程的预测能力评估曲线分别如图5和图6所示。Proposed Model的RE曲线几乎在1以内,并始终是最接近于0的,在震荡中最快收敛于0;相对来说,其他模型振幅过大,如检测过程中的G-O Model、Lo SRGM和修正过程的Lo SRGM,或收敛速度较慢,如检测过程中的SRGM with TEF、Huang SRGM和修正过程的Huang SRGM。

图3 各个模型对故障检测过程的拟合曲线

图4 各个模型对故障修正过程的拟合曲线

图5 各个模型对故障检测过程的预测评估能力曲线

图6 各个模型对故障修正过程的预测评估能力曲线

通过以上分析,可以得出如下结论①SRGM with TEF、Huang SRGM的拟合和预测能力分别优于G-O Model和Lo SRGM,说明在软件可靠性建模过程中考虑测试效用,可以有效地改善传统模型的评估能力。②Lo SRGM(Huang SRGM)的SSE的值小于G-O Model(SRGM with TEF),R-square更接近于1,说明故障检测与故障修正是影响软件可靠性的两个关键因素。③在该数据集上,拟合效果和预测能力前两名的模型是Proposed Model和Huang SRGM,均是考虑测试效用且基于故障检测与修正过程的SRGM,说明在软件可靠性建模过程中,充分地考虑测试效用和故障检测与修正过程,可以有效的改善模型的评估能力。④Proposed Mode是所有模型中表现最优的,SSE的值最小,R-square最接近于1,RE曲线最快趋近于0,从而证明了考虑故障检测效用与修正效用的SRGM相比于传统的考虑故障检测与修正过程的模型,具有更佳的拟合效果和预测能力。

4 结 论

本文针对故障检测和故障修正过程中假设条件不完善的情况,提出一种考虑故障检测效用与修正效用的SRGM。该模型全面考虑了故障检测和故障修正过程中投入资源对软件可靠性影响,引入了故障检测效用与修正效用的概念。利用一组公开发表的实效数据进行仿真验证,实验结果表明该模型具有更好的拟合效果和预测能力。

[1]Musa J D.Software reliability engineering[M].New York:Mc Graw Hill,1999:2- 3.

[2]Zhao Q,Yu X F,Zhang C W.Incorporating the testing-effort function into the inflected S-shaped NHPP software reliability model[J].Applied Mechanics and Materials,2013,241:356 -359.

[3]Roy P,Mahapatra G S,Dey K N.An S-shaped software reliability model with imperfect debugging and improved testing learning process[J].International Journal of Reliability and Safety,2013,7(4):372- 387.

[4]Xie J Y,An J X,Zhu J H.NHPP software reliability growth model considering imperfect debugging[J].Journal of Software,2010,21(5):942- 949.(谢景燕,安金霞,朱纪红.考虑不完美排错情况的NHPP类软件可靠性增长模型[J].软件学报,2010,21(5):942- 949.)

[5]Li Q Y,Li H F,Lu M Y,et al.Software reliability growth model with S-shaped testing effort function[J].Journal of Beijing University of Aeronautics and Astronautics,2011,37(2):149- 154.(李秋英,李海峰,陆民燕,等.基于S型测试工作量函数的软件可靠性增长模型[J].北京航空航天大学学报,2011,37(2):149- 154.)

[6]Lin C T.Enhancing the accuracy of software reliability prediction through quantifying the effect of test phase transitions[J].Applied Mathematics and Computation,2012,219(5):2478 -2492.

[7]Goel A L,Okumoto K.Time-dependent error-detection rate model for software and other performance measures[J].IEEE Trans.on Reliability,1979,28(3):206- 211.

[8]Yamada S,Ohtera H,Narihisa H.Software reliability growth models with testing-effort[J].IEEE Trans.on Reliability,1986,35(1):19- 23.

[9]Lo J H,Huang C Y.An integration of fault detection and correction processes in software reliability analysis[J].Journal of Systems and Software,2006,79(9):1312- 1323.

[10]Huang C Y,Kuo S Y,Lyu M R.An assessment of testing-effort dependent software reliability growth models[J].IEEE Trans.on Reliability,2007,56(2):198- 211.

[11]Shu Y,Liu H,Wu Z,et al.Modeling of software fault detection and correction processes based on the correction lag[J].Information Technology Journal,2009,8(5):735- 742.

[12]Huang C Y,Lyu M R.Estimation and analysis of some generalized multiple change-point software reliability models[J].IEEE Trans.on Reliability,2011,60(2):498- 514.

[13]Musa J D,Jannino A,Okumoto K.Software reliability:measurement,prediction and application[M].New York:Mcgraw-Hill Book Company,1987:77- 112.

Software reliability growth model considering fault detection effort and fault correction effort

ZHAO Yu-xin,CHANG Shuai,WAN Cheng-cheng
(College of Automation,Harbin Engineering University,Harbin 150001,China)

The test effort is an important factor which affects the software testing process.It changes as time goes by,which has a direct impact on the efficiency of the fault detection and correction in the process of testing.Assessing the effect of testing process on the test effort reasonably is the key factor to build a precise software reliability mo-del.Aiming at the existing models’lack of understanding of test effort,the test effort is divided into fault detection effort and fault correction effort,according to the actual test situation.Then a software reliability growth model considering the two efforts is established and evaluated using a group of public dada.The results show that compared with the existing models considering fault detection and correction process,the proposed model has better fitting and prediction ability.

software reliability growth model(SRGM);test effort;fault detection effort;fault correction effort

TP 311

A

10.3969/j.issn.1001-506X.2015.04.38

赵玉新(1980-),男,教授,博士,主要研究方向为船舶导航及海洋装备。E-mail:zhaoyuxin@hrbeu.edu.cn

1001-506X(2015)04-0969-05

2014- 04- 14;

2014- 09- 22;网络优先出版日期:2014- 11- 19。

网络优先出版地址:http://w ww.cnki.net/kcms/detail/11.2422.TN.20141119.2200.004.html

国家自然科学基金(51379049);中央高校基本科研业务资助(HEUCF110419,HEUCFX41302)资助课题

常 帅(1988-),通讯作者,男,博士研究生,主要研究方向为现代导航设备可靠性研究。E-mail:chang11shuai12@aliyun.com

万程程(1989-),女,硕士研究生,主要研究方向为软件测试、软件可靠性。E-mail:wanchengcheng1989@126.com

猜你喜欢

软件可靠性效用修正
Some new thoughts of definitions of terms of sedimentary facies: Based on Miall's paper(1985)
修正这一天
小学美术课堂板书的四种效用
软件可靠性工程综合应用建模技术研究
软件修正
软件可靠性设计技术应用研究
纳米硫酸钡及其对聚合物的改性效用
基于PID控制的二维弹道修正弹仿真
几种常见棉花叶面肥保蕾铃效用试验
基于GQM的装备软件可靠性参数选取方法