自动程式码审查

自动程式码审查(Automated code review)是可以检查源代码是否符合规定的软件,规定可能是事先定义的规则,或是目前的最佳实务。 自动程式码审查在开源软件以及商业软件的开发中都有用到[1]。 利用分析的方式来检测及审查程式码,侦测其中是否有软件错误或是安全问题,已经是标准的开发实务。进行的方式可以用人工确认,也可以用自动化的方式确认[2][3]。随着自动化,软件工具可以协助代码审查及检查的过程。审查工具一般会列出许多的警告(程式码违反程式标准)。审查工具也可以修正发现的问题,可以用自动化的修正方式,或是由程序员辅助的修正方式。这是容易掌握的软件中的一部分。有助于软件智慧的实践。这个程序常称为linting,因为Lint是最早期用在静态程式分析的软件。

有些静态程序分析工具可以用来协助自动程式码审查,这些工具受欢迎的程度不如人工审查,但可以作的更快,更有效率[来源请求]。这些工具也可以封装一些对底层规则的深入了解,以及要进行形态分析需要的语意,因此操作软件的人工审查者不需要和完全人工审查者一样,有对程式及业务深入的了解[2]。许多集成开发环境(IDE)也有提供基本的自动程式码审查机能,例如Eclipse[4]Microsoft Visual Studio[5]。集成开发环境也有许多的plugin可以进行程式码审查。

除了静态程序分析工具外,也有工具可以分析软件,并且进行软件视觉化英语軟體架構視覺化,帮助人理解程式码。这种系统更着重在分析,因为一般而言其中没有事先设定要检查的规则。这类工具(像是Imagix 4D英语Imagix 4D、Resharper、SonarJ、Sotoarc英语Sotoarc、Structure101、ACTool[6])可以让分析者定义目标架构,确保实际软件的实现不会违反目标架构的限制条件。

相关条目

编辑

参考资料

编辑
  1. ^ McIntosh, Shane, et al. "The impact of code review coverage and code review participation on software quality: A case study of the qt, vtk, and itk projects." Proceedings of the 11th Working Conference on Mining Software Repositories. 2014. doi:10.1145/2597073.2597076
  2. ^ 2.0 2.1 Gomes, Ivo; Morgado, Pedro; Gomes, Tiago; Moreira, Rodrigo. An overview of the Static Code Analysis approach in Software Development (PDF). Universidade do Porto. 2009 [2010-10-03]. (原始内容存档 (PDF)于2011-09-27). 
  3. ^ Tricorder: Building a Program Analysis Ecosystem. [2020-07-10]. (原始内容存档于2021-02-28). 
  4. ^ Collaborative Code Review Tool Development. www.eclipse.org. [2010-10-13]. (原始内容存档于2010-04-01). 
  5. ^ Code Review Plug-in for Visual Studio 2008, ReviewPal. www.codeproject.com. [2010-10-13]. (原始内容存档于2011-11-07). 
  6. ^ Architecture Consistency plugin for Eclipse. [2020-07-10]. (原始内容存档于2020-07-14).