토픽 63 / 192·소프트웨어 테스트
TDD (Test-Driven Development)
TDD (Test-Driven Development)
테스트 코드를 먼저 작성하고, 테스트를 통과하는 최소한의 코드를 구현한 뒤, 리팩토링하는 개발 방법론
제안자: Kent Beck (XP의 핵심 실천법)
사이클 (Red-Green-Refactor)
원칙
- •실패하는 테스트 없이 프로덕션 코드 작성 금지
- •필요 이상의 테스트 작성 금지
- •필요 이상의 프로덕션 코드 작성 금지
장점
- •설계 개선 (테스트 가능한 설계)
- •회귀 테스트 자동 구축
- •문서화 효과
- •디버깅 시간 감소
단점: 초기 학습 곡선, 시간 투자, 레거시 적용 어려움
적용사례: XP 프로젝트, 품질 중시 개발
비교: TDD(테스트우선) vs 전통(코드우선) vs BDD(행위중심)
연관: XP, 단위테스트, 리팩토링, BDD