AI-Assisted Assessment of Coding Practices in Modern Code Review

被引:1
作者
Vijayvergiya, Manushree [1 ]
Salawa, Malgorzata [1 ]
Budiselic, Ivan [1 ]
Zheng, Dan [2 ]
Lamblin, Pascal [3 ]
Ivankovic, Marko [1 ]
Carin, Juanjo [4 ]
Lewko, Mateusz [1 ]
Andonov, Jovan [1 ]
Petrovic, Goran [1 ]
Tarlow, Daniel [3 ]
Maniatis, Petros [2 ]
Just, Rene [5 ]
机构
[1] Google, Zurich, Switzerland
[2] Google, Mountain View, CA 94043 USA
[3] Google, Montreal, PQ, Canada
[4] Google, Sunnyvale, CA USA
[5] Univ Washington, Seattle, WA 98195 USA
来源
PROCEEDINGS OF THE 1ST ACM INTERNATIONAL CONFERENCE ON AI-POWERED SOFTWARE, AIWARE 2024 | 2024年
关键词
Artificial Intelligence; Code Review; Coding Best Practices;
D O I
10.1145/3664646.3665664
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
Modern code review is a process in which an incremental code contribution made by a code author is reviewed by one or more peers before it is committed to the version control system. An important element of modern code review is verifying that code contributions adhere to best practices. While some of these best practices can be automatically verified, verifying others is commonly left to human reviewers. This paper reports on the development, deployment, and evaluation of AutoCommenter, a system backed by a large language model that automatically learns and enforces coding best practices. We implemented AutoCommenter for four programming languages (C++, Java, Python, and Go) and evaluated its performance and adoption in a large industrial setting. Our evaluation shows that an end-to-end system for learning and enforcing coding best practices is feasible and has a positive impact on the developer workflow. Additionally, this paper reports on the challenges associated with deploying such a system to tens of thousands of developers and the corresponding lessons learned.
引用
收藏
页码:85 / 93
页数:9
相关论文
共 28 条
[1]  
Bacchelli A, 2013, PROCEEDINGS OF THE 35TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2013), P712, DOI 10.1109/ICSE.2013.6606617
[2]   Analyzing the State of Static Analysis: A Large-Scale Evaluation in Open Source Software [J].
Beller, Moritz ;
Bholanath, Radjino ;
McIntosh, Shane ;
Zaidman, Andy .
2016 IEEE 23RD INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION, AND REENGINEERING (SANER), VOL 1, 2016, :470-481
[3]   MuRS: Mutant Ranking and Suppression using Identifier Templates [J].
Chen, Zimin ;
Salawa, Malgorzata ;
Vijayvergiya, Manushree ;
Petrovic, Goran ;
Ivankovic, Marko ;
Just, Rene .
PROCEEDINGS OF THE 31ST ACM JOINT MEETING EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, ESEC/FSE 2023, 2023, :1798-1808
[4]   DESIGN AND CODE INSPECTIONS TO REDUCE ERRORS IN PROGRAM-DEVELOPMENT [J].
FAGAN, ME .
IBM SYSTEMS JOURNAL, 1976, 15 (03) :182-211
[5]   Resolving Code Review Comments with Machine Learning [J].
Frommgen, Alexander ;
Austin, Jacob ;
Choy, Peter ;
Ghelani, Nimesh ;
Kharatyan, Lera ;
Surita, Gabriela ;
Khrapko, Elena ;
Lamblin, Pascal ;
Manzagol, Pierre-Antoine ;
Revaj, Marcus ;
Tabachnyk, Maxim ;
Tarlow, Daniel ;
Villela, Kevin ;
Zheng, Daniel ;
Chandra, Satish ;
Maniatis, Petros .
2024 ACM/IEEE 46TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: SOFTWARE ENGINEERING IN PRACTICE, ICSE-SEIP 2024, 2024, :204-215
[6]  
github, 2024, Google Style Guides
[7]   A systematic literature review of actionable alert identification techniques for automated static code analysis [J].
Heckman, Sarah ;
Williams, Laurie .
INFORMATION AND SOFTWARE TECHNOLOGY, 2011, 53 (04) :363-387
[8]   CommentFinder: A Simpler, Faster, More Accurate Code Review Comments Recommendation [J].
Hong, Yang ;
Tantithamthavorn, Chakkrit ;
Thongtanunam, Patanamon ;
Aleti, Aldeida .
PROCEEDINGS OF THE 30TH ACM JOINT MEETING EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, ESEC/FSE 2022, 2022, :507-519
[9]   Code Coverage at Google [J].
Ivankovic, Marko ;
Petrovic, Goran ;
Just, Rene ;
Fraser, Gordon .
ESEC/FSE'2019: PROCEEDINGS OF THE 2019 27TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, 2019, :955-963
[10]   Productive Coverage: Improving the Actionability of Code Coverage [J].
Ivankovic, Marko ;
Petrovic, Goran ;
Kulizhskaya, Yana ;
Lewko, Mateusz ;
Kalinovcic, Luka ;
Just, Rene ;
Fraser, Gordon .
2024 ACM/IEEE 46TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: SOFTWARE ENGINEERING IN PRACTICE, ICSE-SEIP 2024, 2024, :58-68