TDD vs BDD

Hyun Jin·2023년 3월 29일
0

TDD(Test-driven Development)


TDD 란?

  • 코드를 작성하기 전에 테스트를 쓰는 소프트웨어 개발 방법론
  • 작은 단위의 테스트 케이스를 작성하고, 이를 통과하는 코드를 작성하는 과정을 반복하며 개발하는 방법

TDD를 사용하는 이유

  • 코드를 작성하기에 앞서 테스트 코드를 먼저 작성해야 하기 때문에 시간이 오래 걸리는 것처럼 느껴지지만, 오히려 예상하지 못했던 버그를 줄여 소요 시간을 줄일 수 있기 때문임.

반대로 ‘TDD 는 죽었다’는 칼럼도 있긴 함.


BDD(Behaivior-Driven Development)


  • TDD 에서 파생된 개발 방법론으로, 개발자와 비개발자 간의 협업 과정을 녹여낸 방법
  • 사용자의 행위를 작성하고 결과 검증을 진행
  • BDD 로 테스트 코드를 작성함에 따라 설계 역시 행위의 중심이 되는 도메인 기반 설계가 됨
  • BDD 는 기획서 내용을 그대로 반영 가능함.
  • Given(사용자의 행위가 이루어지는 상황), When(사용자의 행위가 이루어졌을 때), Then(사용자의 행위가 이루어진 후의 액션) 시나리오를 기본으로 함
  • 기획서를 통한 Test Case 작성으로 작성에 대한 비용 감소
  • TDD 보다 더 넓은 테스트 커버리지 확보 가능
  • 설계 변경에 따른 리스크 최소화 가능
  • 서비스의 이해도 증가

TDD 와 BDD 의 차이점

  • 테스트의 목적이 모듈이 의도대로 동작하는 것인지, 사용자의 목적에 부합하도록 동작하는지 확인하는 것인지가 다름.
  • 상호 보완적인 관계임!
  • BDD 에서는 설계 누락, 설계 변경 등에 빠른 대응이 가능함(재설계 시 코드 작성 전이라 비용 리스크가 적음)



🔗️ 참고 자료 :

profile
새싹 프론트엔드 개발자

0개의 댓글