Test Driven Development

NaHyun Kim·2020년 8월 7일

TDD란

Test Driven Development

  • 테스트 주도 개발 > 테스트가 개발을 이끌어 나간다.
    소프트웨어 개발 방법론 중 하나로써 테스트 코드를 먼저 작성한 후,
    구현 코드 작성 단계와 리팩토링 단계를 짧은 주기로 반복하여 개발하는 '테스트 주도 개발 방법론

TDD

XP(eXtreme Programming)의 대표적인 개발 방법론으로, 테스트 코드를 먼저 작성하고 이를 통과하도록 실제 코드를 작성
TDD는 목적 코드의 원활한 도출을 위해 부분적으로 Unit Testing 이라는 독립적 프로세스 요소를 사용하여 테스트 코드를 작성하며 테스트 코드에 주요한 가치를 부여 하진 않음

Unit Testing

검증이 필요한 코드에 대해 테스트 케이스를 작성하는 절차 또는 프로세스
Unit Testing은 테스트 코드가 목적 코드의 완전성을 입증 해주기 때문에, 테스트 코드 그 자체만으로 주요한 가치가 있음

참고

TDD를 해야하는 상황

  • 처음해보는 프로그램 주제
  • 고객의 요구조건이 바뀔 수 있는 프로젝트
  • 외부적인 불확실성이 높은 경우
  • 개발하는 중에 코드를 많이 바꿔야 된다고 생각하는 경우
  • 개발 후 코드를 누가 유지보수할지 모르는 경우

즉, 불확실성이 높을 때 TDD를 하면 된다
여러 번 해봤거나, 결과를 충분히 알 수 있는 경우라면 TDD를 하지 않아도 된다. 다만 내부, 외부적으로 불확실성이 높을 때에는 굉장히 효과적이다.

TDD의 장단점

  • TDD를 하게 되면 개발 시간은 늘어난다.
    (개발 기간에 TDD 방법론을 학습하는 시간까지 포함 시키기 때문에 개발 기간이 늘어난다고 생각, 실제 개발 기간이 길어질 순 있지만, 길어진 시간 만큼을 통합 과정에서 줄일 수 있음)
  • 결함이 줄어들게 된다.
  • 깨끗한 코드가 나올 확률이 높아진다.
  • 유지보수 비용이 낮아진다.

참고

0개의 댓글