PHpullh
학습 라이브러리/Java/E2E 테스트 전략

JAVA · 테스트

E2E 테스트 전략

전체 시스템을 관통하는 E2E 테스트의 전략과 모범 사례입니다.

테스트중급E2E테스트피라미드전략모범사례

핵심 설명

전체 시스템을 관통하는 E2E 테스트의 전략과 모범 사례입니다.

Java code

// E2E 테스트 전략

// 테스트 피라미드:
// [E2E 테스트]      ← 적게 (5-10%)
// [통합 테스트]     ← 중간 (20-30%)
// [단위 테스트]     ← 많이 (60-70%)

// E2E 테스트 작성 원칙
class E2ETestStrategy {
    // 1. 핵심 시나리오만 E2E로 테스트
    // @Test void 주문_전체_흐름() {
    //     // 사용자 로그인
    //     // -> 상품 검색
    //     // -> 장바구니 추가
    //     // -> 결제
    //     // -> 주문 확인
    // }

    // 2. 테스트 데이터 격리
    // @BeforeEach void setup() {
    //     testData = TestDataFactory.createIsolatedData();
    // }
    // @AfterEach void cleanup() {
    //     testData.cleanup();
    // }

    // 3. 재시도 전략 (불안정한 외부 의존)
    // @RetryingTest(3)
    // void flakyExternalService() { ... }

    // 4. 환경 설정
    // @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
    // @Testcontainers

    public static void main(String[] args) {
        System.out.println("E2E 모범 사례:");
        System.out.println("1. 핵심 비즈니스 흐름만 테스트");
        System.out.println("2. 테스트 데이터 격리 필수");
        System.out.println("3. 비결정적 테스트(flaky) 즉시 수정");
        System.out.println("4. 실행 시간 5분 이내 유지");
        System.out.println("5. 실패 시 스크린샷/로그 자동 수집");
    }
}

학습 팁

E2E 테스트는 가장 비용이 높으므로 핵심 비즈니스 흐름(happy path)에 집중하세요. 엣지 케이스는 단위/통합 테스트로 커버합니다.

주의할 점

E2E 테스트가 다른 테스트의 데이터에 의존하면 순서에 따라 결과가 달라집니다. 각 테스트는 독립적으로 데이터를 생성/정리해야 합니다.

자주 묻는 질문

E2E 테스트 전략란 무엇인가요?

전체 시스템을 관통하는 E2E 테스트의 전략과 모범 사례입니다.

E2E 테스트 전략 학습 시 주의할 점은 무엇인가요?

E2E 테스트가 다른 테스트의 데이터에 의존하면 순서에 따라 결과가 달라집니다. 각 테스트는 독립적으로 데이터를 생성/정리해야 합니다.