Operations Research and Fuzziology
Vol. 13  No. 04 ( 2023 ), Article ID: 70046 , 10 pages
10.12677/ORF.2023.134284

基于高斯过程回归的软件可靠性模型

熊天骏1,杨剑锋1,2*,王震1

1贵州大学数学与统计学院,贵州 贵阳

2贵州理工学院大数据学院,贵州 贵阳

收稿日期:2023年6月2日;录用日期:2023年7月29日;发布日期:2023年8月3日

摘要

传统软件可靠性模型通常过于依赖假设条件,难以适应复杂的实际情况。为此,本文提出了一种基于高斯过程回归(Gaussian Process Regression, GPR)的软件可靠性非参数模型。该模型结合了机器学习和高斯过程核,从失效数据中提取样本特征之间的相关关系。与传统可靠性模型相比,本文提出的模型具有更广泛的应用效果。通过对两组真实数据进行对比分析,结果显示本文提出的可靠性模型具有更好的拟合效果和预测能力。

关键词

软件可靠性模型,高斯过程回归,非参数模型,机器学习

A Software Reliability Model Based on Gaussian Process Regression

Tianjun Xiong1, Jianfeng Yang1,2*, Zhen Wang1

1School of Mathematics and Statistics, Guizhou University, Guiyang Guizhou

2School of Big Data, Guizhou Institute of Technology, Guiyang Guizhou

Received: Jun. 2nd, 2023; accepted: Jul. 29th, 2023; published: Aug. 3rd, 2023

ABSTRACT

Traditional software reliability models often rely too much on assumptions and are difficult to adapt to complex practical situations. Therefore, this paper proposes a nonparametric model of software reliability based on Gaussian Process Regression (GPR). The model combines machine learning and Gaussian process kernels to extract correlations between sample features from failed data. Compared with the traditional reliability model, the model proposed in this paper has a wider application effect. Through the comparative analysis of the two sets of real data, the results show that the reliability model proposed in this paper has better fitting effect and prediction ability.

Keywords:Software Reliability Model, Gaussian Process Regression, Nonparametric Model, Machine Learning

Copyright © 2023 by author(s) and Hans Publishers Inc.

This work is licensed under the Creative Commons Attribution International License (CC BY 4.0).

http://creativecommons.org/licenses/by/4.0/

1. 引言

软件可靠性是衡量软件系统在指定时间段内无故障地执行其预期功能的能力的指标,这是软件开发和维护的一个关键方面,因为软件故障可能会产生严重的后果,例如经济损失、声誉损害,甚至安全隐患,可靠的软件可以一致和准确地执行其预期功能,而不会造成任何意外或不良结果。软件可靠性受各种因素的影响,例如软件的复杂性、代码的质量、测试和验证过程以及操作环境。随着软件系统变得越来越复杂和互联,研究其可靠性变得越来越具有挑战性。

所以对软件可靠性的模型选择以及预测其未来增长趋势显得尤为重要,过去已有很多软件可靠性模型被提出,绝大多数模型是基于非齐次泊松过程(NHPP)类的软件可靠性模型。Yang等 [1] 介绍了关于NHPP类开源软件可靠性增长模型的极大似然估计。Jelinski等 [2] 介绍了软件可靠性的研究。Zhang等 [3] 分析了影响软件可靠性的因素。最经典的模型为G-O模型,Jeske等 [4] 提出了关于G-O模型的极大似然估计。Lavanya等 [5] 研究了通过aco与mle的方法去估计G-O模型中的参数。同样用的很多的为ISS模型,对于SRGM没有透明的解释用于累积软件误差的方差估计,Lee等 [6] 提出了利用ISS来建立具有置信区间的SRGM。Erto等 [7] 提出了一种新的广义下的ISS模型,它的特点是允许对每个故障函数的非单调故障率建模。Sagar等 [8] 结合了威布尔分布方法和ISS模型。Pradhan等 [9] 提出将测量工作量函数(TFF)作为时间变化故障率参与到广义ISS模型中。Wang等 [10] 考虑将ISS模型引入开源软件可靠性模型。Shrivastava等 [11] 通过考虑变化点前后的不同分布函数,开发了一个框架,将变化点纳入混合软件可靠性增长模型的开发中。Yang等 [12] 提出一种考虑故障检测和纠错过程的屏蔽数据开源软件增长可靠性模型框架。

