Learning
토픽 63 / 192·소프트웨어 테스트

TDD (Test-Driven Development)

TDD (Test-Driven Development)

테스트 코드를 먼저 작성하고, 테스트를 통과하는 최소한의 코드를 구현한 뒤, 리팩토링하는 개발 방법론

제안자: Kent Beck (XP의 핵심 실천법)

사이클 (Red-Green-Refactor)

원칙

  • 실패하는 테스트 없이 프로덕션 코드 작성 금지
  • 필요 이상의 테스트 작성 금지
  • 필요 이상의 프로덕션 코드 작성 금지

장점

  • 설계 개선 (테스트 가능한 설계)
  • 회귀 테스트 자동 구축
  • 문서화 효과
  • 디버깅 시간 감소

단점: 초기 학습 곡선, 시간 투자, 레거시 적용 어려움

적용사례: XP 프로젝트, 품질 중시 개발

비교: TDD(테스트우선) vs 전통(코드우선) vs BDD(행위중심)

연관: XP, 단위테스트, 리팩토링, BDD