티스토리 뷰
End to End Test로 사용자의 입장에서 사용자가 사용하는 상황을 가정하고 테스트하는 것이다.
Unit Test로 모듈들이 하는 일들을 테스트해 정상적으로 작동하는 것이 확인이 되었다면, 사용자가 사용하기에 문제만 없으면 모든 것이 완벽하다.
물론 Unit Test가 모두 정상적으로 마쳐지고 E2E Test를 하는 것이 절차상 맞지만, E2E Test가 정상적으로 통과된다면 Unit Test 또한 통과되었다는 것이나 마찬가지라 시간과 비용을 고려해봤을 때, 모든 Test를 수행하기 어려운 상황리아면 E2E Test만 수행해도 좋다.
프론트엔드의 대표적인 E2E Test Tool로는 Cypress가 있다. 테스트하고 싶은 UI를 테스트 코드로 작성하고 실행하면 내가 직접 마우스를 클릭하거나 키보드를 치지 않아도 자동으로 UI가 움직이면서 테스트 되는 것을 확인할 수 있다.
아래는 Cypress의 테스트 장면이다.
단점
- 일단 테스트를 만들기가 굉장히 힘들다. 테스트하고자 하는 UI Flow를 모드로 작성해야 하는데 공수가 꽤 든다.
- 사용자의 관점을 테스트하는 것이기 때문에, 딱 정해진 답이 존재하지 않는다. 답을 정해놓고 '이렇게 나오면 된다!' 라고 하면 되긴 하지만 어떤 사용자는 다른 UI가 나와도 답이라고 생각할 수 도있다.