Modern Code Review (MCR) is a widely known practice of software quality assurance. However, the existing body of knowledge of MCR is currently not understood as a whole. Objective: Our goal is to identify the state of the art on MCR, providing a structured overview and an in-depth analysis of the research done in this field. Method: We performed a systematic literature review, selecting publications from four digital libraries. Results: A total of 139 papers were selected and analyzed in three main categories. Foundational studies are those that analyze existing or collected data from the adoption of MCR. Proposals consist of techniques and tools to support MCR, while evaluations are studies to assess an approach or compare a set of them. Conclusion: The most represented category is foundational studies, mainly aiming to understand the motivations for adopting MCR, its challenges and benefits, and which influence factors lead to which MCR outcomes. The most common types of proposals are code reviewer recommender and support to code checking. Evaluations of MCR-supporting approaches have been done mostly offline, without involving human subjects. Five main research gaps have been identified, which point out directions for future work in the area.
翻译:现代代码审查(MCR)是一个广为人知的软件质量保证做法,然而,目前尚没有整体理解现有内容的MSR知识库。目标:我们的目标是确定MSR的最新水平,对该领域的研究进行结构化的概述和深入分析。方法:我们进行了系统化的文献审查,从四个数字图书馆挑选出版物。结果:共选取了139份文件,并按三个主要类别进行了分析。基础研究是分析通过MSCR获得的现有或收集的数据。建议包括支持MSCR的技术和工具,而评价则是评估一种方法或比较一套方法的研究。结论:代表最多的类别是基础研究,主要旨在了解采用MCR的动机、其挑战和益处,以及影响MCR成果的因素。最常见的建议类型是代码审查建议和支持代码检查。对MCR支持方法的评价大多在离线进行,没有涉及人类主题。确定了五个主要研究差距,指明了该领域未来工作的方向。