为了解决大规模复杂软甲的可靠性预测和分析问题,软件可靠性模型需要具备处理多个参数的能力,贝叶斯网络表现出很强的适应涉及复杂变异因素的问题的能力,Bai等 [13] 开发了一个扩展的马尔可夫贝叶斯网络,用于对具有操作配置文件的软件可靠性预测进行建模。Ruggeri等 [14] 对贝叶斯软件可靠性建模进展进行了介绍。Wiper等 [15] 分析了软件可靠性模型,其中软件度量形式的协变量信息可用性,使用神经网络回归,根据故障间隔时间或故障次数来估计模型中的故障率。Aktekin等 [16] 开发了一个在软件可靠性方面调试不完善的模型,用贝叶斯分析,获取模型参数。

机器学习(ML)技术在软件可靠性预测中的应用已经显示出细致而显着的结果,Jaiswal等 [17] 提出了使用ML技术进行软件可靠性预测,并根据选定的性能标准对其进行评估。Habtemariam等 [18] 介绍了利用机器学习技术预测软件可靠性的系统文献综述。Mohanty等 [19] 采用机器学习技术,来准确预测软件可靠性。

综上所述,本文的想法在于利用GPR模型来面对大规模复杂软件系统的可靠性预测和分析问题,增强预测的准确性,基于高斯过程回归的可靠性建模可以通过从历史数据中学习参数来计算复杂软件系统的初始可靠性。余下部分主要如下,第二章主要介绍了高斯过程回归的软件可靠性建模以及模型评价标准,第三章是案例分析,以及与G-O模型、ISS模型的对比。第四章是结论。

2. 基于高斯过程回归的软件可靠性模型

2.1. 高斯过程回归的软件可靠性建模

高斯过程回归是来自于贝叶斯方法的一种非参数模型,高斯过程定义了一个先验函数,该函数在观察到先验分布中的一些值后转换为后验函数。本文只对一维高斯回归进行解释,对于训练集 Z = ( X i , Y i ) , i = 1 , 2 , 3 , , k X i 为输入数据, Y i 为对应的输出数据。目的是通过样本来学习,经过训练后,得出 X i Y i 的函数关系,并用新的测试集 X i * 来预测 Y i *

将训练集 Z = ( W t , M t ) , t = 1 , 2 , 3 , , s 。其中 W 为时间, M t 为t时刻的累计故障数,将 Z 代到(1)式,对于给定S组训练样本 W = { W 1 , W 2 , , W S } 有回归方程如下:

M = f ( W ) + N ( 0 , σ n 2 ) f ( W ) ~ g p [ 0 , k ( W , W ) ] (1)

其中, W 为学习样本, M 为对应输出数据; g p [ 0 , k ( W , W ) ] 是均值为0、协方差为K的高斯过程;

由于高斯回归不需要先验知识,所以是从数据中训练后得到先验分布:

M ~ N ( 0 , K ( W , W ) + σ n 2 I ) (2)

而高斯回归中任意有限维的随机变量都服从高斯分布,所以对新输入的时间 W * 以及对应预测故障数 M * 也服从上述高斯分布,所以:

( M M * ) ~ N ( 0 [ K ( W , W ) + σ n 2 I K ( W , W * ) K ( W * , W ) K ( W * , W * ) ] ) (3)

再取边缘分布,有:

p ( M * | W , M , W * , σ n 2 ) = N ( M * | m ( M * ) , cov ( M * ) ) (4)

其中, M * 的均值

m ( M * ) = K ( W * , W ) [ K ( W , W ) + σ n 2 I ] 1 M (5)

协方差

cov ( M * ) = K ( W * , W ) K ( W * , W ) [ K ( W , W ) + σ n 2 I ] 1 K ( W , W * ) (6)

又上述可知,由于讲高斯过程中的均值预设为0,所以完全由协方差函数决定,即可以通过(6)来算出预测值 M * 以及其方差,所以协方差函数的选取尤为重要,本文选用的是径向基(RBF)核函数作协方差函数,RBF是使用的最多的一种核函数,用于机器学习中的各种任务,如分类、回归和聚类。

2.2. 模型评价标准

本文将提出的GPR模型与G-O模型、ISS模型进行对比。选用RMSE和MAE作为评价模型拟合程度的指标:

均方根误差(RMSE):预测值与实际值偏差的平方和与观察次数m比值的平方根:

RMSE = i = 1 m ( Y i Y i * ) 2 m (7)

其中 Y i 为实际值, Y i * 为预测值。RMSE更小说明效果更好。

平均绝对误差(MAE):

MAE = 1 m i = 1 m | Y i Y i * | (8)

其中 Y i 为实际值, Y i * 为预测值。m为回归数据的个数,MAE越小表示模型的表现更好。

3. 案例分析

