利用段落向量改进现有代码审查辅助工具 CRUSO
软件工程
2021-04-30 v1
摘要
代码审查是估计源代码缺陷性的有效方法之一。然而,现有方法依赖专家或效率低下。在本文中,我们改进了现有代码审查辅助工具——CRUSO 的性能(在速度与内存使用方面)。该方法的核心思想是通过利用各类 StackOverflow(SO)帖子中相似代码片段的缺陷性评分来估计输入源代码的缺陷性。我们论文的重要贡献为:i) SOpostsDB:一个包含 PVA 向量与 SO 帖子信息的数据集,ii) CRUSO-P:基于在 \emph{SOpostsDB} 上训练的 PVA 模型的代码审查辅助系统。对于给定的输入源代码,CRUSO-P 将其标记为 {可能含缺陷、可能无缺陷、不可预测}。为开发 CRUSO-P,我们处理了超过 300 万条 SO 帖子与 188200+ 个 GitHub 源文件。CRUSO-P 设计用于支持流行编程语言 {C、C#、Java、JavaScript 与 Python} 编写的源代码。CRUSO-P 以响应时间 97.82% 的提升与存储 99.15% 的缩减优于 CRUSO。CRUSO-P 在用 C 编程语言测试时取得最高的 99.6% 平均准确率分数,从而相较现有方法取得 5.6% 的提升。
引用
@article{arxiv.2104.14265,
title = {Using Paragraph Vectors to improve our existing code review assisting tool-CRUSO},
author = {Ritu Kapur and Balwinder Sodhi and Poojith U Rao and Shipra Sharma},
journal= {arXiv preprint arXiv:2104.14265},
year = {2021}
}
备注
Accepted to be published in the 14th Innovations in Software Engineering Conference (ISEC) 2021. Contains 4 tables and 6 figures in 11 pages