테스트 주도 개발은 소프트웨어 개발하는 여러 방법 중 하나 이다.
기능이 정상적으로 동작하는지 검증하는 코드를 먼저 작성하고 그 후에 테스트를 최소한의 조건으로 통과하기 위한 기능코드를 작성한다.
회사마다 TDD를 작성하는 곳이 있고 안하는 곳이 있다.
TDD로 개발을 하는 것이 좋다 아니다에 대한 정답이 존재하지도 않고 버그가 다 잡히는 것도 아니다.
장점
1. 객체지향적인 코드 개발
2. 설계 수정시간 단축
3. 리팩토링
4. 테스트 문서 대체
단점
1. 생산성 저하
2. 배 보다 배꼽이 커지는 경우가 있을 수 있음