ACoRA – A Platform for Automating Code Review Tasks
Journal article, 2025

Background: Modern Code Reviews (MCR) are frequently adopted when assuring code and design quality in continuous integration and deployment projects. Although tiresome, they serve a secondary purpose of learning about the software product. Aim: Our objective is to design and evaluate a support tool to help software developers focus on the most important code fragments to review and provide them with suggestions on what should be reviewed in this code. Method: We used design science research to develop and evaluate a tool for automating code reviews by providing recommendations for code reviewers. The tool is based on Transformer-based machine learning models for natural language processing, applied to both programming language code (patch content) and the review comments. We evaluate both the ability of the language model to match similar lines and the ability to correctly indicate the nature of the potential problems encoded in a set of categories. We evaluated the tool on two open-source projects and one industry project. Results: The proposed tool was able to correctly annotate (only true positives) 35%–41% and partially correctly annotate 76%–84% of code fragments to be reviewed with labels corresponding to different aspects of code the reviewer should focus on. Conclusion: By comparing our study to similar solutions, we conclude that indicating lines to be reviewed and suggesting the nature of the potential problems in the code allows us to achieve higher accuracy than suggesting entire changes in the code considered in other studies. Also, we have found that the differences depend more on the consistency of commenting rather than on the ability of the model to find similar lines.

BERT

Code Reviews

Continous Integration

Machine Learning

Author

M. Ochodek

Poznan University of Technology

Miroslaw Staron

Chalmers, Computer Science and Engineering (Chalmers), Software Engineering (Chalmers)

E-Informatica Software Engineering Journal

1897-7979 (ISSN) 2084-4840 (eISSN)

Vol. 19 1 250102

Subject Categories

Software Engineering

DOI

10.37190/e-Inf250102

More information

Latest update

10/30/2024