BDD
🧪 BDD(Behavior Driven Development)란?
정의
BDD는 Behavior Driven Development(행위 주도 개발)의 약자다.
사용자 시나리오를 기반으로 요구사항을 정의하고, 이에 따른 테스트 케이스를 먼저 작성한 뒤 개발을 진행하는 방법론이다.
TDD(Test Driven Development)에서 발전한 방식으로, 비즈니스 가치를 중심으로 테스트를 설계한다는 점이 특징이다.
🧩 BDD의 핵심 개념
- Given-When-Then(GWT) 패턴 사용
Given(주어지는 상황)When(이벤트 발생)Then(기대 결과 확인)
- 비기술자와의 협업 중심
- 비즈니스 용어를 기반으로 기술/기획/테스트 간 공감대를 높인다.
🔄 BDD Work Flow
- 요구사항 정의
- 시나리오 기반 테스트 케이스 작성
- 기능 구현
- 테스트 실행 및 결과 확인
- 리팩토링
- 지속적인 테스트 자동화
참고
테스트가 실패하지 않도록 작은 단위로 반복적으로 테스트하는 것이 BDD 실천에 도움이 된다.
🆚 BDD vs TDD
| 항목 | BDD | TDD |
|---|---|---|
| 초점 | 행동(Behavior) | 기능(Function) |
| 문법 | Given-When-Then | Arrange-Act-Assert |
| 참여자 | 기획/QA/PO도 참여 | 개발자 중심 |
| 가독성 | 높음 | 상대적으로 낮음 |
| 사용 도구 | Cucumber, JBehave 등 | JUnit, TestNG 등 |
📚 대표 프레임워크
- Cucumber (Java, JavaScript, Ruby 등)
- SpecFlow (.NET)
- Behave (Python)
- JBehave (Java)
🧪 예시 (Gherkin 문법)
Feature: 회원 가입
Scenario: 유효한 이메일과 비밀번호로 가입 성공 처리
Given 사용자가 회원가입 페이지에 접속했을 때
When 유효한 이메일과 비밀번호를 입력하면
Then 회원 가입이 완료되어 안내 페이지로 이동한다
댓글남기기