패스잇
개발 문화 · 협업 · 중급

TDD/BDD 관점에서 단위 테스트, 통합 테스트, E2E 테스트의 적절한 비중과 각각의 역할에 대해 설명해주세요.

힌트 · 테스트 피라미드를 떠올리며, 각 테스트 레벨이 검증하는 범위와 목적을 명확히 구분하여 설명하는 것이 중요합니다.

테스트 피라미드단위 격리행동 기반통합 인터페이스E2E 시나리오

모범답안

TDD/BDD 관점에서 테스트 피라미드를 생각하면 각 테스트의 비중과 역할을 이해하기 쉽습니다.

단위 테스트는 가장 많은 비중을 차지해야 합니다. TDD에서는 코드를 작성하기 전에 테스트를 먼저 작성하여 코드의 설계와 동작을 명확히 정의합니다. BDD에서는 "Given-When-Then" 형식으로 비즈니스 로직을 검증하는 테스트를 작성합니다. 핵심은 각 단위가 격리된 상태에서 예상대로 동작하는지 확인하는 것입니다.

통합 테스트는 단위 테스트보다는 적은 비중을 가져야 합니다. 단위 테스트를 통과한 모듈들이 서로 연동될 때 인터페이스가 제대로 작동하는지 검증합니다. 예를 들어, API 호출이나 데이터베이스 연동 등이 제대로 이루어지는지 확인합니다.

E2E 테스트는 가장 적은 비중을 차지해야 합니다. 실제 사용자의 시나리오를 따라 전체 시스템이 예상대로 동작하는지 검증합니다. 브라우저를 사용하여 UI를 테스트하거나, API를 호출하여 전체 흐름을 테스트하는 방식이 있습니다. E2E 테스트는 비용이 많이 들기 때문에 핵심적인 시나리오에 집중하는 것이 좋습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 테스트 (TDD / BDD) 면접 질문

← 테스트 (TDD / BDD) 면접 질문 전체 보기