테스트는 위 그림처럼 **범위와 비중
**에 따라서 E2E, Integration, Unit으로 나누어지게 된다.
Unit → 도메인 모델, 비즈니스 로직을 테스트하며 작은 단위의 코드 및 알고리즘을 테스트한다.
Integration → 코드의 주요 흐름을 테스트하며 **외부 의존성(ex - DB)**에 대해서도 테스트한다.
E2E → 최종 사용자의 흐름에 대한 테스트이며 외부의 요청부터 응답까지 테스트한다.
이렇게 **테스트 구간의 경계를 구분
**해서 문제가 되는 코드의 범위, 케이스를 빠르게 파악할 수 있다.
테스트 작성 → 결함 최소화 → 디버깅에 쓰는 시간 단축 → 비즈니스 개발 집중 → 생산성 향상
단위 테스트로 보기 어려움