Learning
토픽 120 / 192·소프트웨어 표준과 법제도

E2E 테스트 (End-to-End Testing)

E2E 테스트 (End-to-End Testing)

애플리케이션의 전체 흐름을 사용자 관점에서 검증하는 테스트로, UI부터 백엔드, 데이터베이스까지 시스템 전체를 통합하여 실제 사용 시나리오를 테스트

목적: 전체 시스템 검증, 사용자 시나리오 확인, 통합 문제 발견, 릴리스 신뢰도

특징: 전체 스택 테스트, 실제 환경 유사, 느린 실행, 취약성(Flaky), 유지보수 비용 높음

테스트 범위

  • 사용자 로그인 → 상품 검색 → 장바구니 → 결제 → 주문 확인
  • API 호출 → 데이터베이스 저장 → 외부 서비스 연동
  • 크로스 브라우저, 모바일 디바이스

E2E 테스트 도구

  • Cypress: JavaScript, 빠른 실행, 자동 대기, 디버깅 용이
  • Playwright: Microsoft, 크로스 브라우저, 다중 언어, 병렬 실행
  • Selenium: 역사 깊음, 다양한 언어, WebDriver 표준
  • Puppeteer: Chrome/Chromium 전용, 헤드리스

E2E 테스트 전략

  • Critical Path 우선: 핵심 사용자 흐름만 테스트
  • 최소 개수 유지: 테스트 피라미드 상단, 5-10%
  • Flaky 테스트 관리: 재시도 로직, 안정화
  • 병렬 실행: 시간 단축

Flaky Test (불안정 테스트) 원인

  • 타이밍 이슈 (비동기 대기 부족)
  • 테스트 간 의존성
  • 환경 불일치
  • 네트워크 지연

장점: 실제 사용자 경험 검증, 통합 문제 발견, 높은 신뢰도

단점: 느림, Flaky, 유지보수 비용, 결함 위치 불명확

적용사례: 회귀 테스트, 릴리스 전 검증, 핵심 기능 검증

기술요소: Cypress, Playwright, Selenium, Page Object Model, Test Data

비교: E2E(전체 시스템) vs Integration(모듈 간) vs Unit(개별 함수)

연관: 테스트 피라미드, UI 테스트, 회귀 테스트, CI/CD, 테스트 자동화