Test Driven Development(TDD)


→ 반복 테스트를 이용한 소프트웨어 방법론

  • 코드 작성 전 작은 단위의 테스트 케이스 작성
  • 작성한 테스트 케이스를 통과시키는 코드 작성
  • 짧은 개발 주기 반복하는 개발 프로세스
  • 단순한 설계 중요



개발 절차

TDD 절차

  • Write Failing Test - 실패하는 테스트 코드 작성
  • Make Test Pass - 테스트 코드를 성공하기 위한 실제 코드 작성
  • Refactor - 리팩토링 수행



장점

  • 코드 품질 향상 및 코드 정확성 보장
  • 초기 오류 감소 및 디버깅 시간 단축
  • 기능 단위 테스트로 빠른 피드백 가능
  • 코드 사용법 문서화
  • 안전한 리팩토링 제공
  • 추가 기능 구현 용이



단점

  • 초기에 테스트 작성으로 인해 많은 시간 소모 (생산성 저하)
  • 특정 요구사항의 경우 테스트 케이스 작성 어려움