BDD
📌 BDD(Behavior Driven Development)란?
info
BDD는 Behavior Driven Development(행위 주도 개발)의 약어로,
사용자 시나리오에 기반해 요구사항을 정의하고, 이에 따른 테스트 케이스를 먼저 작성한 후 개발을 진행하는 개발 방법론이다.
TDD(Test Driven Development)에서 발전된 방식으로, 비즈니스 가치를 중심으로 테스트를 설계한다는 점이 특징이다.
✅ BDD의 핵심 개념
- Given-When-Then(GWT) 패턴 사용
Given(주어진 상황)
When(이벤트 발생)
Then(기대 결과 확인)
- 비기술자와 협업 용이
- 비즈니스 용어를 기반으로 기술/기획/테스트 간 커뮤니케이션 강화
✅ BDD Work Flow
- 요구사항 정의
- 시나리오 기반 테스트 케이스 작성 (이 시점에서는 테스트 실패)
- 기능 구현
- 테스트 실행 및 통과 확인
- 리팩토링
- 지속적 테스트 유지
tip
테스트가 실패하지 않도록 짧은 주기 내 반복적으로 테스트하는 것이 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 회원 가입이 완료되어 홈 화면으로 이동한다
연결문서
- TDD]]
댓글남기기