Agentic E2E Testing Platform
테스트 장비: 거치대에 올린 Android 2대와 iPhone 2대가 각각 인쇄된 인물 사진을 바라보고 있어, 카메라와 셀피 플로우가 늘 같은 얼굴로 실행됩니다. 베이맥스가 감독 중입니다.
AI 에이전트가 모든 Pull Request마다 모바일 앱을 처음부터 끝까지 테스트합니다. 실제 Android 기기와 iOS 시뮬레이터를 직접 조작하고, 각 단계의 증거를 남기고, 결과를 PR에 보고합니다. 손으로 작성하는 테스트 스크립트는 없습니다.
동작 방식
Pull Request
GitHub에 PR이 열리거나 업데이트되면 러너가 이를 받아 각 기기 레인에 새 빌드를 설치합니다.
에이전트가 앱을 조작
Claude Code가 PR을 읽고 무엇을 확인할지 정한 뒤, 테스터처럼 실제 앱을 탭하고 입력하고 스와이프하며 화면을 읽습니다.
이름 있는 플로우
스모크, 로그인, 생성, 페이월 등이 순서대로 실행됩니다. 플로우마다 스크린샷, 영상, 로그가 기록되고 불안정한 단계는 재시도합니다.
판정
모든 플로우에 이유가 포함된 pass/fail 판정이 붙습니다. 실행은 보관되고 요약이 PR로 돌아갑니다.
아키텍처
풀 리퀘스트 하나가 러너와 에이전트를 거쳐 세 개의 기기 레인으로 흘러가고, 증거는 콘솔로 모이며 판정은 PR로 돌아갑니다.
Android
실제 휴대폰 두 대가 독립된 레인으로 병렬 실행됩니다.
라이브 보드: 기기당 한 레인, 최근 실행과 플로우 상태.
실행 목록: 작업별로 묶인 보관 실행과 하나를 열어본 모습.
실행 상세: 플로우별 결과, 스크린샷, 증거로 남긴 로그.
iOS
별도의 Mac에서 시뮬레이터가 iOS 앱에 같은 플로우를 실행합니다.
iOS 실행 상세: 시뮬레이터에서 얻은 같은 플로우, 스크린샷, 증거.
내가 만든 것
- 실행 오케스트레이터: 기기당 한 레인, 병렬 실행, 중지 및 재시도 제어.
- 짧은 플로우 정의를 단계 예산이 있는 에이전트 액션으로 바꾸는 플로우 러너.
- 증거 수집: 모든 시도마다 스크린샷, 화면 녹화, 기기 로그.
- 라이브 상태, 보관 실행, GitHub PR 링크를 제공하는 웹 콘솔.
- 플로우별 비용과 건강도 추적으로 불안정한 플로우를 빠르게 발견.
기술 스택
사내 도구입니다. 녹화 속 이름, 식별자, PR 정보는 마스킹했습니다.
프로젝트