arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 2202.02385cs.SEcs.AI
收藏

使用大规模异构图表示学习在Microsoft的代码评审建议

Using Large-scale Heterogeneous Graph Representation Learning for Code Review Recommendations at Microsoft

The University of Texas at Austin(德克萨斯大学奥斯汀分校);Microsoft Research(微软研究院);Microsoft(微软公司);Delft University of Technology(代尔夫特理工大学)

Jiyang Zhang, Chandra Maddila, Ram Bairi, Christian Bird, Ujjwal Raizada, Apoorva Agrawal, Yamini Jhawar, Kim Herzig, Arie van Deursen

摘要:

代码评审是任何成熟软件开发过程的一个组成部分,并且在软件工程社区中,识别代码变更的最佳评审员是一个公认的问题。选择缺乏专业知识和理解的评审者可能会减慢开发速度或导致更多缺陷。迄今为止,大多数评审员推荐系统主要依赖于历史文件更改和评审信息;过去更改或评审文件的人最适合在未来进行评审。我们认为,虽然这些方法能够识别和建议合格的评审员,他们可能是盲目的评审员谁拥有所需的专业知识,只是从来没有与更改的文件之前。幸运的是,在Microsoft,我们在许多存储库中拥有大量的工作工件,这些工件可以产生关于我们开发人员的有价值的信息。为了解决上述问题,我们提出了CORAL,这是一种新颖的评审推荐方法,它利用了从丰富的实体集(开发人员,存储库,文件,拉取请求(PR),工作项等)构建的社会技术图。以及它们在现代源代码管理系统中的关系。我们在这个图上使用了一个图卷积神经网络,并在微软332个存储库上对它进行了两年半的训练。我们表明,CORAL能够很好地模拟审稿人选择的手动历史。此外,广泛的用户研究的基础上,我们证明了这种方法确定相关的和合格的审查传统的审查者错过,这些开发人员希望被列入审查过程中。最后,我们发现,“经典”的评审员推荐系统在较小的(就开发人员而言)软件项目上表现更好,而CORAL在较大的项目上表现出色,这表明“没有一个模型可以统治它们。"

英文摘要:

Code review is an integral part of any mature software development process, and identifying the best reviewer for a code change is a well-accepted problem within the software engineering community. Selecting a reviewer who lacks expertise and understanding can slow development or result in more defects. To date, most reviewer recommendation systems rely primarily on historical file change and review information; those who changed or reviewed a file in the past are the best positioned to review in the future. We posit that while these approaches are able to identify and suggest qualified reviewers, they may be blind to reviewers who have the needed expertise and have simply never interacted with the changed files before. Fortunately, at Microsoft, we have a wealth of work artifacts across many repositories that can yield valuable information about our developers. To address the aforementioned problem, we present CORAL, a novel approach to reviewer recommendation that leverages a socio-technical graph built from the rich set of entities (developers, repositories, files, pull requests (PRs), work items, etc.) and their relationships in modern source code management systems. We employ a graph convolutional neural network on this graph and train it on two and a half years of history on 332 repositories within Microsoft. We show that CORAL is able to model the manual history of reviewer selection remarkably well. Further, based on an extensive user study, we demonstrate that this approach identifies relevant and qualified reviewers who traditional reviewer recommenders miss, and that these developers desire to be included in the review process. Finally, we find that "classical" reviewer recommendation systems perform better on smaller (in terms of developers) software projects while CORAL excels on larger projects, suggesting that there is "no one model to rule them all."

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