Automated Code Review Using Large Language Models at Ericsson: An Experience Report
作者: Shweta Ramesh, Joy Bose, Hamender Singh, A K Raghavan, Sujoy Roychowdhury, Giriprasad Sridhara, Nishrith Saini, Ricardo Britto
分类: cs.SE, cs.AI
发布日期: 2025-07-25 (更新: 2025-07-31)
备注: 6 pages, 4 figures, 1 table. Accepted in ICSME 2025 conference in Auckland
💡 一句话要点
爱立信利用大型语言模型实现自动化代码审查,提升软件质量。
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 代码审查 大型语言模型 静态程序分析 软件质量 自动化
📋 核心要点
- 代码审查依赖经验丰富的开发者,但他们时间有限,难以进行深入审查,影响软件质量。
- 利用大型语言模型(LLM)和静态程序分析,开发轻量级自动化代码审查工具,减轻开发者负担。
- 初步实验结果表明,该工具具有潜力,能够辅助开发者进行代码审查,并提升软件质量。
📝 摘要(中文)
代码审查是保证软件质量的主要手段之一,与测试和静态分析同等重要。然而,代码审查需要经验丰富的开发人员,但他们可能没有足够的时间进行深入的代码审查。因此,自动化代码审查可以减轻经验丰富的软件开发人员的认知负担,使他们能够专注于编写代码以添加新功能和修复错误这一主要活动。在本文中,我们描述了我们在爱立信使用大型语言模型实现代码审查过程自动化的经验。我们描述了使用LLM和静态程序分析开发轻量级工具的过程。然后,我们描述了经验丰富的开发人员评估我们的代码审查工具的初步实验以及令人鼓舞的结果。
🔬 方法详解
问题定义:传统代码审查依赖人工,耗时且依赖专家经验,成为软件开发流程的瓶颈。现有方法难以在保证审查质量的同时,降低开发者的认知负担,提高审查效率。
核心思路:利用大型语言模型(LLM)的强大代码理解和生成能力,结合静态程序分析,自动识别代码中的潜在问题,并给出修改建议。核心在于将LLM作为代码审查的辅助工具,而非完全替代人工审查。
技术框架:该工具采用轻量级架构,主要包含以下模块:1) 代码接收模块:接收待审查的代码片段。2) 静态分析模块:利用静态程序分析技术,提取代码的结构化信息,例如控制流图、数据依赖关系等。3) LLM推理模块:将代码片段和静态分析结果输入LLM,LLM生成代码审查报告,包括潜在问题和修改建议。4) 结果展示模块:将LLM生成的报告展示给开发者,供其参考。
关键创新:该方法结合了LLM的代码理解能力和静态程序分析的精确性,能够更全面地识别代码中的问题。与纯粹依赖LLM的方法相比,该方法能够减少LLM的幻觉问题,提高审查结果的可靠性。
关键设计:论文中提到使用了轻量级的工具,但没有详细说明LLM的具体选择、prompt设计、静态分析工具的选取以及如何将静态分析的结果有效地融入到LLM的输入中。这些细节是影响最终效果的关键,但目前未知。
🖼️ 关键图片
📊 实验亮点
论文描述了初步实验,经验丰富的开发人员对该代码审查工具进行了评估,并获得了令人鼓舞的结果。但具体性能数据(例如,问题检出率、误报率、审查时间缩短比例等)以及与现有代码审查工具的对比情况未知。因此,实验亮点的具体量化信息不足。
🎯 应用场景
该研究成果可应用于软件开发的代码审查环节,帮助开发团队提高代码质量、减少错误、缩短开发周期。通过自动化代码审查,可以降低人工审查的成本,并使经验丰富的开发人员能够专注于更具挑战性的任务。未来,该技术有望集成到CI/CD流程中,实现持续的代码质量监控。
📄 摘要(原文)
Code review is one of the primary means of assuring the quality of released software along with testing and static analysis. However, code review requires experienced developers who may not always have the time to perform an in-depth review of code. Thus, automating code review can help alleviate the cognitive burden on experienced software developers allowing them to focus on their primary activities of writing code to add new features and fix bugs. In this paper, we describe our experience in using Large Language Models towards automating the code review process in Ericsson. We describe the development of a lightweight tool using LLMs and static program analysis. We then describe our preliminary experiments with experienced developers in evaluating our code review tool and the encouraging results.