CI/CD 管道的測試 - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

CI/CD 管道的測試

部署管道中常用的兩種自動化測試類型是單元測試整合測試。不過,您可以在程式碼基礎和開發環境上執行許多類型的測試。AWS 部署管道參考架構定義了下列類型的測試:

  • 單元測試 – 這些測試會建置並執行應用程式程式碼,以確認其是否根據預期執行。它們模擬程式碼基礎中使用的所有外部相依性。單位測試工具的範例包括 JUnitJestpytest

  • 整合測試 – 這些測試會驗證應用程式是否滿足技術需求,方法是針對佈建的測試環境進行測試。整合測試工具的範例包括 CucumbervRest NGinteg-tests (適用於 AWS CDK)。

  • 接受測試 – 這些測試會針對佈建的測試環境進行測試,驗證應用程式是否符合使用者要求。接受測試工具的範例包括 CypressSelenium

  • 合成測試 – 這些測試會在背景中持續執行,以產生流量並驗證系統是否正常運作。合成測試工具的範例包括 Amazon CloudWatch SyntheticsDynatrace Synthetic Monitoring

  • 效能測試 – 這些測試模擬生產容量。他們會判斷應用程式是否符合效能需求,並將指標與過去的效能進行比較。效能測試工具的範例包括 Apache JMeterLocustGatling

  • 彈性測試 – 這些測試也稱為混亂測試,會將失敗注入環境,以識別風險區域。接著會將注入失敗的期間與沒有失敗的期間進行比較。彈性測試工具的範例包括 AWS Fault Injection ServiceGremlin

  • 靜態應用程式安全測試 (SAST) – 這些測試會分析安全性違規的程式碼,例如 SQL 注入跨網站指令碼 (XSS)。SAST 工具的範例包括 Amazon CodeGuruSonarQubeCheckmarx

  • 動態應用程式安全測試 (DAST) – 這些測試也稱為滲透測試筆測試。它們可識別佈建測試環境中的漏洞,例如 SQL 注入或 XSS。DAST 工具的範例包括 Zed Attack Proxy (ZAP)HCL AppScan。如需詳細資訊,請參閱滲透測試

並非所有完整 CI/CD 管道都會執行所有這些測試。不過,管道至少應該在程式碼基礎上執行單位測試和 SAST 測試,以及在測試環境中進行整合和接受測試。