摘要
开源软件缺陷预测通过挖掘软件历史仓库的数据,利用与软件缺陷相关的度量元或源代码本身的语法语义特征,借助机器学习或深度学习方法提前发现软件缺陷,从而减少软件修复成本并提高产品质量.漏洞预测则通过挖掘软件实例存储库来提取和标记代码模块,预测新的代码实例是否含有漏洞,减少漏洞发现和修复的成本.通过对 2000年至 2022年 12月软件缺陷预测研究领域的相关文献调研,以机器学习和深度学习为切入点,梳理了基于软件度量和基于语法语义的预测模型.基于这 2类模型,分析了软件缺陷预测和漏洞预测之间的区别和联系,并针对数据集来源与处理、代码向量的表征方法、预训练模型的提高、深度学习模型的探索、细粒度预测技术、软件缺陷预测和漏洞预测模型迁移六大前沿热点问题进行了详尽分析,最后指出了软件缺陷预测未来的发展方向.
基金项目
先进密码技术与系统安全四川省重点实验室开放课题(SKLACSS-202205)
海南省重点研发计划(GHYF2022010)
海南省重点研发计划(ZDYF202012)
国家自然科学基金(U1836210)
陕西省自然科学基础研究计划(2021JQ-192)
广西密码学与信息安全重点实验室课题(GCIS202123)