自動程式碼審查

自動程式碼審查(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).