본문은 Fastcampus의 [이규원의 현실 세상의 TDD]를 수강하고 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다.
은탄환은 없다
- 테스트 주도 개발은 유용하고 매력적인 도구
- 하지만 테스트 주도 개발 역시 남용을 주의해야 한다
불안정한 목표
- 모든 코드의 목표가 안정적이지는 않음
- 소규모 스타트업, 사내 신규 조직 같은 곳에선 목표가 자주 바뀌거나 불명확할 수 있음
- 테스트 주도 개발은 목표를 명확히 수립한 후 목표에 이르는 과정에서 피드백을 받는 것임
- 탐색적으로 목표를 찾아내야 한다면 테스트 코드 작성 비용 부담이 큼
환경 제어
- 하위 시스템이 협력하는 다른 하위 시스템, 의존성 중 일부는 출력의 예측과 제어가 어려움
- 단위 테스트는 결정적일수록 유용
- 의존성 중 일부는 동작이 매우 느림
- 단위 테스트는 빠를수록 유용
- 의존성의 단점을 보완할 대역을 도입하면 가정이 발생
- 가정으로 인한 안정감 감소
낮은 코드 적응력
- 코드 적응력이 낮으면 단위 테스트하기 매우 어렵다
- 이미 코드 적응력이 낮은 코드 기반에 테스트 주도 개발을 적용하기 어렵다
- 코드 기반의 적응력을 높이는 것도 어렵다
- 설계 변경의 어려움
- 변경된 설계 검증 필요
'테스트코드 > 이규원의 현실 세상의 TDD: 안정감을 주는 코드 작성 방법' 카테고리의 다른 글
[이규원의 현실 세상의 TDD: 안정감을 주는 코드 작성 방법] 2부 10장: 인수 테스트 주도 개발 (0) | 2022.08.12 |
---|---|
[이규원의 현실 세상의 TDD: 안정감을 주는 코드 작성 방법] 2부 9장: 인터페이스와 테스트 (0) | 2022.08.11 |
[이규원의 현실 세상의 TDD: 안정감을 주는 코드 작성 방법] 2부 7장: 테스트 주도 설계 (0) | 2022.08.11 |
[이규원의 현실 세상의 TDD: 안정감을 주는 코드 작성 방법] 2부 6장: Should I test private methods (0) | 2022.08.11 |
[이규원의 현실 세상의 TDD: 안정감을 주는 코드 작성 방법] 2부 5장: Mockists vs Classicists (0) | 2022.08.11 |