

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

# CI/CD 管道的測試
<a name="tests-for-cicd-pipelines"></a>

部署管道中常用的兩種自動化測試類型是*單元測試*和*整合測試*。不過，您可以在程式碼基礎和開發環境中執行許多類型的測試。[AWS 部署管道參考架構](https://pipelines.devops.aws.dev/application-pipeline/)定義了下列類型的測試：
+ **單元測試** – 這些測試會建置並執行應用程式程式碼，以確認其效能符合預期。它們模擬程式碼基底中使用的所有外部相依性。單元測試工具的範例包括 [JUnit](https://junit.org/)、[Jest](https://jestjs.io/) 和 [pytest](https://docs.pytest.org/en/stable/)。
+ **整合測試** – 這些測試會針對佈建的測試環境進行測試，驗證應用程式是否符合技術需求。整合測試工具的範例包括 [Cucumber](https://cucumber.io/)、[vRest NG](https://vrest.io/) 和 [integ-tests](https://docs.aws.amazon.com/cdk/api/v2/docs/integ-tests-alpha-readme.html) （適用於 AWS CDK)。
+ **接受測試** – 這些測試會針對佈建的測試環境進行測試，驗證應用程式是否符合使用者需求。接受測試工具的範例包括 [Cypress](https://cypress.io/) 和 [Selenium](https://selenium.dev/)。
+ **合成測試** – 這些測試會在背景中持續執行，以產生流量並驗證系統是否正常運作。合成測試工具的範例包括 [Amazon CloudWatch Synthetics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html) 和 [Dynatrace Synthetic Monitoring](https://www.dynatrace.com/monitoring/platform/synthetic-monitoring/)。
+ **效能測試** – 這些測試會模擬生產容量。他們會判斷應用程式是否符合效能需求，並將指標與過去的效能進行比較。效能測試工具的範例包括 [Apache JMeter](https://jmeter.apache.org/)、[Locust](https://locust.io/) 和 [Gatling](https://gatling.io/)。
+ **彈性測試** – 這些測試也稱為*混沌測試*，會將失敗注入環境，以識別風險區域。接著會將注入失敗的期間與沒有失敗的期間進行比較。彈性測試工具的範例包括 [AWS Fault Injection Service](https://aws.amazon.com/fis/)和 [Gremlin](https://www.gremlin.com/)。
+ **靜態應用程式安全測試 (SAST)** – 這些測試會分析安全性違規的程式碼，例如 [SQL Injection](https://owasp.org/www-community/attacks/SQL_Injection) 或[跨網站指令碼 (XSS)](https://owasp.org/www-community/attacks/xss/)。SAST 工具的範例包括 [Amazon CodeGuru](https://aws.amazon.com/codeguru/)、[SonarQube](https://www.sonarqube.org/) 和 [Checkmarx](https://checkmarx.com/)。
+ **動態應用程式安全測試 (DAST)** – 這些測試也稱為*滲透測試*或*筆測試*。它們可識別佈建測試環境中的漏洞，例如 SQL Injection 或 XSS。DAST 工具的範例包括 [Zed Attack Proxy (ZAP)](https://www.zaproxy.org/) 和 [HCL AppScan](https://www.hcltechsw.com/appscan)。如需詳細資訊，請參閱[滲透測試](https://aws.amazon.com/security/penetration-testing/)。

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