1:1 비디오 채팅 서비스는 E2E 회귀 테스트를 어떻게 자동화할까?
308개 테스트를 4개 플랫폼 조합으로 자동화해 102시간을 7시간으로 줄였다.
아자르는 Pytest와 Appium으로 반복되는 회귀 테스트를 자동화했다. 핵심 난제는 일반 앱과 달리 1:1 비디오 채팅처럼 다른 사용자와의 상호작용이 테스트의 일부라는 점이었다.
이를 해결하기 위해 테스트를 Non-interaction과 Interaction으로 나눴다. Interaction 테스트에서는 하나의 테스트 안에 2개의 driver를 만들고, 플랫폼 조합을 Android-Android, Android-iOS, iOS-Android, iOS-iOS로 확장해 실행할 수 있게 설계했다.
병렬 실행을 막던 문제는 두 가지였다.
- 무작위 매칭 때문에 서로 다른 테스트 시나리오의 계정이 섞여 만나는 문제
- 테스트 스텝마다 상대 액션에 의존하지 않아도 되는 부분까지 순차 실행되며 시간이 늘어나는 문제
전자는 서버 개발팀의 협조로 segment 기반 매칭 기능을 받아 해결했다. 테스트용 계정을 생성한 뒤, 메인 계정과 서브 계정에 맞는 segment를 할당해 서로의 테스트끼리만 매칭되도록 막았다.
후자는 테스트 내부에서 ThreadPoolExecutor를 사용해, 서로 독립적인 동작은 동시에 실행하도록 바꿨다. 로그인, 접속, 일부 검증 단계처럼 의존성이 없는 작업을 병렬화해 케이스당 실행 시간을 1~2분 줄였다.
플랫폼별 차이는 interface 기반 Page Object Model로 흡수했다. 테스트 코드에서는 공통 interface 타입으로 페이지 객체를 다루고, 실제 구현은 driver 주입만으로 플랫폼별 동작에 맞게 분기되도록 구성해 유지보수성을 높였다.
실행 측면에서는 pytest_addoption과 pytest_generate_tests를 활용해 플랫폼 조합별 parameter group을 만들고, 필요한 조합만 선택 실행하거나 스킵할 수 있게 했다. 그 결과 308개 테스트 케이스를 4개 조합에서 돌리는 체계를 만들었고, 사람 손으로 하면 약 102시간 걸릴 작업을 자동화로 약 7시간까지 줄였다.
이로써 반복적인 야간 회귀 테스트는 자동화로 넘기고, QA 팀은 업무 시간에 신규 기능에 대한 탐색적 테스트에 더 집중할 수 있게 됐다. 현재도 하위 버전 호환, 실행 시간 추가 단축, 이미지·음성 검증 개선, AI 기반 검증 로직 고도화 같은 과제가 남아 있다.
이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.
요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.