中文

将代码合规性评估视为学习问题

软件工程 2022-09-13 v1 人工智能 信息检索

摘要

人工代码审查与静态代码分析器是验证源代码是否符合编码策略的传统机制。然而,这些机制难以扩展。我们将代码合规性评估表述为一个机器学习(ML)问题,以自然语言策略和代码作为输入,并生成代码合规、不合规或无关的预测。这有助于扩展合规性分类并搜索传统机制未覆盖的策略。我们探讨了关于 ML 模型表述、训练数据与评估设置的关键研究问题。核心思想是获得一个联合的代码-文本嵌入空间,通过代码与策略嵌入的向量距离来保持合规关系。由于不存在特定任务数据,我们重新解释并过滤常用的软件数据集,并通过额外的预训练与预微调任务来缩小语义鸿沟。我们在两份编码策略列表(CWE 和 CBP)上对所提方法进行了基准测试。这是零样本评估,因为训练集中未出现任何策略。在 CWE 和 CBP 上,我们的工具 Policy2Code 分别取得了(59%,71%)的分类准确率和(0.05,0.21)的搜索 MRR,而 CodeBERT 的分类准确率为(37%,54%)、MRR 为(0.02,0.02)。在用户研究中,24% 的 Policy2Code 检测结果被接受,而 CodeBERT 仅为 7%。

关键词

引用

@article{arxiv.2209.04602,
  title  = {Code Compliance Assessment as a Learning Problem},
  author = {Neela Sawant and Srinivasan H. Sengamedu},
  journal= {arXiv preprint arXiv:2209.04602},
  year   = {2022}
}

备注

Amazon.com, 2022