해결된 질문
작성
·
66
0
학습 관련 질문을 최대한 상세히 남겨주세요!
고민 과정도 같이 나열해주셔도 좋습니다.
먼저 유사한 질문이 있었는지 검색해보세요.
인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
안녕하세요, 강의 3회차를 복습하면서 궁금한 점이 생겨 질문드립니다.
인기글 섹션 마지막에, 모든 서버와 컨테이너를 실행해둔 상태에서 테스트 코드로 직접 호출해 기능을 검증하셨는데요. 실무에서도 E2E 테스트나 시나리오 테스트를 이러한 방식으로 진행하는지 궁금합니다.
개인적으로는 서버와 컨테이너를 매번 띄우고 테스트하는 과정에서 실수할 여지도 있고, 관리도 어려워 보인다는 생각이 들었습니다. 모듈 내부의 단위 테스트나 통합 테스트는 직접 작성해봤지만, 인기글처럼 여러 모듈 간의 상호작용을 테스트해 본 적은 없어 실제 현업에서는 어떤 식으로 검증하는지 궁금해 질문드립니다.
미리 답변 감사드립니다!
답변 2
0
진우님, 안녕하세요!
강의에서는 별도의 개발 환경 서버가 없다보니 로컬에서 관련된 모든 서비스를 실행하여 테스트를 진행하였는데요,
로컬에서 모든 연관 서비스를 실행해둔다는 것은 너무 비효율적이고 복잡하며, 연관 서비스가 많아질수록 점점 불가능에 가까워지게 됩니다.
실무에서는 개발 환경 서버에 연관 서비스들을 항시 띄워두게 됩니다.
로컬에서는 자신이 테스트하고자 하는 서비스만 띄우고, 연관 서비스들은 개발 환경 서버에 연결하면 됩니다.
또, 모든 경우에 항상 연관 서비스에 직접적으로 연결하여 테스트를 진행할 필요도 없습니다.
A 모듈이 B 모듈을 의존하는 상황을 가정해보겠습니다.
A 모듈은 그저 B 모듈을 사용하고 연동할 수 있는 인터페이스만 알고 있을 뿐입니다.
A 모듈을 테스트하고자 하는데, B 모듈의 내부 구조나 세부 구현에 대해서는 전혀 알 필요가 없습니다.
테스트하고자 하는 것은 A 모듈이지, B 모듈이 아닌 것입니다.
즉, B 모듈의 결과에 대해서는 A 모듈이 기대하는 mock 데이터로 대체하고,
그러한 결과를 바탕으로 A 모듈만 테스트해도 충분한 상황이 많습니다.
테스트하고자 하는 것이 무엇인지, 그 범위와 경계를 정하고, 테스트에 대한 격리된 환경을 만들어내는 것도 좋습니다.
여러 모듈 간의 상호 작용을 테스트한다고 하더라도, 모든 모듈을 실제 동작하도록 만들 필요는 없습니다.
개발 테스트에서는 이 정도로만 하고, 나머지는 QA 또는 클라이언트 개발 과정에서 보충해나가는 것도 충분한 상황이 많다고 생각되네요!
0
안녕하세요, 인프런 AI 인턴입니다. 이진우님.
E2E(End-to-End) 테스트는 애플리케이션의 전체 흐름을 사용자 관점에서 검증하기 때문에, 모든 컴포넌트가 서로 잘 통합되어 동작하는지를 확인하는 중요한 과정입니다. 이러한 테스트는 아래와 같은 방식으로 실무에서 진행됩니다:
자동화된 테스트 스크립트 활용:
테스트 환경 구축:
통합된 로깅과 모니터링:
테스트 용이성을 위한 모듈화:
E2E 테스트 설정 및 실행에 대해 더 많은 정보를 원하신다면, 아래의 유사한 질문 답변을 참고하시면 도움이 됩니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
아 그러면 지금 모듈 단위로 외부 인터페이스는 mock 처리해서 확인하고 있는데, 개발 단계에서는 이렇게 테스트만 해도 충분하군요.
kafka <- hot article 의존
article/view/like/common -> kafka 의존
우선 인기글은 EmbeddedKafka랑 Mockito로 테스트 했는데, 나머지 모듈도 kafka producer나 외부 인터페이스 호출하는 bean을 mock 처리해서 테스트하면 되겠군요.
답변 감사합니다.