📌 BDD(Behavior Driven Development)란?

info

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. 지속적 테스트 유지

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 회원 가입이 완료되어 홈 화면으로 이동한다

연결문서

댓글남기기