The complexity and size increase of software has extended the delay for developers as they wait for code analysis and code merge. With the larger and more complex software, more developers nowadays are developing software with large source code repositories. The tendency for software platforms to immediately update software packages with feature updates and bug-fixes is a significant obstacle. Continuous integration systems may help prevent software flaws during the active development of software packages, even when they are deployed and updated frequently. Herein, we present a portable and modular code review automation system that inspects incoming code changes such as code format and style, performance regression, static analysis, build and deployment tests, and dynamic analysis before merging and changing code. The proposed mechanisms are sufficiently lightweight to be hosted on a regular desktop computer even for numerous developers. The resulting reduced costs allow developers to apply the proposed mechanism to many source code repositories. Experimental results demonstrate that the proposed mechanism drastically reduces overheads and improves usability compared with conventional mechanisms: execution time (6x faster), CPU usage (40% lower), memory consumption (1/180), and no out-of-memory occurrence.
翻译:软件的复杂性和规模的增加延长了开发者等待代码分析和代码合并的延迟时间。随着软件的扩大和复杂程度的提高,现在有更多的开发者正在开发使用大源代码库的软件。软件平台立即更新软件包,同时提供功能更新和错误修正的倾向是一个重大障碍。连续的整合系统可能有助于防止软件在软件包的积极开发过程中出现缺陷,即使软件包的部署和经常更新也是如此。在这里,我们提出了一个便携式和模块化代码审查自动化系统,在代码格式和风格、性能回归、静态分析、构建和部署测试以及动态分析之前,对源代码进行检查。提议的机制相当轻,足以在常规桌面计算机上托管,即使对众多开发者也是如此。因此降低的成本使得开发者能够将拟议的机制应用于许多源代码库。实验结果表明,拟议的机制大大降低了管理费并提高了可用性,并且与常规机制相比:执行时间(6x更快)、CPU使用(更低40%)、记忆消耗(1/180)以及没有发生意外事件。