3.1. 数据介绍

3.1.1. 数据集1

本文选取两组数据进行研究,各数据均来自用户缺陷跟踪系统。数据集1为TOMCAT服务器软件,Apache Tomcat,通常简称为Tomcat,是由Apache软件基金会开发的开源Web服务器和servlet容器。它用于为Java应用程序提供服务,并为运行基于Java的Web应用程序(如JavaServer Pages (JSP)和Java Servlets)提供环境。本文从缺陷系统中提取了TOMCAT3-11的2000年8月到2023年5月共计274个月的数据,失效数据表如表1所示。其中第1~193月作为训练集,第194~274月作为预测集。

Table 1. Accumulated failure data of TOMCAT3-11

表1. TOMCAT3-11的累计失效数据

3.1.2. 数据集2

数据集2来源于Apache HTTP,它是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。本文从缺陷系统中提取了Apache httpd-2、Apache httpd-1.3、Apache httpd-test的2002年3月到2023年3月共计250个月的累计失效数据。失效数据表如表2所示。其中第1个月~176个月作为训练集,第177个月~第250个月作为预测集。

Table 2. Accumulated failure data of apache httpd

表2. Apache httpd的累计失效数据

3.2. 模型性能比较分析

3.2.1. 数据集1性能对比

通过使用2.1节提出的模型,并使用3.1的数据集进行训练.我们得到了G-O模型以及ISS模型的参数估计结果和模型比较结果,如表3所示,从表中可以得出,在训练集方面,GPR的RMSE要比G-O模型以及ISS模型的RMSE要低,并且GPR的MAE也比G-O模型以及ISS模型的MAE要低,说明GPR模型拟合效果较好,其次是ISS模型,最差的是G-O模型。在测试集方面,GPR的RMSE以及MAE要远低于G-O模型以及ISS模型的RMSE和MAE,说明GPR模型的预测效果更好,其次是ISS模型,预测效果最差是G-O模型。图1是数据集1的效果图,训练集用虚线表示,测试集用实线表示。

Table 3. Parameter estimation and model comparison results for training set 1

表3. 训练集1的参数估计和模型比较结果

Figure 1. Renderings of dataset 1

图1. 数据集1的效果图

3.2.2. 数据集2性能对比

表4所示,在训练集中,GPR的RMSE和MAE都要低于G-O模型以及ISS模型的RMSE和MAE,说明GPR模型的拟合效果更好,在测试集中,GPR的RMSE和MAE也要远远低于G-O模型以及ISS模型的RMSE和MAE,说明GPR模型的预测效果更好,ISS模型预测效果也不错,最差的是G-O模型。图2是数据2的效果图。

Table 4. Parameter estimation and model comparison results for training set 2

表4. 训练集2的参数估计和模型比较结果

Figure 2. Renderings of dataset 2

图2. 数据集2的效果图

4. 结论

随着互联网的发展,软件的规模越来越大,传统可靠性模型预测方法去预测越来越难,拟合度也没有太好,基于现代软件的规模,利用基于贝叶斯框架的高斯过程回归去拟合累计故障数据,建立预测的模型,并与其他两种传统可靠性模型进行了比较,结果表明,本文提出的GPR在准确性和效率方面优于它们,是一种不错的可靠性预测方法,为软件可靠性预测领域提供了有价值的贡献。

基金项目

国家自然科学基金资助项目(71901078);贵州省电力大数据重点实验室(黔科合计Z字[2015] 4001)。

文章引用

熊天骏,杨剑锋,王 震. 基于高斯过程回归的软件可靠性模型
A Software Reliability Model Based on Gaussian Process Regression[J]. 运筹与模糊学, 2023, 13(04): 2840-2849. https://doi.org/10.12677/ORF.2023.134284

