테스트 자동화 환경 개선과 Master Jenkins 구축
29CM QA팀은 테스트 자동화 환경을 효과적으로 개선하기 위해 여러 가지 구조적 변화를 시도했습니다. 그 결과, Master Jenkins를 통해 모든 자동화 작업을 중앙에서 관리할 수 있는 환경을 구축하게 되었습니다. 이번 포스트에서는 이러한 개선 과정과 성공적인 통합을 이룬 비결에 대해 자세히 살펴보겠습니다.
테스트 자동화 환경 개선을 위한 구조적 변화
29CM QA팀은 초기 테스트 자동화 환경을 설정할 때 Mac Mini 한 대를 사용하여 iOS 및 Android 기기에서 자동화를 시작했습니다. 그러나 자동화 시나리오의 증가와 함께 전체 테스트 시간이 길어지는 문제를 겪으면서, 팀 내에서 정해진 20분 이내의 테스트 완료 기준을 맞추기 위한 환경 개선이 절실해졌습니다. 이러한 배경 속에서 QA팀은 여러 가지 대응책을 마련하게 되었는데, 그 중 첫 번째로 기기를 두 대씩 병렬로 연결하여 수행시간을 최적화하는 구조로 변경했습니다.
또한, 개인정보 유출 문제를 해결하기 위해 테스트용 API 서버를 구축하고, 이를 통해 API 요청으로 계정을 안전하게 관리할 수 있는 환경을 마련했습니다. 원격 근무가 잦아진 상황에서는 STF(Smartphone Test Farm)를 활용해 테스트 기기를 원격에서 조작할 수 있도록 하였으며, 마지막으로 Postgresql과 Grafana를 통한 데이터베이스화 및 대시보드를 구축하여 테스트 결과를 시각화하고 추적할 수 있게 되었습니다. 이러한 다각적인 환경 개선 노력으로 QA팀은 보다 빠르고 안전한 테스트 자동화가 가능하게 되었습니다.
Master Jenkins 구축을 통한 운영 효율성 향상
자동화 환경 개선에도 불구하고, QA팀은 여전히 Mac Mini와 Mac Studio에서 발생하는 퍼포먼스 저하 문제를 겪고 있었습니다. 이에 따라 새로운 자동화 머신을 도입하기로 결정했으며, Mac Studio를 활용하여 기존 Mac Mini와의 겹치는 환경을 최소화하는 작업을 진행했습니다. 이 과정에서 QA팀은 Master Jenkins 구성에 대한 필요성을 느끼게 되었고, 모든 자동화 작업을 중앙에서 통합 관리할 수 있는 구조를 마련하기로 하였습니다.
Master Jenkins는 AWS EC2에 구축되었고, 이를 통해 Mac Mini와 Mac Studio에 설치된 Jenkins를 유기적으로 제어할 수 있는 방식을 채택했습니다. 이렇게 함으로써, 자동화 머신의 IP 주소 변경에 따른 의존성 문제를 해결하고, 중앙에서 통합 모니터링이 가능하게 되었죠. 새로운 접근 방식을 통해 QA팀은 각 머신에 분산되어 있던 설정을 중앙에서 관리하게 되어 운영 효율성이 크게 향상되었습니다. 이 점은 특히 개별 에이전트의 장애나 IP 변경이 다른 시스템에 미치는 영향을 최소화하며, 전체 테스트 자동화 프로세스를 더욱 안정적으로 운영할 수 있는 기반이 되었습니다.
미래 지향의 자동화 환경을 향한 발걸음
최종적으로 29CM QA팀은 Master Jenkins와 노드를 구성하여 깨끗하고 효율적인 자동화 환경을 완성하게 되었습니다. 새롭게 구축된 자동화 아키텍처에서는 API 서버, Slack Bolt, 테스트 결과 DB 등 모든 서비스가 EC2에서 운영되며, Mac 머신은 오로지 테스트 실행에 집중할 수 있게 배열되었습니다. 이러한 변화는 단순한 기술적 개선을 넘어, 팀 전체의 작업 효율과 성과에 많은 긍정적인 영향을 미치고 있습니다.
QA팀은 앞으로도 자동화 프레임워크나 환경을 지속적으로 발전시켜 나갈 것이며, 그 과정에서 더 많은 혁신을 이루기 위해 노력할 것입니다. 또한, 자동화 환경의 나아갈 방향에 대해 끊임없이 고민하고 있으며, 목표는 미래의 더 향상된 V3 환경으로 발전하는 것입니다. 이러한 비전을 지향하며, QA팀은 앞으로의 여정에서도 지속적인 발전을 위해 최선을 다하겠습니다.
```