CS [개발 지식] TDD란?

신재원·2023년 1월 29일
0

CS [개발지식]

목록 보기
5/9

TDD란 ?

  • "테스트 주도 개발"의 의미이다. 작은 단위테스트(Unit Test)를 먼저 작성하고, 이 테스트를 통과하는 코드를 추가적으로 계속해서 구현하는 개발방법을 이야기한다.
  • 간단히 말해서, 테스트 코드를 먼저 작성하고, 그 테스트 케이스를 통과하도록 개발을 계속해서 진행하는 것이다.

TDD 개발 루틴

  • Write Failing Test
    • 실패하는 테스트 케이스를 먼저 작성한다.
  • Make Test Pass
    • 테스트 케이스를 통과할 수 있는 실제 코드를 작성한다
  • Refcator
    • 중복 코드 제거, 일반화, 최적화 등의 리펙터링을 수행한다.
      이것을 계속해서 반복적으로 수행하는 것이 TDD의 개발 루틴이다.

TDD 개발의 장점

  • 객체 지향적인 코드 구현
  • 디버깅 시간의 단축
    • 단위 테스트를 이용하기때문에 복잡한 디버깅을 할 확률이 줄어든다.
  • 재설계 시간의 단축
    • 테스트 코드를 먼저 작성함으로 개발 목표를 확실하게 알수있다.
  • 추가 구현의 용이함

TDD의 단점

  • 개발 속도가 느리다. (생산성이 낮다.)
    • 단위테스트를 지속적으로 작성하기 때문에, 개발속도가 늦다.
  • 처음부터 잘 적용하기 힘들다

0개의 댓글