정의
- Test Driven Development 테스트 주도 개발
- 테스트케이스를 작성한 후 개발에 착수
이유
- 불확실성이 높을 때 사용
- 처음해보는 프로젝트
- 고객의 요구가 바뀔 수 있는 프로젝트
- 개발하는 중에 코드를 많이 바꿔야 하는 경우
- 내가 개발하고 나서 다른 사람이 유지보수해야 하는 경우
장점
- 객체 지향적인 코드 생산
- 재설계 시간 단축
- 디버깅 시간 단축
- 테스트 문서 대체 가능
- 추가 구현의 용이함
단점
- 생산성 저하(si 프로젝트에서 품질보다 납기일이 중요하기 때문에 TDD 방식 지양)