TDD 와 BDD

TDD

  • Test-Driven Development(TDD) : 테스트가 개발을 이끌어간다라는 의미.

테스트를 먼저 만들고 테스트를 통과하기 위해 짜는 것을 TDD라 한다. 즉, 작은 유닛 수준의 코드를 작성하고 매번 테스트해 피드백을 적극적으로 받는다.

보통은 코딩을 하고 결과를 맞춰보는 식으로 테스트를 할 것이다.

하지만 TDD에서는 순서를 반대로 한다.

결과를 예상하고 그 결과가 나오도록 코딩을 한다. 그 결과가 아니면 테스트를 통과하지 못한다.

적용 사례

계산 프로그램을 만든다고 가정해보자.

  1. 덧셈을 만들기 위해 2개의 정수 인자를 받는다.
  2. 1 + 3 = 4 가 나오도록 만들겠다고 생각한다.
  3. 덧셈 프로그램을 작성한다.
  4. 2번을 목표하는 테스트 프로그램을 작성한다.
  5. 통과하면 새로운 테스트 추가
  6. 뺄셈 프로그램 작성
  7. 반복…

어떤 상황에 적용해야할까

  • 처음해보는 프로그램 주제
  • 고객의 요구조건이 바뀔 수 있는 프로젝트
  • 개발 중 코드가 자주 바뀔 가능성이 있는 프로젝트

즉, 코드에 대한 불안함이 있고 확신을 가지고 싶을 때 작성한다.

BDD

  • Behavior-Driven Development : TDD에서 파생된 개발 프로세스. TDD에서 나아가 테스트 코드 자체가 요구사항이 되도록 하는 개발 형식.

TDD는 유닛 테스트에 대해 작성했다면, BDD는 결합 테스트와 시나리오 테스트까지 확장한다. 어디서부터 테스트할지, 얼만큼 테스트할지, 테스트에 어떤 이름을 붙일지 등에 대한 고민을 BDD를 통해 해결할 수 있다.



참조

https://gmlwjd9405.github.io/2018/06/03/agile-tdd.html

김땡땡's blog

김땡땡's blog

김땡땡