中文

精炼 ChatGPT 生成代码:代码质量问题的表征与缓解

软件工程 2023-12-18 v2

摘要

我们系统性地研究了 ChatGPT 针对 2033 个编程任务所生成的 4066 份代码的质量,这些代码采用两种流行编程语言(即 Java 和 Python)实现。本工作的目标有三方面。首先,我们分析 ChatGPT 在代码生成任务上的正确性,并揭示影响其有效性的因素,包括任务难度、编程语言、任务引入时间以及程序规模。其次,我们识别并刻画 ChatGPT 生成代码质量方面存在的潜在问题。最后,我们提供关于如何缓解这些问题的见解。实验强调,在 ChatGPT 生成的 4066 个程序中,2756 个程序被认为正确,1082 个程序给出错误输出,177 个程序包含编译或运行时错误。此外,我们通过静态分析工具进一步分析生成代码的其他特征(如代码风格与可维护性),发现 1930 个 ChatGPT 生成的代码片段存在可维护性问题。随后,我们研究 ChatGPT 的自修复能力及其与静态分析工具的交互,以修复前一步发现的错误。实验表明,ChatGPT 可部分解决这些挑战,将代码质量提升逾 20%,但仍存在局限性与改进空间。总体而言,我们的研究为 ChatGPT 当前的局限性提供了宝贵见解,并为未来研究与开发工作增强诸如 ChatGPT 等 AI 模型的代码生成能力提供了路线图。

关键词

引用

@article{arxiv.2307.12596,
  title  = {Refining ChatGPT-Generated Code: Characterizing and Mitigating Code Quality Issues},
  author = {Yue Liu and Thanh Le-Cong and Ratnadira Widyasari and Chakkrit Tantithamthavorn and Li Li and Xuan-Bach D. Le and David Lo},
  journal= {arXiv preprint arXiv:2307.12596},
  year   = {2023}
}