TDD와 BDD 비교
TDD (Test Driven Development)
TDD는 개발 방법론 중 하나로 우선 실패하는 테스트 코드 작성 후 개발 코드 작성하고, 테스트를 실행해서 통과 후 리팩터링을 진행하는 과정을 반복한다. 이러한 작업들을 반복해 본질적으로 필요한 코드만 작성하고 코드의 신뢰성을 높이는 데 포커스된 개발 방법론이다.
BDD (Behavior Driven Development)
우선 TDD의 단점은 코드 관점으로 테스트를 작성하여 코드 수정 시 불필요한 테스트 코드 수정사항이 발생하는 것이다.
이러한 상황을 해결하기 위해 BDD 방법론이 나왔는 데, BDD에서는 사용자 시나리오 관점으로 suite를 작성한다.
사용자 관점에서 기능 단위로 작성하며 개발 코드 변경시 테스트 코드가 변경되지 않도록 행동 단위로 작성한다.
기본적으로 테스트 코드 작성 순서는 아래와 같이 한다.
1. Feature
- 테스트에 대상의 기능/책임을 명시한다.
- 사용자 스토리를 작성한다.
2. Scenario
- 테스트 목적에 대한 상황을 설명한다.
- 유즈 케이스를 작성한다.
3. Given
- 시나리오 진행에 필요한 값을 설정한다.
4. When
- 시나리오를 진행하는데 필요한 조건을 명시한다.
5. Then
- 시나리오를 완료했을 때 보장해야 하는 결과를 명시한다.