参考文献

  1. 1. 陈静, 杨剑锋, 王喜宾, 等. NHPP类开源软件可靠性增长模型的极大似然估计[J]. 广西大学学报(自然科学版), 2022, 47(1): 174-184.

  2. 2. Jelinski, Z. and Moranda, P. (1972) Software Reliability Research. In: Freiberger, W., Ed., Statistical Computer Performance Evaluation, Academic Press, Cambridge, 465-484. https://doi.org/10.1016/B978-0-12-266950-7.50028-1

  3. 3. Zhang, X. and Pham, H. (2000) An Analysis of Factors Affecting Software Reliability. Journal of Systems and Software, 50, 43-56. https://doi.org/10.1016/S0164-1212(99)00075-8

  4. 4. Jeske, D.R. and Pham, H. (2001) On the Maximum Likelihood Estimates for the Goel-Okumoto Software Reliability Model. The American Statistician, 55, 219-222. https://doi.org/10.1198/000313001317098211

  5. 5. Lavanya, G., Neeraja, K., Basha, S.A., et al. (2017) Pa-rameter Estimation of Goel-Okumoto Model by Comparing ACO with MLE Method. International Research Journal of Engineering and Technology, 4, 1605-1615.

  6. 6. Lee, T.-Q., Fang, C.-C. and Yeh, C.-W. (2013) Confidence Interval Estimation of Software Reliability Growth Models Based on Ohba’s Inflection S-Shaped Model. Journal of Industrial and Intelligent Information, 1, 196-200. https://doi.org/10.12720/jiii.1.4.196-200

  7. 7. Erto, P., Giorgio, M. and Lepore, A. (2020) The Generalized Inflection S-Shaped Software Reliability Growth Model. IEEE Transactions on Reliability, 69, 228-244. https://doi.org/10.1109/TR.2018.2869466

  8. 8. Sagar, B.B., Saket, R.K. and Gurmit, S.C. (2016) Exponenti-ated Weibull Distribution Approach Based Inflection S-Shaped Software Reliability Growth Model. Ain Shams Engineering Journal, 7, 973-991. https://doi.org/10.1016/j.asej.2015.05.009

  9. 9. Pradhan, V., Kumar, A. and Dhar, J. (2022) Enhanced Growth Model of Software Reliability with Generalized Inflection S-Shaped Testing-Effort Function. Journal of Interdis-ciplinary Mathematics, 25, 137-153. https://doi.org/10.1080/09720502.2021.2006329

  10. 10. Wang, J. and Zhang, C. (2022) Reliability Model of Open Source Software Considering Fault Introduction with Generalized Inflection S-Shaped Distribution. SN Applied Sciences, 4, Article No. 244. https://doi.org/10.1007/s42452-022-05125-6

  11. 11. Shrivastava, A.K. and Sharma, R. (2022) Developing a Hybrid Software Reliability Growth Model. International Journal of Quality & Reliability Management, 39, 1209-1225. https://doi.org/10.1108/IJQRM-02-2021-0039

  12. 12. Yang, J., Zhao, M. and Chen, J. (2022) ELS Algorithm for Estimating Open Source Software Reliability with Masked Data Considering both Fault Detection and Correction Processes. Communications in Statistics-Theory and Methods, 51, 6792-6817. https://doi.org/10.1080/03610926.2020.1866610

  13. 13. Bai, C.-G. (2005) Bayesian Network Based Software Reliability Prediction with an Operational Profile. Journal of Systems and Software, 77, 103-112. https://doi.org/10.1016/j.jss.2004.11.034

  14. 14. Ruggeri, F., Soyer, R. and Imati, C. (2008) Advances in Bayesian Software Reliability Modelling. In: Bedford, T., et al., Eds., Advances in Mathematical Modelling for Re-liability, IOS Press, Amsterdam, 149-157.

  15. 15. Wiper, M.P., Palacios, A.P. and Marin, J.M. (2012) Bayesian Software Reliability Prediction Using Software Metrics Information. Quality Technology & Quantitative Manage-ment, 9, 35-44. https://doi.org/10.1080/16843703.2012.11673276

  16. 16. Aktekin, T. and Caglar, T. (2013) Imperfect Debug-ging in Software Reliability: A Bayesian Approach. European Journal of Operational Research, 227, 112-121. https://doi.org/10.1016/j.ejor.2012.11.056

  17. 17. Jaiswal, A. and Malhotra, R. (2018) Software Reliability Pre-diction Using Machine Learning Techniques. International Journal of System Assurance Engineering and Man-agement, 9, 230-244. https://doi.org/10.1007/s13198-016-0543-y

  18. 18. Habtemariam, G.M., Mohapatra, S.K., Seid, H.W., et al. (2022) A Systematic Literature Review of Predicting Software Reliability Using Machine Learning Techniques. In: Khari, M., Mishra, D.B., Acharya, B. and Crespo, R.G., Eds., Optimization of Automated Software Testing Using Meta-Heuristic Techniques, Springer, Berlin, 77-90. https://doi.org/10.1007/978-3-031-07297-0_6

  19. 19. Mohanty, R., Ravi, V. and Patra, M.R. (2010) Application of Machine Learning Techniques to Predict Software Reliability. International Journal of Applied Evolutionary Computation (IJAEC), 1, 70-86. https://doi.org/10.4018/jaec.2010070104

  20. NOTES

    *通讯作者。

期刊菜单