TDD

TDD란?
Test-Driven Development의 줄임말인 TDD는 테스트 주도 개발을 의미합니다. 이것은 여러 개발방법론 중에 하나입니다. 이 방법은 기존에 설계 이후 개발 코드를 작성하고 테스트 코드를 작성하는 순서와 다릅니다. 설계한 것에 대한 테스트 코드를 먼저 작성하고 개발 코드를 작성하는 방법입니다. 그렇기 때문에 테스트 우선 개발이라고 해도 크게 문제는 없습니다.
TDD의 개발 순서
- 실패하는 작은 단위 테스트를 작성합니다. (컴파일조차 되지 않을 수 있습니다.)
- 빠른 테스트 통과를 위해 프로덕션 코드를 작성합니다. (통과를 위해서는 여러 접근 방법이 있습니다.)
- 그 다음의 테스트 코드를 작성합니다. 실패 테스트가 없을 경우에만 성공 테스트를 작성합니다.
- 새로운 테스트를 통과하기 위한 프로덕션 코드를 추가 또는 수정합니다.
- 1~4단계를 반복해 모든 테스트 케이스를 작성합니다.
- 개발된 코드들에 대해 모든 중복을 제거하면서 리팩토링합니다.
TDD 사용시 장점
- 피드백의 증가
- 협력의 효율 증가
- 튼튼하고 깔끔한 코드
- 개발 비용 절감
- 테스트 문서의 대체 가능
TDD 사용시 단점
- 생산성의 저하
접근 방법
- 가짜로 구현하기
- 변수를 사용하지 않고 상수를 반환하며, 정답이 아닌 방법으로 가짜 정답을 구현하여 최대한 빨리 테스트를 통과하는 것입니다.
// 코드 예시 추가 예정
- 변수를 사용하지 않고 상수를 반환하며, 정답이 아닌 방법으로 가짜 정답을 구현하여 최대한 빨리 테스트를 통과하는 것입니다.
- 삼각 측량법
- 추상화된 과정을 일반화하는 과정입니다. 주로 테스트 예시가 2개 이상일 때만 추상화합니다.
// 코드 예시 추가 예정
- 추상화된 과정을 일반화하는 과정입니다. 주로 테스트 예시가 2개 이상일 때만 추상화합니다.
- 명백하게 구현하기
- 정답을 아는 경우 바로 정답을 구현합니다.
// 코드 예시 추가 예정
- 정답을 아는 경우 바로 정답을 구현합니다.