토픽 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, 테스트 자동화