Test Driven Development
테스트 주도 개발
반복 테스트 소프트웨어 방법론으로 작은 단위의 테스트 케이스를 작성하여 단계적으로 반복하며 코드를 추가
1) 요구사항 분석
2) 설계 (디자인)
3) 개발
4) 테스트
5) 배포
요구사항이 처음부터 명확하지 않을 수 있기때문에 처음부터 완벽한 설계가 어려움
재설계를 통해 점진적으로 완벽한 설계로 나아가는데 이 과정에서 불필요한 코드가 남거나 중복 처리될 가능성이 있음
재사용 및 유지보수가 어려움
1) 설계 (디자인)
2) 테스트
3) 개발
테스트 코드 작성 후 실제 코드 작성
설계에서 프로그래밍 목적과 무엇을 테스트 할 지 미리 정의해야 함
테스트 도중의 예외사항(버그, 수정사항) 등은 테스트 케이스에 추가하여 설계
이후 테스트에 통과한 코드만 개발 단계에서 실제 코드로 작성
이 작업을 반복하면서 버그가 줄어들고 코드가 간결해지며 테스트 케이스 작성으로 재설계의 시간 감소