본문 바로가기
  • 시 쓰는 개발자
1일 1개념정리 (24년 8월~12월)/테스팅 , SW공학개론

1일1개 (87) - 끝에서 끝까지 테스트

by poetDeveloper 2024. 11. 20.

1일 1개념정리 24.08.09.금 ~ 

 

큰 결정에 큰 동기가 따르지 않을 때도 있다. 하지만 큰 결심이 따라야 이뤄낼 수 있다.

무조건 무조건 1일 1개의 개념 정리하기 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!


#87. E2E 테스트 (End to End)

E2E 테스트는 ui 테스트부터 시작하여 백엔드 api 테스트, 시스템 테스트 등 전반적인 모든 과정을 테스트하는 것이다. 오늘은 E2E 테스트에 대해 알아보자.

 

E2E

E2E 테스트는 개별적인 모듈 테스트 뿐만 아니라, 시스템 전체가 통합적으로 동작하는지 확인하는 테스트이다. 주요 특징은 다음과 같다.

  • 실제 사용자 관점 : 시스템의 모든 구성 요소가 의도한 대로 동작하는지 확인. ex) 로그인, 검색, 결제 등
  • 종합적 테스트 : 단위 테스트와 통합 테스트처럼 서비스 간의 연계를 확인한다.
  • 환경 테스트 : 실제 환경에서 실행하는 것으로, 브라우저나 네트워크 환경 등을 테스트한다.
  • 시나리오 기반 : 사용자 시나리오를 중심으로 테스트한다. ex) 사용자가 로그인 후, 상품 추가하고 결제한다.

이렇게 실제 사용자가 서비스를 이용하듯이 테스트 하는 것을 포함하는데, 사용자 입장에서 만족도를 느끼는 정도, 그리고 시스템간 상호작용(api 호출같은)을 검증할 수 있다. / 특히 복잡한 사용자 시나리오를 다룰 때 효과적이고, 시스템간 상호작용을 검증할 때, 그리고 사용자 경험이 중요한 SaaS같은 플랫폼에서 효과적이다.

 

단점

  • End To End이므로 테스트 작성할 것이 많고 실행 시간이 길다.
  • 막상 자동화 해놓아도, UI 변경이 잦다면 테스트 스크립트를 자주 업데이트 해야돼서 유지보수도 어렵다.
  • 처음부터 쭉 테스트하므로, 로그 제대로 안찍으면 원인을 특정하기도 어렵고, 특히 시스템간의 이슈에서 어느쪽이 문제인지 파악하는 것도 어렵다.

 

E2E 테스트 도구 간단 정리

  장점 단점
Selenium - Java, Python, JavaScript 등 지원.
- 대부분의 브라우저와 플랫폼 호환 가능.
- 설정과 환경 구축이 복잡.
- 디버깅 및 유지보수가 어려움.
- 테스트 속도가 느림. (wait을 계속 추가해야함)
Cypress - JS 기반으로 사용이 간편.
- 디버깅이 용이.
- 빠른 실행 속도.
- 다중 브라우저 지원 제한
- 백그라운드 실행(ex. 헤드리스 모드) 기능 제한.
Playwright - 최신 브라우저 및 멀티 브라우저 테스트 강점.
- 강력한 API와 병렬 테스트 지원.
- 상대적으로 새로운 도구라 커뮤니티 생태계 제한적

 

E2E 테스트 vs 다른 테스트

아주 가볍게만 테스트를 비교해보자.

  E2E 테스트 유닛 테스트 통합 테스트
초점 전체 시스템의 통합 동작 개별 모듈의 기능 모듈 간 상호작용 검증
속도 느림 빠름 중간
테스트 대상 UI → API → DB → 외부 시스템 특정 함수, 메소드 API → DB, 서비스 간 연동
유형 사용자 시나리오 중심 개발자 중심 개발자 및 QA 중심

 

반응형