핵심 인사이트 (3줄 요약)

  1. 본질: BDD는 비즈니스 요구사항을 Given(전제)·When(행동)·Then(결과) 형식의 시나리오로 작성하고, 이 시나리오가 곧 자동화 테스트가 되는 개발 방법론이다.
  2. 가치: TDD가 개발자 관점의 단위 테스트 중심이라면, BDD는 비즈니스 이해관계자(PO·QA)도 읽고 검증할 수 있는 자연어 시나리오로 요구사항과 테스트의 일치를 보장한다.
  3. 판단 포인트: Gherkin 문법(Given/When/Then)으로 시나리오를 작성하고, Cucumber·Behave 등 도구가 이를 자동화 테스트로 실행한다.

Ⅰ. 개요 및 필요성

┌───────────────────────────────────────────────────────┐
│    BDD 시나리오 예시                                  │
├───────────────────────────────────────────────────────┤
│  Feature: 로그인                                      │
│                                                       │
│  Scenario: 올바른 비밀번호로 로그인                   │
│    Given 사용자 "홍길동"이 등록되어 있다              │
│    When 아이디 "hong"과 비밀번호 "1234"로 로그인     │
│    Then 대시보드 페이지가 표시된다                    │
│                                                       │
│  Scenario: 잘못된 비밀번호                            │
│    Given 사용자 "홍길동"이 등록되어 있다              │
│    When 아이디 "hong"과 비밀번호 "wrong"으로 로그인  │
│    Then "비밀번호가 틀립니다" 메시지가 표시된다       │
└───────────────────────────────────────────────────────┘
  • 📢 섹션 요약 비유: BDD는 연극의 **대본(시나리오)**이다. 감독(PO)·배우(개발자)·관객(QA) 모두가 같은 대본을 보고 연습(테스트)한다.

Ⅱ. 아키텍처 및 핵심 원리

TDD vs BDD

비교TDDBDD
관점개발자비즈니스 + 개발자
언어코드자연어 (Gherkin)
범위단위 테스트인수 테스트
도구JUnit, pytestCucumber, Behave
  • 📢 섹션 요약 비유: TDD는 부품 검사(단위), BDD는 완성차 시승(인수)이다.

Ⅲ. 비교 및 연결

비교수동 인수 테스트BDD
문서엑셀실행 가능 시나리오
자동화불가자동 실행
유지보수문서 갱신 누락코드와 동기화

Ⅳ. 실무 적용 및 기술사 판단

BDD 도구

  • Cucumber (Java/Ruby): BDD 대표.
  • Behave (Python): Python BDD.
  • SpecFlow (.NET): C# BDD.

Ⅴ. 기대효과 및 결론

BDD는 **"살아있는 문서(Living Documentation)"**를 통해 요구사항·테스트·코드의 일치를 보장하는 Agile 개발의 핵심 실천이다.


📌 관련 개념 맵

개념연결 포인트
Given/When/ThenBDD 시나리오 문법
GherkinBDD 시나리오 언어
CucumberBDD 자동화 도구
TDDBDD의 기반 (코드 레벨)
ATDD인수 테스트 주도 개발

📈 관련 키워드 및 발전 흐름도

[TDD (Kent Beck, 2003)]
    │
    ▼
[BDD (Dan North, 2006) — Given/When/Then]
    │
    ▼
[Cucumber (2008) — BDD 자동화 대표]
    │
    ▼
[Living Documentation (2015~)]
    │
    ▼
[현재: AI BDD — 자연어 요구사항 → 자동 시나리오 생성]

👶 어린이를 위한 3줄 비유 설명

  1. BDD는 연극 **대본(시나리오)**이에요. "만약 이러면, 이렇게 하면, 이런 결과가 나와야 해!"
  2. 감독(PO)·배우(개발자)·관객(QA) 모두가 같은 대본을 보고 이해해요.
  3. 대본대로 연습(테스트)하면 진짜 공연(배포) 때 실수가 없어요!