일반적으로 선 개발 - 후 테스트 및 검증 방식이 아닌 테스트 코드를 먼저 작성하면서 개발 사이클을 진행하는 것을 의미한다. 코드의 품질을 높이고 유지보수에 용이하게 하기 위해 사용한다. Red, Green, Refactor가 있는데 각 실패, 성공, 코드 개선(중복 및 패턴 적용 전반 개선)을 뜻한다.
장단점
장점 : 코드의 품질 개선, 개발의 방향성 유지.
단점 : 짧은 시간이 주어진 환경에서는 무리일 수 있음. TDD에 대한 진입 초기장벽 높음(생산성 저하)