피드로 돌아가기
InfoQInfoQ
DevOps

Swift Testing 전환을 통한 CI 테스트 속도 60% 개선 및 인프라 비용 절감

DoorDash Used Copilot to Convert Its XCTest-Based iOS Test Suite to Swift Testing

Sergio De Simone2026년 5월 4일3intermediate

Context

XCTest 기반의 순차적 테스트 실행으로 인한 CI 파이프라인 병목 발생. 앱 및 공유 패키지 규모 확장에 따라 테스트 단계가 수십 분까지 증가하며 엔지니어의 반복 주기(Iteration) 저하 초래.

Technical Solution

  • Parallel Execution 지원 Swift Testing 도입을 통한 동기/비동기 코드 테스트 처리 속도 최적화
  • Cursor와 Custom MCP Server를 활용하여 Xcode 빌드 및 테스트 실행을 에디터 내에서 제어하는 개발 환경 구축
  • XCTAssert를 #expect로 변환하고 @Test 매크로를 삽입하는 Migration Rule 정의로 구문 변환 자동화
  • 10회 연속 통과(Ten consecutive runs) 원칙을 적용한 Reliability Gate 구축으로 테스트 Flakiness 원천 차단
  • Bazel 기반의 에이전트 워크플로우 통합을 통해 로컬 테스트 실행과 오류 수정을 반복하는 Iterative Loop 구현
  • 병렬 모델 도입 과정에서 드러난 Shared State 및 Order Dependency 등 잠재적 설계 결함 식별 및 해결

1. AI 마이그레이션 시 구문 변환 자동화 규칙(Migration Rule)을 정의하여 엔지니어의 검수 범위를 논리적 정밀도로 제한할 것

2. 병렬 테스트 도입 시 기존 순차 실행에서 숨겨졌던 상태 공유(Shared State) 및 의존성 문제를 전수 조사할 것

3. 테스트 신뢰성 확보를 위해 단일 통과가 아닌 'N회 연속 통과' 기준의 품질 게이트를 설정할 것

4. IDE와 빌드 시스템(Bazel 등)을 연결하는 MCP 서버 형태의 인터페이스를 구축하여 피드백 루프를 최소화할 것

원문 읽기