TDD란?
Test Driven Development의 약자테스트 주도적인 개발이란 의미.
소스코드 작업 전에 테스트 코드를 먼저 작성해 소스 수정에 대한 부담을 덜고 디버깅 시간을 줄이는 방식
장점
- 소스 코드의 품질이 높다.
- 재설계 및 디버깅 시간이 절감된다.
단점
- 단기적 코드의 경우 생산성이 떨어진다.
- 실제 코드보다 테스트 케이스가 더 커질 수 있다.
python에 TDD가 필요한 이유
- 동적 언어이기 때문에 TDD를 하기에 적합하다.
- 간결함과 단순함으로 생산성이 높은 반면 런타임 오류가 발생 가능성이 높다.
- 컴파일 단계의 체크가 약하다.
python에서 TDD 적용하기
unittest
- 파이썬의 표준 라이브러리
- 테스트의 자동화, 구조화
- 테스트 결과 보고