토픽 119 / 192·소프트웨어 표준과 법제도
테스트 피라미드 (Test Pyramid)
테스트 피라미드 (Test Pyramid)
소프트웨어 테스트 전략에서 테스트 유형별 비율을 피라미드 형태로 표현한 모델로, 하단(Unit)은 많이, 중단(Integration)은 적당히, 상단(E2E)은 적게 작성하여 비용 대비 효과를 최적화
목적: 테스트 전략 수립, 비용 효율화, 빠른 피드백, 안정적인 테스트 스위트
특징: 계층적 구조, 하위일수록 빠르고 저렴, 상위일수록 느리고 비용, 피라미드 형태
테스트 계층
- •Unit Test (단위 테스트): 가장 하단, 개별 함수/클래스 테스트, 빠름(ms), 격리, 많은 수량, 70-80%
- •Integration Test (통합 테스트): 중단, 모듈 간 상호작용, 중간 속도, DB/API 연동, 15-20%
- •E2E Test (엔드투엔드 테스트): 상단, 전체 시스템 흐름, 느림, 브라우저/UI, 5-10%
테스트 유형별 특성
안티패턴 - Ice Cream Cone: E2E 많고 Unit 적음, 느림, 취약, 유지보수 어려움
장점: 빠른 피드백, 비용 효율, 안정적 CI, 결함 조기 발견
단점: 비율 유지 어려움, 레거시 적용 어려움, 통합 테스트 경계 모호
적용사례: 대부분의 모던 소프트웨어 개발, TDD, CI/CD 파이프라인
기술요소: JUnit, Jest, pytest, Selenium, Cypress, Playwright
비교: 테스트 피라미드(균형) vs Ice Cream Cone(비효율) vs Testing Trophy(통합 중심)
연관: TDD, CI/CD, 단위 테스트, 통합 테스트, E2E 테스트