프런트엔드 테스트 전략


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

본격적으로 설명하기 전에 각 전략에서 사용되는 기준에 대해 먼저 짚고 넘어가겠습니다.

  1. 비용(Cost, $): 더 많은 비용이 든다는 것은 지속적 통합 환경(Continuous integration environment)에서 테스트를 실행하는 실제 비용뿐만 아니라 엔지니어가 각 개별 테스트를 작성하고 유지 관리하는 데 걸리는 시간이 오래 걸린다는 것을 의미합니다. 비용이 클 수록 실패 포인트가 많아지므로 테스트가 중단될 가능성이 높아져 테스트를 분석하고 수정하는데 더 많은 시간이 소요됩니다.
  2. 속도(Speed): 더 상위 계층의 테스트일수록 테스트가 실행하는 코드가 더 많기 때문에 실행 속도가 느려집니다. 단위 테스트는 일반적으로 의존성이 없거나 해당 의존성을 모킹(mocking)할 수 있는 작은 단위의 기능을 테스트해 수천 라인의 코드를 단 몇 줄로 효과적으로 대체합니다.

그럼 이제 이 두 기준을 가지고 가장 유명하고 많이 언급되는 테스트 전략을 살펴보겠습니다.

테스트 피라미드

Untitled

테스트 피라미드를 주장하는 이유:

  1. 비용 효율성
  2. 안정성
  3. 개발자 피드백

테스트 트로피

Untitled