OPS05-BP02 測試並驗證變更 - 卓越營運支柱

OPS05-BP02 測試並驗證變更

所部署的每項變更都必須經過測試,以避免在生產環境中發生錯誤。此一最佳實務著重於各種變更 (從版本控制到成品組建) 的測試。除了應用程式的程式碼變更以外,測試也應包含基礎設施、組態、安全控制和操作程序。測試採取多種形式,從單元測試到軟體元件分析 (SCA) 都包括在內。將測試進一步納入軟體整合和交付程序中,可進一步確保成品的品質。

您的組織必須制定所有軟體成品的測試標準。自動化測試可節省人力並避免手動測試錯誤。在某些情況下可能需進行手動測試。開發人員必須有權存取自動化測試結果,以建立可改善軟體品質的回饋迴圈。

期望的結果:您的軟體變更在交付前都經過測試。開發人員有權存取測試結果和驗證。您的組織具有適用於所有軟體變更的測試標準。

常見的反模式:

  • 您在部署新軟體變更實未進行任何測試。軟體在生產環境中無法執行,因而導致中斷。

  • 新的安全群組使用 AWS CloudFormation 進行部署,而未在生產前環境中測試。安全群組使您的客戶無法連線到應用程式。

  • 方法已經過修改,但沒有單元測試。軟體部署至生產環境時失敗。

建立此最佳實務的優勢:降低軟體部署變更失敗率。軟體品質獲得改善。開發人員對於程式碼的可行性感知能力提高。可以安心推出安全政策,以支援組織的合規性。基礎設施變更 (例如自動化擴展政策更新) 會事先經過測試,以符合流量需求。

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

實作指引

在持續整合的實務過程中,會對所有變更執行測試,從應用程式碼到基礎設施都包含在內。會發佈測試結果,讓開發人員迅速獲得反饋。您的組織具有所有變更都必須通過的測試標準。

搭配 Amazon Q Developer 使用生成式 AI 的力量來提高開發人員的生產力和程式碼品質。Amazon Q Developer 包含產生程式碼建議 (以大型語言模型為基礎)、生產單元測試 (包含邊界條件),以及透過偵測和修復安全漏洞增強程式碼安全性功能。

客戶範例

在其持續整合管道中,AnyCompany Retail 對所有軟體成品執行了數種類型的測試。他們實行了測試驅動的開發,因此所有軟體都有測試單元。在成品建置後,他們執行了端對端測試。這個第一輪測試完成後,他們執行了靜態應用程式安全掃描,以尋找已知漏洞。開發人員在每個測試門檻通過後均收到訊息。所有測試都完成後,軟體成品即儲存在成品儲存庫中。

實作步驟

  1. 與組織中的利害關係人合作制定軟體成品的測試標準。所有成品均應通過的標準測試為何? 是否有必須納入測試涵蓋範圍內的合規或管控要求? 您是否需要執行程式碼品質測試? 測試完成時,誰需要得知?

    1. AWS 開發管道參考架構包含可在整合管道中對軟體成品執行之測試類型的授權清單。

  2. 根據您的軟體測試標準,以必要的測試檢測您的應用程式。每一組測試均應在十分鐘內完成。測試應執行為整合管道的一部分。

    1. 使用 Amazon Q Developer 這款生成式 AI 工具,有助於建立單元測試案例 (包括邊界條件)、使用程式碼和註解產生函數,以及實作已知的演算法。

    2. 使用 Amazon CodeGuru Reviewer 測試您的應用程式碼是否有缺陷。

    3. 您可以使用 AWS CodeBuild 對軟體成品執行測試。

    4. AWS CodePipeline 可將您的軟體測試安排到管道中。

資源

相關的最佳實務:

相關文件:

相關影片:

相關資源:

相關服務: