행위 주도 개발 이란
행위 명세 기반 개발
BDD (Behavior-Driven Development)
BDD는 TDD와 비즈니스가 이해할 수 있는 언어로 시스템 동작 설명을 결합한 소프트웨어 개발 방법론입니다.
Given/When/Then 구문
| 키워드 | 목적 | 예시 | |--------|------|------| | Given | 초기 상태 | 인증된 사용자가 주어지면 | | When | 액션 | "구매"를 클릭할 때 | | Then | 예상 결과 | 상품이 장바구니에 추가됨 | | And | 추가 조건 | 알림이 표시됨 |
시나리오 예시 (Gherkin)
Feature: 장바구니
Scenario: 장바구니에 상품 추가
Given 사용자가 상품 페이지에 있음
And 상품이 재고에 있음
When 사용자가 "장바구니 추가" 클릭
Then 상품이 장바구니에 나타남
And 장바구니 카운터가 1 증가함
BDD vs TDD
| 측면 | TDD | BDD | |------|-----|-----| | 초점 | 코드와 유닛 | 시스템 동작 | | 언어 | 기술적 | 비즈니스 언어 | | 참여자 | 개발자 | 팀 + 비즈니스 | | 문서화 | 코드로서의 테스트 | 살아있는 문서 |
인기 도구
- Cucumber — Ruby, Java, JS
- SpecFlow — .NET
- Behave — Python
- Jest + Cucumber — JavaScript
- Behat — PHP