테스트 피라미드

신연우·2021년 1월 26일
0

WIL

목록 보기
4/13
post-thumbnail

제품의 테스트를 크게 세 분류로 나눈 것을 피라미드 형태로 만든 것이다.

Unit Test

함수의 동작이 잘 돌아가는지 테스트하는 것을 말한다. 이때 테스트하는 함수는 외부 자원(네트워크나 데이터베이스 등)을 사용하지 않는, 독립된 함수여야 한다.

  • 회사에서도 내부적으로 가장 많이 만들면 좋다고 말하는 테스트 코드다. 아무래도 외부 자원을 사용하지 않다보니 일반적으로 실행 속도가 빠르고 도메인 로직을 테스트 함에 있어 Unit test로도 충분하기 때문이지 않을까 싶습니다.
  • 개인적으로 작성할 때 많은 리소스가 든다고 생각한다. 대부분의 외부 자원가 소통하는 곳을 mocking 해줘야 하는데 작성해본 경험이 적을수록 이 mocking을 하는데 리소스를 많이 써야 하는 것 같다.

Integration Test

각각의 시스템이 서로 어떤 상호작용을 하고 있으며, 정상적으로 동작하는지 테스트하는 것을 말한다. integration test 단계에서는 다른 컴포넌트들과 관계를 맺고 있어도 무관하다(상호작용에 대한 테스트이기 때문에 어찌 보면 당연하다 볼 수 있다).

  • 필자는 개인적으로 캐싱 기능을 테스트할 때 사용한다.
  • 테스트 커버리지를 위한 것은 아니지만 써드파티를 연동할 때 외부 API의 응답을 받아보기 위해 호출하는 로직을 Integration test로 작성합니다. 테스트 코드만 실행하면 외부 API의 응답을 받아볼 수 있어 연동 테스트할 때 편리하기 때문입니다.

End-to-End

functional test, browser test라고도 불리는 단계로, 하나의 애플리케이션으로서 정상적으로 동작하는지 테스트하는 것을 말한다.

  • 아직까지 작성해본 경험이 없는 테스트 코드입니다.

참고 문헌

What are Unit Testing, Integration Testing and Functinoal Testing? | CodeUtopia

profile
남들과 함께하기 위해서는 혼자 나아갈 수 있는 힘이 있어야 한다.

0개의 댓글