OPS05-BP02 測試並驗證變更
所部署的每項變更都必須經過測試,以避免在生產環境中發生錯誤。此一最佳實務著重於各種變更 (從版本控制到成品組建) 的測試。除了應用程式的程式碼變更以外,測試也應包含基礎設施、組態、安全控制和操作程序。測試採取多種形式,從單元測試到軟體元件分析 (SCA) 都包括在內。將測試進一步納入軟體整合和交付程序中,可進一步確保成品的品質。
您的組織必須制定所有軟體成品的測試標準。自動化測試可節省人力並避免手動測試錯誤。在某些情況下可能需進行手動測試。開發人員必須有權存取自動化測試結果,以建立可改善軟體品質的回饋迴圈。
期望的結果:您的軟體變更在交付前都經過測試。開發人員有權存取測試結果和驗證。您的組織具有適用於所有軟體變更的測試標準。
常見的反模式:
-
您在部署新軟體變更實未進行任何測試。軟體在生產環境中無法執行,因而導致中斷。
-
新的安全群組使用 AWS CloudFormation 進行部署,而未在生產前環境中測試。安全群組使您的客戶無法連線到應用程式。
-
方法已經過修改,但沒有單元測試。軟體部署至生產環境時失敗。
建立此最佳實務的優勢:降低軟體部署變更失敗率。軟體品質獲得改善。開發人員對於程式碼的可行性感知能力提高。可以安心推出安全政策,以支援組織的合規性。基礎設施變更 (例如自動化擴展政策更新) 會事先經過測試,以符合流量需求。
未建立此最佳實務時的風險暴露等級:高
實作指引
在持續整合的實務過程中,會對所有變更執行測試,從應用程式碼到基礎設施都包含在內。會發佈測試結果,讓開發人員迅速獲得反饋。您的組織具有所有變更都必須通過的測試標準。
搭配 Amazon Q Developer 使用生成式 AI 的力量來提高開發人員的生產力和程式碼品質。Amazon Q Developer 包含產生程式碼建議 (以大型語言模型為基礎)、生產單元測試 (包含邊界條件),以及透過偵測和修復安全漏洞增強程式碼安全性功能。
客戶範例
在其持續整合管道中,AnyCompany Retail 對所有軟體成品執行了數種類型的測試。他們實行了測試驅動的開發,因此所有軟體都有測試單元。在成品建置後,他們執行了端對端測試。這個第一輪測試完成後,他們執行了靜態應用程式安全掃描,以尋找已知漏洞。開發人員在每個測試門檻通過後均收到訊息。所有測試都完成後,軟體成品即儲存在成品儲存庫中。
實作步驟
-
與組織中的利害關係人合作制定軟體成品的測試標準。所有成品均應通過的標準測試為何? 是否有必須納入測試涵蓋範圍內的合規或管控要求? 您是否需要執行程式碼品質測試? 測試完成時,誰需要得知?
-
AWS 開發管道參考架構
包含可在整合管道中對軟體成品執行之測試類型的授權清單。
-
-
根據您的軟體測試標準,以必要的測試檢測您的應用程式。每一組測試均應在十分鐘內完成。測試應執行為整合管道的一部分。
-
使用 Amazon Q Developer 這款生成式 AI 工具,有助於建立單元測試案例 (包括邊界條件)、使用程式碼和註解產生函數,以及實作已知的演算法。
-
使用 Amazon CodeGuru Reviewer 測試您的應用程式碼是否有缺陷。
-
您可以使用 AWS CodeBuild 對軟體成品執行測試。
-
AWS CodePipeline 可將您的軟體測試安排到管道中。
-
資源
相關的最佳實務:
相關文件:
相關影片:
相關資源:
相關服務: