개발 문화 · 협업 · 중급
BDD 시나리오 작성 시 사용되는 Given-When-Then 구조에 대해 설명하고, 이 구조가 협업에 어떤 도움을 주는지 이야기해주세요.
힌트 · 명확한 전제, 행동, 결과를 통해 이해 관계자들이 시스템의 동작을 쉽게 이해하고 소통하여 요구사항을 명확히 합니다.
Given-When-Then시나리오 기반 테스트협업요구사항 명확화자동화 테스트
모범답안
BDD(Behavior-Driven Development) 시나리오 작성 시 사용되는 Given-When-Then 구조는 테스트 케이스를 명확하게 정의하고, 이해 관계자 간의 소통을 원활하게 하는 데 핵심적인 역할을 합니다.
Given은 특정 시나리오가 시작되기 위한 초기 상태, 즉 전제 조건을 설정합니다. When은 시스템에 가해지는 특정 행동이나 이벤트를 설명합니다. Then은 When 액션 이후 예상되는 결과를 명시합니다.
이 구조는 비기술적인 이해 관계자도 시나리오를 쉽게 이해할 수 있도록 돕습니다. 예를 들어, "Given 잔액이 10,000원인 계좌가 있고, When 5,000원을 출금하면, Then 잔액은 5,000원이 되어야 한다"와 같이 표현하면 누구나 시스템의 동작을 명확하게 파악할 수 있습니다.
또한, Given-When-Then 구조는 자동화 테스트 코드를 작성하기 용이하게 만들어 개발자와 테스터 간의 협업을 증진시키고, 요구사항을 명확하게 정의하여 개발 과정에서의 오해를 줄이는 데 기여합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 테스트 (TDD / BDD) 면접 질문
- TDD의 Red-Green-Refactor 사이클을 설명하고, 각 단계에서 개발자가 수행해야 할 주요 활동과 그 중요성에 대해 이야기해주세요.
- TDD를 프로젝트에 적용했을 때 얻을 수 있는 주요 이점과 발생할 수 있는 잠재적인 어려움은 무엇인가요?
- BDD(Behavior-Driven Development)는 TDD와 어떤 점에서 차이가 있으며, BDD가 강조하는 주요 가치는 무엇인가요?
- 단위 테스트(Unit Test) 작성 시 Mock이나 Stub 객체를 사용하는 이유와, 실제 객체를 사용하는 경우와 비교하여 설명해주세요.
- TDD/BDD 관점에서 단위 테스트, 통합 테스트, E2E 테스트의 적절한 비중과 각각의 역할에 대해 설명해주세요.
- 테스트 더블(Test Double)의 개념과 종류(Dummy, Fake, Stub, Spy, Mock)에 대해 간략히 설명하고, 각각의 사용 사례를 예시로 들어주세요.