🧪 BDD(Behavior Driven Development)란?

정의

BDD는 Behavior Driven Development(행위 주도 개발)의 약자다.
사용자 시나리오를 기반으로 요구사항을 정의하고, 이에 따른 테스트 케이스를 먼저 작성한 뒤 개발을 진행하는 방법론이다.
TDD(Test Driven Development)에서 발전한 방식으로, 비즈니스 가치를 중심으로 테스트를 설계한다는 점이 특징이다.

🧩 BDD의 핵심 개념

  • Given-When-Then(GWT) 패턴 사용
    • Given(주어지는 상황)
    • When(이벤트 발생)
    • Then(기대 결과 확인)
  • 비기술자와의 협업 중심
    • 비즈니스 용어를 기반으로 기술/기획/테스트 간 공감대를 높인다.

🔄 BDD Work Flow

  1. 요구사항 정의
  2. 시나리오 기반 테스트 케이스 작성
  3. 기능 구현
  4. 테스트 실행 및 결과 확인
  5. 리팩토링
  6. 지속적인 테스트 자동화

참고

테스트가 실패하지 않도록 작은 단위로 반복적으로 테스트하는 것이 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 회원 가입이 완료되어 안내 페이지로 이동한다

연결문서

댓글남기기