자동 테스트는 CI/CD의 심장입니다 — 코드 변경이 통합하고 deploy하기에 안전하다는 신뢰를 제공하는 것이 바로 이것입니다. 좋은 자동 테스트가 없으면 CI/CD는 단지 버그를 더 빨리 출시하는 것을 자동화할 뿐입니다. 테스트의 품질이 CI/CD pipeline의 가치를 크게 좌우합니다.
테스트가 CI/CD를 안전하게 만든다
CI/CD는 deploy를 자동화함 — 하지만 자동화는 변경이 검증될 때만 안전함:
→ 자동 TEST가 각 변경이 동작하는지(그리고 아무것도 망가뜨리지 않았는지) 검증
→ 테스트는 품질 GATE: 통과 → 진행 안전; 실패 → 멈춤
→ 좋은 테스트가 없으면, CI/CD는 단지 버그를 production에 더 빨리 deploy함
(자동화는 가진 것을 증폭함 — 좋든 나쁘든)
→ 자주/자동으로 deploy할 신뢰는 테스트 스위트에서 나옴.
pipeline 내 테스트 유형
단위 테스트 → 개별 함수/컴포넌트 테스트 (빠름, 모든 변경마다 실행) — 대부분
통합 테스트 → 함께 동작하는 컴포넌트 테스트 (DB, API)
END-TO-END(E2E) 테스트 → 전체 사용자 흐름 테스트 (느림; 주로 staging에서)
기타 → linting, 정적 분석, 보안 스캔, 성능 테스트
→ 테스트 피라미드: 많은 빠른 단위 테스트, 더 적은 통합, 가장 적은 E2E.
