무신사, Web 테스트 자동화 2.0 전환 성공 스토리: CI/CD 간소화 및 유지보수 효율 극대화

🤖 AI 추천

무신사 QA팀의 Web 테스트 자동화 1.0에서 2.0으로의 전환 경험은 QA 엔지니어, DevOps 엔지니어, 그리고 자동화된 테스트 파이프라인 구축 및 관리에 관심 있는 모든 개발자에게 귀중한 인사이트를 제공합니다. 특히 레거시 시스템의 현대화, CI/CD 파이프라인 개선, 테스트 데이터 관리 효율화, 그리고 테스트 스크립트 재사용성 증대에 대한 실질적인 방법론을 배우고 싶은 개발자에게 이 글을 강력히 추천합니다.

🔖 주요 키워드

무신사, Web 테스트 자동화 2.0 전환 성공 스토리: CI/CD 간소화 및 유지보수 효율 극대화

핵심 기술

무신사 QA팀은 서비스 개편에 맞춰 기존 Web 테스트 자동화 환경(1.0)에서 2.0으로 성공적으로 전환하며, CI/CD 파이프라인 간소화, 테스트 유지보수 효율성 증대, 그리고 테스트 실행 시간 단축이라는 성과를 달성했습니다. 이 과정에서 Github Actions를 활용한 CI/CD 통합, Selenium 및 Pytest 기반의 테스트 프레임워크 개선, 그리고 테스트 데이터의 DB화 및 Fixture 활용 전략이 핵심적인 역할을 했습니다.

기술적 세부사항

  • CI/CD 파이프라인 현대화: 기존 Spinnaker와 Jenkins 기반 환경에서 Github Actions 단일 환경으로 전환하여 서버 유지보수 부담을 줄이고 CI/CD 파이프라인을 통합했습니다. 이를 통해 PR 생성, 특정 브랜치 병합, 스케줄 실행 등 다양한 트리거 기반의 자동화된 배포 및 테스트 실행이 가능해졌습니다.
  • 테스트 스크립트 개선: UI 변경에 따른 XPath 수정 비중이 높았던 문제를 해결하기 위해, 테스트 데이터 관리 방식을 코드 내 포함에서 DB화로 변경하여 코드 수정 없이 Web 페이지에서 직접 데이터를 관리할 수 있도록 했습니다. 또한, 수동 테스트 케이스와의 동일한 수행 단위를 위해 'step' 기반 구조를 도입하고 Pytest Fixture 기능을 적극 활용하여 테스트 스크립트의 재사용성과 유지보수성을 크게 향상시켰습니다.
    • step 기반 구조 도입: ID 입력, PW 입력, 로그인 버튼 클릭 등 개별 기능 단위로 테스트를 분리하여 재사용 및 일괄 수정 용이성을 높였습니다.
    • Pytest Fixture 활용: 테스트 실행 전 사전 조건(예: 로그인 상태) 설정 및 테스트 후 상태 초기화를 Fixture로 처리하여 테스트 코드의 간결성을 높이고, scope 설정을 통해 공통 동작의 반복 실행을 최적화했습니다.
  • 테스트 결과 리포팅 간소화: 기존 Allure 리포트 서버 운영 부담을 제거하고, Slack과 TestRail을 연동하여 필수적인 테스트 결과(실패 시 스크린샷, 수행 시간, 실패 원인 등)를 간결하게 전송하도록 개선했습니다.
  • 성능 향상: 이러한 최적화를 통해 약 350개의 테스트 케이스 수행에 100분이 소요되던 환경에서, 약 740개의 테스트 케이스를 동일 시간 내에 완료할 수 있게 되었으며, TC당 평균 실행 시간도 약 17.1초에서 8.1초로 절반 이하로 단축되었습니다.

개발 임팩트

무신사의 Web 테스트 자동화 2.0 전환은 다음과 같은 실질적인 임팩트를 가져왔습니다:
* 유지보수 비용 절감: 반복적인 XPath 수정 및 테스트 데이터 변경에 드는 시간을 대폭 단축했습니다.
* 테스트 효율성 증대: 동일 시간 내 더 많은 테스트 케이스를 실행할 수 있게 되어 서비스 품질 검증 범위를 확장했습니다.
* 개발 생산성 향상: 간소화된 CI/CD 파이프라인과 개선된 테스트 환경으로 개발팀의 업무 효율성을 높였습니다.
* 향후 발전 가능성: AI 도입, PC 환경 자동화, 파트너 어드민 자동화 등 지속적인 개선 및 확장 가능성을 제시하며, 이는 무신사 QA팀의 품질 문화 정착 의지를 보여줍니다.

커뮤니티 반응

원문에서 직접적인 커뮤니티 반응은 언급되지 않았으나, 제시된 기술 스택(Github Actions, Pytest, Selenium)과 문제 해결 방식은 개발자 커뮤니티에서 활발히 논의되는 주제이며, 이러한 개선 사례는 많은 개발자에게 영감을 줄 수 있습니다.

📚 관련 자료