프론트엔드 테스트 전략

지리·2025년 9월 29일

프론트엔드 테스트 전략

테트전략은 테스트 작성 및 운영에 들어가는 비용과 속도를 기준으로 어떤 테스트의 비중을 높여야 할지에 대한 설계

1. 비용

더 많은  비용이 든다는 것은 테스트를 실행하는 비용뿐아니라 각 테스트를 작성하고 유지관리하는데 걸리는 시간이 오래 걸림을 의미. 비용이 클수록 실패 포인트가 많아지므로 테스트가 중단될 가능성이 높아져 테스트를 분석하고 수정하는데 더 많은 비용이 듦

2. 속도

더 상위 계층의 테스트일수록 테스트를 실행하는 코드가 많기 때문에 실행속도가 느려짐.
단위 테스트는 일반적으로 의존성이 없거나 해당 의존성을 모킹할 수 있는 작은 단위의 기능을 테스트해 수천 라인의 코드를 효과적으로 대체함

위의 두 기준을 가지고 가장 유명하고 많이 언급되는 테스트 전략으로 테스트 피라미드테스트 트로피가 있다.

테스트 피라미드

  • 단위 테스트의 비중이 제일 높은 피라미드 구조
  • 단위 테스트는 빠르게 모듈의 핵심 기능을 검증할 수 있기 때문에 단위 테스트의 비중을 가장 높게 두고 비지니스 로직이나 UI검증의 비중은 상대적으로 적게둠
  • 상위 수준테스트에서 실패하는 경우 기능 코드에 버그가 있을 뿐 아니라 단위테스트가 누락되거나 부정확한것을 의미

테스트 트로피

  • 테스팅 트로피의 가장 큰 특징은 정적 테스트가 추가된것과 통합테스트가 단위 테스트보다 크다는것.
  • 정적 테스트: 정적 코드를 작성할때 오타와 타입에러 확인.(ts, eslint이용)
  • 테스트 트로피는 모듈이 조합된 상태에서 비지니스 로직을 잘 수행하는지 검증하는 통합 테스트의 비중을 가장 높이 두고 있음.
  • 컴포넌트 하나하나의 기능보다 전반적인 앱의 비지니스 로직을 실행하는 통합 테스트를 더 중요하게 봄.
  • 테스팅 트로피가 위로 올라갈 수록 "신뢰도 계수" 즉, 각 테스트 수준에서 상대적인 신뢰성 수준이 올라간다고 보며 통합 테스트를 통해 적절한 비용과 속도의 균형을 갖춘 테스트를 가장 많이 작성하려는 전략

중요한것은?

결국 제일 중요한것은 내가 작성한 코드, 프로젝트의 신뢰성을 높이는것.
각 테스트의 장점과 한계점을 명확하게 이해하고 가장 효율적이고 장기적으로 운영 가능한 방식으로 테스트 설계 필요.
공통 컴포넌트나 리액트 훅과 같은 UI kit을 만드는 프로젝트일경우 통합테스트나 E2E보다는 단위 테스트를 사용하는게 적합.
일반적인 서비스 앱을 만들고 있는 상황에서 비지니스 로직을 검증할때는 단위테스트보다는 통합 테스트를 통해 검증하는 것이 효율적.
대상을 어떠한 범주에서 검증하는것이 효과적인지 계속 따져보고 고민하는게 프론트엔드 테스트에서는 중요.

profile
공부한것들, 경험한 것들을 기록하려 노력합니다✨

0개의 댓글