TDD
- Test Driven Development (테스트 주도 개발)
- 테스트 코드 주도하에 실제 프로덕션 코드를 개발하는 개발 방법론
a. 일반적인 개발 루틴
b. TDD 개발 루틴
- 실패하는 테스트를 구현한다
- 테스트가 성공하도록(
테스트가 성공하는 최소한의 기능
) 프로덕션 코드를 구현한다
- 아래 단계에서 리팩토링을 거칠 것이기 때문에 코드 퀄리티에 크게 신경 ❌
- 프로덕션 코드와 테스트 코드를 리팩토링 한다
Test Code의 장점
- 변화에 대한 두려움이 줄어든다
- = 리팩토링에 대한 두려움이 줄어든다
- 불안함 Down, 지루함 Up 😴
- 디버깅 시간을 줄여준다
- 동작하는 문서의 역할 📄
- 훌륭한 협업 도구
- 의사 결정의 흐름을 쉽게 알 수 있음
- 품질 향상에 도움이 된다
- 기능별로 분리해야 테스트 코드를 작성하는데 수월함 → 함수를 기능별로 분리 → 클린 코드
TDD의 장점
- 오버 엔지니어링 방지
- 테스트를 통과하는 정도로만 실제 코드를 작성하기 때문에 오버 엔지니어링을 방지할 수 있음
- 테스트 커버리지가 높아진다
테스트 커버리지: 테스트 코드로 검증되는 영역