테스트 주도 개발(Test-driven development, TDD)은 매우 짧은 개발 사이클을 반복하는 소프트웨어 개발 프로세스 중 하나입니다. 개발자는 먼저 (1) 요구사항을 검증하는 자동화된 테스트 케이스를 작성하고, 그런 후에 (2) 그 테스트 케이스를 통과하기 위한 최소한의 코드를 생성합니다. 마지막으로 (3) 작성한 코드를 표준에 맞도록 리팩토링합니다. 이 기법을 개발했거나 '재발견' 한 것으로 인정되는 Kent Beck은 2003년에 TDD가 단순한 설계를 장려하고 자신감을 불어넣어준다고 말합니다.
- 작은 테스트를 하나 추가한다.
- 모든 테스트를 실행해서 테스트가 실패하는 것을 확인한다.
- 조금 수정한다.
- 모든 테스트를 실행해서 테스트가 성공하는 것을 확인한다.
- 중복을 제거하기 위해 리팩토링을 한다.
켄트벡의 TDD by example 중 Money 예제를 TDD 로 구현한 프로젝트입니다.
숫자야구게임을 TDD 로 구현한 프로젝트입니다.
자동차 경주 게임을 TDD 로 구현한 프로젝트입니다.
좌표 계산기를 TDD 로 구현한 프로젝트입니다.
autoparams 사용 예제를 TDD 로 구현한 프로젝트입니다.
fixture monkey 사용 예제를 TDD 로 구현한 프로젝트입니다.
Specification pattern 을 TDD 로 구현한 프로젝트입니다.
Visitor pattern 을 TDD 로 구현한 프로젝트입니다.
Builder pattern 을 TDD 로 구현한 프로젝트입니다.
Observer pattern 을 TDD 로 구현한 프로젝트입니다.
피보나치 수열을 TDD 로 구현한 프로젝트입니다.
행성의 궤도 계산기를 TDD 로 구현한 프로젝트입니다.
이미 TDD 로 진행했던 프로젝트에 대해 반복해서 TDD 로 구현하는 공간입니다.