论文

AI 生成的 Python 重构 Pull 请求中的质量和安全信号

Quality and Security Signals in AI-Generated Python Refactoring Pull Requests

模型评测模型行为与机制分析

摘要

随着人工智能代理对代码开发和维护的贡献越来越大,关于其在现实世界项目中的变化的质量和风险特征的经验证据仍然有限,特别是对于面向重构的贡献。目前尚不清楚代理编写的重构编辑合并到 GitHub 存储库后如何影响可维护性、代码质量和安全性。为了解决这一差距,我们对来自 AIDev 数据集的 Python 重构拉取请求 (PR) 进行了实证研究。我们使用 PyQu(一种基于 ML 的 Python 质量评估工具)来分析代理重构 PR,以量化五个质量属性的变化,并用与域无关的静态分析(Pylint 和 Bandit)来补充 PyQu,以衡量每次更改之前和之后的代码质量和安全问题。我们的结果表明,平均而言,代理提交改善了 22.5% 所研究变更的质量属性,其中可用性改善最为频繁 (36.5%)。与此同时,24.17% 的修改文件引入了新的 Pylint 问题,主要是惯例级别的违规行为,例如长行,而 4.7% 的修改文件引入了新的 Bandit 发现。根据观察到的差异,我们得出 24 个重复更改操作的分类,并将它们映射到它们最常影响的 lint 和安全结果。尽管结果好坏参半,但开发人员的接受度很高:73.5% 的分析 PR 被合并,包括引入新的 l​​int 或安全发现的案例,通常同时消除了现有问题。总的来说,这些发现凸显了代理重构的前景和当前的局限性,并激发了人工智能驱动的开发工作流程的更强大的工具在环质量和安全门控。