軟體測試 - 程式碼審查



為了使軟體更加健壯,需要對開發的程式碼進行審查。無論開發人員經驗多麼豐富,每一段程式碼都必須重新檢查,才能生產出世界一流的軟體。

什麼是程式碼審查?

程式碼審查是一個系統的方法,一群開發人員一起分析和檢查另一位開發人員的程式碼,以發現錯誤,提出建議,並確認開發的程式碼是否符合標準。程式碼審查的目的是提高軟體的質量、可維護性、穩定性、安全性等,從而為專案帶來積極的結果。此外,程式碼審查的結果還有助於團隊成員之間分享知識和經驗。

為什麼要進行程式碼審查?

進行程式碼審查的原因如下:

  • 它有助於在將程式碼部署到生產環境之前發現程式碼中的錯誤、缺陷、問題等。因此,程式碼審查有助於在軟體開發生命週期 (SDLC) 的初始階段修復錯誤。
  • 它鼓勵開發乾淨、可維護和有效的程式碼。審查人員會提供反饋和評論,以便程式碼符合標準和最佳實踐。
  • 它在所有開發人員之間實現編碼一致性,從而使程式碼庫易於維護和理解。
  • 程式碼審查的結果可以在團隊之間共享,從而傳播領域知識和編碼指南。
  • 程式碼審查人員對他們審查的程式碼承擔部分所有權,從而提高了對質量保證的集體責任感。
  • 程式碼審查人員可以一起工作和協作以改進整個審查過程,這有助於提高整體軟體質量。
  • 它可以作為文件的一部分。
  • 它是確保軟體質量的一個組成部分。透過進行程式碼審查,團隊可以確認軟體是否滿足所有功能性和非功能性需求。
  • 它有助於團隊持續改進。透過遵循程式碼審查中的建議、反饋和結果,團隊可以改進它們,然後逐步改進。

程式碼審查的型別

程式碼審查的型別如下:

拉取請求 (PR)

在 Git 中,開發人員會發起 PR 以合併對程式碼的更改。在將更改與基程式碼合併之前,應該對其進行審查。

結對程式設計

這是一種審查型別,其中兩位開發人員在同一臺計算機上工作。其中一人編寫程式碼,另一人即時審查程式碼。這是一種高度互動式的程式碼審查形式。

肩並肩審查

在這種型別的審查中,請求團隊中的一位開發人員透過坐在一起並在計算機上瀏覽程式碼來審查另一位開發人員的程式碼。

工具輔助審查

這是由 Github、GitLab、BitBucket、Crucible 等工具進行的審查型別。

基於電子郵件的審查

這是一種審查型別,其中程式碼更改透過電子郵件傳送以進行審查。程式碼審查的反饋也透過電子郵件傳遞。

清單審查

在這種型別的審查中,審查人員會遵循審查流程的清單專案列表。

臨時審查

這是一種非正式的審查方式。可以請求開發人員快速檢視程式碼並提供非正式反饋。

正式檢查

這是一種審查型別,其中遵循現有的流程。它主要由檢查團隊進行,並由適當的文件指導。

程式碼審查是如何進行的?

程式碼審查透過遵循以下流程進行:

步驟 1 - 開發人員完成程式碼並建立審查請求或通知團隊。

步驟 2 - 根據經驗和技能選擇一位或多位程式碼審查人員來正確審查程式碼。

步驟 3 - 程式碼審查人員擁有必要的工具或 IDE,使他們能夠獲取程式碼、審查程式碼並提供反饋。

步驟 4 - 審查人員可能在審查程式碼時遵循清單或指南以保持一致性。

步驟 5 − 評審人員進行程式碼檢查,涵蓋邏輯、語法、效能、安全等問題,確保程式碼的穩定性、可擴充套件性和良好的效能。

步驟 6 − 評審人員的評論、反饋和建議記錄在評審工具中。這些內容應清晰、建設性且切中要害,以便作者輕鬆理解。

步驟 7 − 評審人員和作者就預期的程式碼更改進行詳細討論。

步驟 8 − 作者整合更改,並可能與評審人員進行多次討論,直到解決程式碼中的所有問題。

步驟 9 − 一旦評審人員對程式碼更改滿意,則批准程式碼合併。

步驟 10 − 使用 Git 等版本控制工具合併程式碼。

步驟 11 − 程式碼合併到生產環境後,檢查新的程式碼更改是否正常工作,以及它們是否影響了現有程式碼的任何部分。

步驟 12 − 將整個程式碼審查過程記錄在案,以供將來參考。所有相關的評論、反饋和建議也包含在文件中。

程式碼審查的優點

程式碼審查的優點如下:

  • 它透過在 SDLC 的早期階段檢測錯誤來提高軟體質量。
  • 它鼓勵團隊成員之間共享知識和學習。
  • 它強制執行程式碼中應遵循的標準、指南和最佳實踐,使其保持一致且易於維護。
  • 它識別軟體中的所有安全漏洞。
  • 它營造了團隊成員之間協作、透明和清晰溝通的環境。
  • 它形成了集體責任和對軟體質量的共同所有權的文化,因為評審人員也對開發軟體的質量負有部分責任。
  • 它有助於建立用於將來參考的文件。
  • 它有助於確定軟體中程式碼可重用性的更多範圍。

程式碼審查的缺點

程式碼審查的缺點如下:

  • 對於大型和複雜的軟體,它可能會非常耗時,從而導致開發過程延遲。
  • 它具有主觀性,因為不同的評審人員可能對程式碼有不同的意見、評論和反饋。
  • 對小型程式碼更改進行過多的程式碼審查可能會導致軟體開發延遲。
  • 評審人員可能有偏見,這會影響評審過程。
  • 評審人員和作者應就所有條款達成一致,並在他們之間進行清晰的溝通。
  • 它取決於評審人員的技能。經驗不足的評審人員可能會錯過程式碼中重要的建議。
  • 對於大型和複雜的軟體,評審人員可能會感到疲勞。

程式碼審查的最佳實踐

程式碼審查的最佳實踐如下:

  • 確定程式碼審查的明確目標和目的。
  • 為程式碼選擇合適的評審人員。
  • 將大量的程式碼分解成更小的單元,然後開始審查過程。
  • 在審查請求中提供所有相關資訊。
  • 在整個過程中使用程式碼審查工具。
  • 應關注程式碼質量、穩定性、可擴充套件性、效能等。
  • 審查程式碼中的所有安全功能。
  • 透過實際執行來測試審查後的程式碼。
  • 應分享建設性、具體和相關的反饋。
  • 與評審人員和作者保持積極、協作和健康的關係。
  • 應及時進行審查,避免延遲軟體開發。
  • 記錄程式碼審查過程的每個部分。
  • 在團隊成員之間共享程式碼審查中的經驗教訓。

結論

本教程總結了軟體程式碼審查的全面內容。我們首先介紹了什麼是程式碼審查,為什麼要進行程式碼審查,程式碼審查的型別,如何進行程式碼審查,程式碼審查的優缺點以及程式碼審查的最佳實踐。這使您對軟體程式碼審查有了深入的瞭解。明智的做法是繼續練習您所學到的知識,並探索與軟體測試相關的其他知識,以加深您的理解並拓寬您的視野。

廣告