自動程式碼審查

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