

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 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 인젝션](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 인젝션 또는 XSS와 같은 취약성을 식별합니다. DAST 도구의 예로, [ZAP(Zed Attack Proxy)](https://www.zaproxy.org/) 및 [HCL AppScan](https://www.hcltechsw.com/appscan)이 있습니다. 자세한 내용은 [Penetration Testing](https://aws.amazon.com/security/penetration-testing/)을 참조하세요.

모든 완전한 CI/CD 파이프라인이 이러한 테스트를 모두 실행하는 것은 아닙니다. 그러나 최소한 파이프라인은 코드베이스에서 유닛 테스트 및 SAST 테스트를 실행하고 테스트 환경에서 통합 및 승인 테스트를 실행해야 합니다.