利用软件代码指标预测与老化相关的漏洞
1. 引言
随着软件系统复杂度的不断增加,软件故障的数量也日益增多,这严重影响了企业的效益和声誉。软件老化是指软件在长期运行过程中,由于运行时积累的漏洞,性能逐渐下降,最终崩溃的现象。它还会导致资源逐渐耗尽,使软件陷入挂起或崩溃状态。
与老化相关的漏洞(ARB)是指那些在软件长期运行后,由于错误累积而对系统可用性产生严重影响的软件漏洞。常见的 ARB 类型如下表所示:
| 类别 | 子类别 |
| — | — |
| 内存漏洞 | 悬空指针、内存泄漏、溢出错误、空指针解引用、未初始化内存读取 |
| 未终止的线程 | - |
| 未释放的文件和锁 | - |
| 磁盘碎片 | - |
在测试过程中,定位 ARB 非常困难。目前,软件复兴技术被广泛应用,即偶尔停止正在运行的软件,清理系统的内部状态,然后重新启动系统,例如重启计算机。
本文旨在寻找 Java 类中不常出现的 ARB 的位置,而不是减少 ARB 在复杂软件中的影响。通过使用源代码指标作为预测因子,并应用机器学习(ML)算法,来找出容易出现 ARB 的文件。
研究提出了三个研究问题:
- RQ 1:如果可以预测 ARB,那么从漏洞报告中选择 ARB 的关键词是什么?
- RQ 2:应用特征选择排名方法是否能提高 ARB 预测的性能?
- RQ 3:不同的 ML 算法在预测方面是否存在显著差异?
为了回答这些问题,我们采用了手动方法,根据漏洞报告中的关键词对 ARB 进行分类,并对 Apache Zookeeper 这个大型开源软件系统进
超级会员免费看
订阅专栏 解锁全文
660

被折叠的 条评论
为什么被折叠?



