[Spring] 테스트 4 - 얼마나 깊게 테스트 코드를 작성해야 하는가?
4. HOW DEEP - 얼마나 깊게 테스트 코드를 작성해야 하는가? 4.1 테스트 깊이를 결정하는 기준 테스트 깊이를 설정할 때는 다음과 같은 기준을 고려해야 합니다: 테스트 피라미드(Test Pyramid): 테스트 피라미드는 테스트 종류에 따른 계층 구조를 보여줍니다. 일반적으로 단위 테스트가 가장 많고, 그다음으로 통합 테스트, 시스템 또는 E2E(End-to-End) 테스트가 위치합니다. 단위 테스트(Unit Tests): 가장 많은 비중을 차지하며, 작은 코드 단위를 독립적으로 테스트합니다. 통합 테스트(Integration Tests): 여러 모듈이 상호작용하는지 테스트합니다. E2E 테스트(End-to-End Tests): 실제 사용자 관점에서 전체 시스템이 잘 작동하는지 확인합니다. 위험 기반 테스트(Risk-Based Testing): 비즈니스 중요도와 잠재적 위험 요소에 따라 테스트 우선순위를 설정합니다. 비즈니스에 중요한 기능이나 리스크가 높은 부분에 대한 테스트는 더 깊이 있게 수행합니다. 유스 케이스 기반 테스트: 핵심 사용자 흐름과 엣지 케이스를 기반으로 테스트를 작성합니다. 실제로 사용자가 자주 사용하는 기능이나 예외적인 상황에서의 동작을 검증하는 것이 중요합니다. 현실적인 제약과 팀 역량 고려: 모든 부분을 깊이 테스트하는 것은 시간과 리소스 측면에서 비효율적일 수 있습니다. 팀의 역량과 프로젝트 일정 등을 고려하여 테스트 깊이를 조정하는 것이 필요합니다. ...