[Study] TDD(Test-Driven-Development)

조혜인·2022년 8월 23일
0
post-thumbnail

📌 TDD란?

  • TDD란 Test-Driven-Development 즉, 테스트 주도 개발이다. 반복 테스트를 이용한 소프트웨어 방법론으로 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현한다.

  • 설계 단계에서 프로그래밍 목적을 반드시 미리 정의해야하고 또 무엇을 테스트해야할지 미리 정의해야만 한다.

  • 테스트 케이스를 작성하는 도중 발생하는 버그 혹은 수정사항들은 테스트 케이스에 추가하고 설계를 개선해야한다. 이후 테스트 케이스를 통과한 코드만을 개발 단계에서 실제 코드로 작성한다.

TDD 개발주기

  • 빨간색 : 실패하는 테스트 코드를 먼저 작성한다.
  • 초록색 : 테스트 코드를 성공시키기 위한 실제 코드를 작성한다.
  • 노란색 : 중복 코드 제거, 일반화 등의 리팩토링을 수행한다.

실패하는 테스트 케이스를 작성할 때까지 실제 코드를 작성하지 않아야하며 실패하는 테스트를 통과할 정도의 최소한의 코드를 작성해야한다.

이렇게 반복적으로 단계가 진행되면서 자연스럽게 코드의 버그가 줄고 소스코드는 간결해진다. 또한 테스트 케이스를 통하여 설계가 지속적으로 개선됨에 따라 재설계 시간이 절감된다.

TDD 개발 방식의 단점

  • 생산성의 저하

    • 개발을 진행하면서 테스트 케이스를 작성해야하고 중간 중간 테스트를 하며 코드를 수정해야한다. 그렇게 때문에 일반적인 개발 방식에 들어가는 시간보다 10~30% 정도가 더 증가한다.
  • 지금까지 개발하던 방식에서 벗어나야한다.

    • 일반적인 개발 방식과는 많이 다르므로 지금까지 개발하던 방식에서 벗어나야한다.

📌 참고

profile
코딩은 역시 재밌군

0개의 댓글