개요
이 노트는 테스트 주도 개발(TDD)에서 행동 주도 개발(BDD)로의 전환 과정과 그 의미를 분석한다. 단순한 방법론의 교체가 아닌, 개발자의 인식 전환과 시스템 설계 패러다임의 변화를 조명한다.
핵심 통찰
TDD의 숨겨진 한계: 기술적 정확성과 비즈니스 의미의 괴리
TDD는 “올바르게 동작하는가”를 검증하는 데 집중한다. 그러나 이는 개발자 중심의 관점이다. 실제 소프트웨어의 가치는 “올바른 일을 하는가”에서 비롯된다. TDD가 놓치는 이 질문이 BDD로의 진화를 추동한다.
BDD의 본질: 공유된 이해의 언어
BDD는 단순한 테스트 프레임워크가 아니다. 이는 개발자, 비즈니스 분석가, 도메인 전문가 간의 ubiquitous-language를 형성하는 도구다. Given-When-Then 패턴은 기술적 구현을 비즈니스 행동으로 승화시킨다.
전환의 메커니즘: 추상화 수준의 이동
TDD에서 BDD로의 전환은 다음 세 가지 차원에서 발생한다:
- 언어 차원: 코드 수준의 assert → 자연어 수준의 시나리오
- 관심사 차원: 단위 테스트 → 인수 테스트
- 소유권 차원: 개발자 단독 → 크로스펑셔널 팀
연결된 개념
- behavior-driven-development
- test-driven-development
- ubiquitous-language
- acceptance-test-driven-development
- specification-by-example
참고 자료
- 원본: test-driven-to-behavior-driven clipping (2026-06-16)