View a markdown version of this page

CI/CD 파이프라인 테스트 - AWS 권장 가이드

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

CI/CD 파이프라인 테스트

배포 파이프라인에서 일반적으로 참조되는 두 가지 유형의 자동 테스트는 유닛 테스트통합 테스트입니다. 그러나 코드베이스와 개발 환경에서 실행할 수 있는 다양한 유형의 테스트가 있습니다. AWS 배포 파이프라인 참조 아키텍처에서는 다음과 같은 유형의 테스트를 정의합니다.

  • 유닛 테스트 - 이러한 테스트는 애플리케이션 코드를 빌드하고 실행하여 예상대로 실행되고 있는지 확인합니다. 코드베이스에 사용되는 모든 외부 종속성을 시뮬레이션합니다. 유닛 테스트 도구의 예로, JUnit, Jest, pytest가 있습니다.

  • 통합 테스트 - 이러한 테스트는 프로비저닝된 테스트 환경을 테스트하여 애플리케이션이 기술 요구 사항을 충족하는지 확인합니다. 통합 테스트 도구의 예로, Cucumber, vRest NG, integ-tests( AWS CDK용)가 있습니다.

  • 승인 테스트 - 이러한 테스트는 프로비저닝된 테스트 환경을 테스트하여 애플리케이션이 사용자 요구 사항을 충족하는지 확인합니다. 승인 테스트 도구의 예로, CypressSelenium이 있습니다.

  • 가상 테스트 - 이러한 테스트는 백그라운드에서 지속적으로 실행되어 트래픽을 생성하고 시스템이 정상인지 확인합니다. 가상 테스트 도구의 예로, Amazon CloudWatch SyntheticsDynatrace Synthetic Monitoring이 있습니다.

  • 성능 테스트 - 이러한 테스트는 프로덕션 용량을 시뮬레이션합니다. 애플리케이션이 성능 요구 사항을 충족하는지 확인하고 지표를 과거 성능과 비교합니다. 성능 테스트 도구의 예로, Apache JMeter, Locust, Gatling이 있습니다.

  • 복원력 테스트 - 카오스 테스트라고도 하는 이러한 테스트는 위험 영역을 식별하기 위해 환경에 장애를 주입합니다. 그리고 장애가 주입되는 기간을 장애가 없는 기간과 비교합니다. 복원력 테스트 도구의 예로, AWS Fault Injection ServiceGremlin이 있습니다.

  • 정적 애플리케이션 보안 테스트(SAST) - 이러한 테스트는 SQL 인젝션 또는 크로스 사이트 스크립팅(XSS)과 같은 보안 위반에 대한 코드를 분석합니다. SAST 도구의 예로, Amazon CodeGuru, SonarQube, Checkmarx가 있습니다.

  • 동적 애플리케이션 보안 테스트(DAST) - 이러한 테스트를 침투 테스트 또는 펜 테스트라고도 합니다. 프로비저닝된 테스트 환경에서 SQL 인젝션 또는 XSS와 같은 취약성을 식별합니다. DAST 도구의 예로, ZAP(Zed Attack Proxy)HCL AppScan이 있습니다. 자세한 내용은 Penetration Testing을 참조하세요.

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