
뱅크샐러드 iOS팀이 숨쉬듯이 테스트코드 짜는 방식 2편 - 화면 단위 통합 테스트
두줄요약
iOS 화면 테스트를 이미지 스냅샷과 AXSnapshot으로 나누어 개발·QA 흐름에 적용했습니다. 화면 확인 시간을 줄이고 접근성 및 UI 회귀를 자동 검증하는 방식을 소개합니다.
구조와 흐름
- 화면 단위 통합 테스트를 이미지 스냅샷과 접근성 스냅샷으로 분리
- 개발 중 스크린샷 생성·검토 후 디자인 QA를 거쳐 레퍼런스 이미지 확정
- 확정된 이미지를 CI의 픽셀 단위 회귀 검증 기준으로 활용
트레이드오프
- 디자인 시안과 실제 렌더링 간 미세한 픽셀 차이로 TDD 및 엄격한 검증 적용의 한계
- 허용 오차 확대 대신 스냅샷을 개발·QA 보조 수단으로 활용하는 방식
- 이미지 스냅샷의 낮은 문서성을 AXSnapshot 텍스트 출력으로 보완
성능/운영 포인트
- 전체 앱 실행과 화면 이동 대신 모듈 빌드·테스트 실행으로 화면 확인 시간 단축
- XCTest 첨부파일, resultBundle, xcparse를 통한 시나리오별 스크린샷 추출·공유
- 여러 시뮬레이터와 테스트 플랜 기준의 QA 결과 폴더 관리
적용해볼 점
- 접근성 속성 배열을 검증해 내부 뷰 속성 노출 없이 View-ViewModel 연결과 화면 정보를 테스트
- VoiceOver 등 보조기술 사용자 경험의 회귀 방지를 자동화 테스트로 보장
- 디자인 변경 시 첨부 스크린샷 기반 작업 모드로 전환 후 QA 완료 시 assertion 복구
