테스트 자동화 — 테스트를 수동이 아니라 자동으로(CI/CD에서) 실행하는 것 — 은 빠르고 신뢰할 수 있고 잦은 대규모 테스팅에 필수적입니다. 그것을 효과적으로 구축하는 것은 무엇을 자동화할지 선택하고, 유지보수 가능한 자동화를 구조화하며, 개발 프로세스에 통합하는 일을 포함합니다.
무엇을 자동화할 것인가 (그리고 무엇을 안 할 것인가)
자동화:
✓ 회귀 테스트 (깨짐을 잡기 위해 끊임없이 실행) — 가장 큰 이득
✓ 반복적, 안정적, 자주 실행되는 테스트; unit/integration 테스트; 중요 흐름
반드시 자동화하지 않아도 됨:
✗ 탐색 테스트, 사용성, 일회성 확인, 매우 불안정/변하는 기능
→ 수동 테스트도 자리가 있음 (탐색, UX, 엣지 판단)
→ 반복적이고 자주 실행할 가치가 있는 것을 자동화; 모든 것은 아님.
유지보수 가능한 자동화 구축
✓ 테스트 피라미드 따르기 (대부분 빠른 unit 테스트; 소수 E2E) → 빠르고 안정적인 자동화
✓ 테스트를 독립적, 결정적, 빠르게 유지 (불안정성 회피 — 자동화 가치를 죽임)
✓ 좋은 추상화 사용 (예: UI 테스트의 Page Object Model) → 유지보수 가능, DRY
✓ 테스트 데이터와 환경 관리 (깨끗하고, 일관되고, 재현 가능)
✓ 테스트 코드를 진짜 코드로 취급 (리뷰, 리팩터링, 깨끗하게 유지)
