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