中文

借鉴相似代码:一种基于深度学习与自然语言处理的日志语句自动化方法

软件工程 2021-12-03 v1 机器学习

摘要

在现代软件开发中,开发人员在源代码内嵌入日志语句是一项必要职责,因为日志文件对于追踪运行时系统问题与排查系统管理任务不可或缺。然而,当前日志记录过程大多为手工操作,因此日志语句的合理位置与内容仍是挑战。为克服这些挑战,旨在自动化日志位置与内容预测(即“在何处记录、记录什么”)的方法备受关注。为此,我们利用源代码克隆与自然语言处理(NLP)来预测日志语句的位置(即何处)与描述(即什么),因为这些方法为日志预测提供了额外上下文与优势。具体而言,我们以三个研究问题(RQ)引导研究:(RQ1)如何利用相似代码片段(即代码克隆)预测日志语句?(RQ2)如何将方法扩展以自动化日志语句描述?(RQ3)所提方法对日志位置与描述预测的有效性如何?为回答研究问题,我们在七个开源 Java 项目上开展实验研究。我们提出一种更新且改进的日志感知代码克隆检测方法以预测日志语句位置(RQ1);随后结合自然语言处理(NLP)与深度学习方法自动化日志语句描述预测(RQ2)。分析表明,我们的混合 NLP 与代码克隆检测方案(NLP CC'd)相较传统克隆检测器,在发现日志语句位置上的平均表现提升 15.60%,且在预测日志语句描述的 BLEU 与 ROUGE 分数上较已有研究提升 40.86%(RQ3)。

关键词

引用

@article{arxiv.2112.01259,
  title  = {Borrowing from Similar Code: A Deep Learning NLP-Based Approach for Log Statement Automation},
  author = {Sina Gholamian and Paul A. S. Ward},
  journal= {arXiv preprint arXiv:2112.01259},
  year   = {2021}
}

备注

27 pages