

# SEC11-BP04 手動程式碼檢閱
<a name="sec_appsec_manual_code_reviews"></a>

對您製作的軟體進行手動程式碼檢閱。此程序有助於確認編寫程式碼的人員並非檢查程式碼品質的唯一人員。

**預期成果：** 在開發期間納入手動程式碼檢閱步驟可提高所編寫軟體的品質，因此有助於提升技能較差團隊成員的程度，而且有機會找出適合實施自動化的位置。手動程式碼檢閱可獲自動化工具和測試支援。

**常見的反模式：**
+  未在部署前先執行程式碼檢閱。 
+  編寫程式碼和檢閱程式碼是相同人員。 
+  未使用自動化來協助或協調程式碼檢閱。 
+  建置人員在開始檢閱程式碼之前未先經過應用程式安全的訓練。 

**建立此最佳實務的優勢：**
+  程式碼品質更高。 
+  經由重複使用常用方法而使程式碼開發更具一致性。 
+  減少在滲透測試與後期階段找出問題的數量。 
+  團隊內部的知識轉移效能更高。 

 **未建立此最佳實務時的風險暴露等級：**中 

## 實作指引
<a name="implementation-guidance"></a>

 檢閱步驟應該是在整體程式碼管理流程中的實作部分。具體步驟依據分支、提取請求與合併所使用的不同方法而定。您可能使用 AWS CodeCommit 或第三方解決方案，例如，GitHub、GitLab 或 Bitbucket。無論使用哪種方法，您都一定要確認這些程序必須經過檢閱程式碼，才能部署至生產環境。使用 [Amazon CodeGuru Reviewer](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html) 等工具可以讓協調程式碼檢閱過程變得更簡單。 

### 實作步驟
<a name="implementation-steps-required-field"></a>
+  在程式碼管理流程中實作手動檢閱步驟，並先執行這項檢閱之後，再繼續執行。 
+  考慮 [Amazon CodeGuru Reviewer](https://aws.amazon.com/codeguru/) 用於程式碼檢閱的管理與協助。 
+  實作的核准流程必須先完成程式碼檢閱，程式碼才能進入下一個階段。 
+  確認已經安排程序，可以識別將在手動程式碼檢閱期間找到，並可自動偵測出的問題。 
+  採用符合您的程式碼開發實務之方法，整合手動程式碼檢閱步驟。 

## 資源
<a name="resources-required-field"></a>

 **相關的最佳實務：**
+  [SEC11-BP02 自動化在整個開發和發佈生命週期的測試](sec_appsec_automate_testing_throughout_lifecycle.md) 

 **相關文件：**
+  [使用 AWS CodeCommit 儲存庫中的提取請求](https://docs.aws.amazon.com/codecommit/latest/userguide/pull-requests.html) 
+  [使用 AWS CodeCommit 中的核准規則範本](https://docs.aws.amazon.com/codecommit/latest/userguide/approval-rule-templates.html) 
+  [關於使用 GitHub 中的提取請求](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests) 
+  [使用 Amazon CodeGuru Reviewer 自動進行程式碼檢閱](https://aws.amazon.com/blogs/devops/automate-code-reviews-with-amazon-codeguru-reviewer/) 
+  [使用 Amazon CodeGuru Reviewer CLI，自動化偵測 CI/CD 管道中的安全性漏洞與錯誤](https://aws.amazon.com/blogs/devops/automating-detection-of-security-vulnerabilities-and-bugs-in-ci-cd-pipelines-using-amazon-codeguru-reviewer-cli/) 

 **相關影片：**
+  [使用 Amazon CodeGuru 持續改善程式碼品質](https://www.youtube.com/watch?v=iX1i35H1OVw) 

 **相關範例：** 
+  [開發人員安全研討會](https://catalog.workshops.aws/sec4devs) 