本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
CI/CD 管道的測試
部署管道中常用的兩種自動化測試類型是單元測試和整合測試。不過,您可以在程式碼基礎和開發環境上執行許多類型的測試。AWS 部署管道參考架構
-
單元測試 – 這些測試會建置並執行應用程式程式碼,以確認其是否根據預期執行。它們模擬程式碼基礎中使用的所有外部相依性。單位測試工具的範例包括 JUnit
、Jest 和 pytest 。 -
整合測試 – 這些測試會驗證應用程式是否滿足技術需求,方法是針對佈建的測試環境進行測試。整合測試工具的範例包括 Cucumber
、vRest NG 和 integ-tests (適用於 AWS CDK)。 -
接受測試 – 這些測試會針對佈建的測試環境進行測試,驗證應用程式是否符合使用者要求。接受測試工具的範例包括 Cypress
和 Selenium 。 -
合成測試 – 這些測試會在背景中持續執行,以產生流量並驗證系統是否正常運作。合成測試工具的範例包括 Amazon CloudWatch Synthetics 和 Dynatrace Synthetic Monitoring
。 -
效能測試 – 這些測試模擬生產容量。他們會判斷應用程式是否符合效能需求,並將指標與過去的效能進行比較。效能測試工具的範例包括 Apache JMeter
、Locust 和 Gatling 。 -
彈性測試 – 這些測試也稱為混亂測試,會將失敗注入環境,以識別風險區域。接著會將注入失敗的期間與沒有失敗的期間進行比較。彈性測試工具的範例包括 AWS Fault Injection Service
和 Gremlin 。 -
靜態應用程式安全測試 (SAST) – 這些測試會分析安全性違規的程式碼,例如 SQL 注入
或跨網站指令碼 (XSS) 。SAST 工具的範例包括 Amazon CodeGuru 、SonarQube 和 Checkmarx 。 -
動態應用程式安全測試 (DAST) – 這些測試也稱為滲透測試或筆測試。它們可識別佈建測試環境中的漏洞,例如 SQL 注入或 XSS。DAST 工具的範例包括 Zed Attack Proxy (ZAP)
和 HCL AppScan 。如需詳細資訊,請參閱滲透測試 。
並非所有完整 CI/CD 管道都會執行所有這些測試。不過,管道至少應該在程式碼基礎上執行單位測試和 SAST 測試,以及在測試環境中進行整合和接受測試。