Skip to content

Latest commit

 

History

History
83 lines (76 loc) · 7.26 KB

File metadata and controls

83 lines (76 loc) · 7.26 KB

PIXEL PANIC QA 체크리스트

자동 검증

  • 같은 시드의 초기 상태가 동일하다.
  • 사고 확산 타이머와 후속 사고 활성화가 동작한다.
  • 선행 조치 후 해결 사고가 다시 확산하지 않는다.
  • 올바른 콤보 순서는 인정하고 역순은 거부한다.
  • 콤보 정의가 정확히 5개다.
  • 보존율과 구조·콤보 조건으로 등급을 계산한다.
  • Vercel 대화 프록시가 입력과 OCI 응답을 검증한다.
  • OCI 미설정, timeout, 429, 5xx, 잘못된 JSON은 정적 대사로 끝난다.
  • OCI /api/dialogue는 Bearer 인증과 본문 schema를 먼저 검사한다.
  • NPC 대화는 선택지 없는 요청만 허용하고 캐릭터별 폴백을 반환한다.
  • Vercel과 OCI /api/quiz가 사고·행동 입력과 3지선다 구조화 출력을 검증한다.
  • 최근 안전 질문 48개는 재출동·새로고침 뒤에도 보존되며, 동일·유사 질문은 재생성하고 문제 순서·웨이브에 따라 난이도가 상승한다.
  • NPC를 다시 클릭해도 생성형 AI를 재호출하며 한 작전에서 이미 표시한 대사는 다시 채택하지 않는다.
  • AI 장애·timeout·잘못된 퀴즈 응답은 11개 사고별 로컬 안전 문제로 폴백한다.
  • Vercel과 OCI /api/bomb-hint가 빨강·파랑 정답 색과 생성형 무전 응답을 검증하고 로컬 힌트로 폴백한다.
  • Vercel과 OCI /api/news가 실제 결과 기록과 허용된 인터뷰 주민을 검증하고 구조화 기사 응답을 반환한다.
  • AI 뉴스 장애·timeout·잘못된 응답은 동일한 게임 기록을 사용한 로컬판 기사로 폴백한다.
  • 안전 퀴즈 정답 전에는 임무 시간이 끝나도 사고가 자동 해결되지 않는다.
  • 고양이 이동 범위, 1초 추락 예고, 쿠션 충돌 범위와 미니게임 성공·실패 엔진 판정을 검증한다.
  • 폭탄 정답 전선은 시드·시도 횟수로 결정되고 성공은 사고 해결, 실패는 재도전을 허용한다.
  • 세 웨이브 모두 고양이 구조와 폭탄 해체를 포함하며, 두 임무를 해결하기 전에는 다음 스테이지로 넘어가지 않는다.
  • 다음 웨이브에서 고양이·폭탄 상태와 완료 행동은 새로 초기화되고 누적 해결 임무 수는 줄지 않는다.
  • 맵 9종의 크기·색상 모드·런타임 등록을 검증한다.
  • TypeScript, Next.js production build, 저장소 정책 검사를 통과한다.

브라우저 검증

  • 키보드와 자연어 입력창 없이 시작할 수 있다.
  • 사고 → 로봇 → 행동을 클릭해 작업이 시작된다.
  • 출동 로봇이 행동 종류의 공용 지점이 아닌 선택한 사고의 실제 맵 좌표에 도착한다.
  • 로봇이 목표까지 직선 비행하지 않고 맵별 도로 경유점과 보행 스텝을 따라 이동한다.
  • 로봇이 목표 좌표에 도착한 뒤에만 해당 사고의 AI 안전 퀴즈가 열린다.
  • 고양이 사고는 BUDDY 도착 뒤 안전 퀴즈 대신 쿠션 캐치 팝업을 열고 작전 타이머를 멈춘다.
  • 지붕 위 고양이가 불규칙하게 이동하고 예고 1초 뒤 낙하하며, 클릭·드래그·좌우 버튼으로 BUDDY를 조작한다.
  • 쿠션 캐치 성공은 고양이 사고를 해결하고 실패는 사고를 남겨 재도전을 허용한다.
  • 폭탄 사고는 FIX 도착 뒤 본부 AI 아바타·무전 말풍선과 빨강·파랑 전선 팝업을 열고, 정답과 오답 결과를 각각 표시한다.
  • 오답은 출동 임무를 해결하지 않고 재선택을 허용하며, 정답은 행동·사고 해결을 확정한다.
  • 퀴즈를 읽고 답하는 동안 작전·확산 타이머가 멈춘다.
  • 로봇을 선택하면 해당 로봇과 사고에 맞는 행동 팝업이 열리고 실행 후 자동으로 닫힌다.
  • 클릭 구조 매뉴얼은 닫기 X 없이 표시되고 확인을 누르면 타이틀(Index) 화면으로 돌아간다.
  • 하단 HUD는 작은 작전 로그만 표시하고 단계 진행·점수·콤보 패널은 렌더링하지 않는다.
  • 게임 지도는 하단 빈 공간 없이 스테이지 높이를 채우고 작은 작전 로그만 겹쳐 표시한다.
  • 임무 중 로봇의 중복 배치를 막는다.
  • 대화 폴백에서 선택 후 게임이 계속된다.
  • 대화 중 게임 타이머가 감속한다.
  • 3웨이브 브리핑이 표시된다.
  • 현재 웨이브의 재난을 모두 해결하면 예약 시각을 기다리지 않고 중간 뉴스가 표시되며, 출동 버튼으로 다음 웨이브가 즉시 활성화된다.
  • 11개 사고 유형, 15개 스테이지 임무, 매 웨이브 반복되는 2개 미니게임과 5개 콤보를 거쳐 결과 화면에 도달한다.
  • 결과 화면에서 AI 마을 뉴스 팝업을 열면 실제 구조 수치와 지정 주민 인터뷰가 표시된다.
  • 다시 출동이 초기 상태를 복원한다.
  • 일시정지와 작전 포기가 동작한다.
  • 1280×720에서 HUD와 패널을 읽고 클릭할 수 있다.
  • 1024×576, 1920×1080, 모바일 가로 화면에서 1280×720 스테이지가 비율에 맞게 축소된다.
  • 모바일 세로 화면에서 회전 안내가 표시된다.
  • 사고 카드가 실제 시설 위치에 분산되고 연결선의 타깃 점이 사고 현장을 가리키며 카드끼리 겹치지 않는다.
  • 사고 목록에서 항목을 선택하면 해당 현장이 좌우 메뉴 사이의 안전 영역에 자동으로 들어온다.
  • 대화창 화살표가 선택한 사고를 가리킨다.
  • 지도를 좌우로 드래그하면 배경·로봇·사고 핀이 함께 이동하고 HUD는 고정된다.
  • 지도 커서가 대기 중 grab, 드래그 중 grabbing으로 바뀐다.
  • NPC 클릭 시 캐릭터 성격에 맞는 AI 말풍선이 현장 위치에 표시되고 닫힌다.
  • 웨이브와 재도전에 따라 9종 맵이 순환하며 신규 4종은 고유 NPC·사고·로봇 좌표와 이동 경로를 사용한다.
  • 첫 타이틀 진입에서 전용 BGM을 요청하고 자동 재생이 차단되면 첫 사용자 입력에서 재생한다.
  • 게임 시작 시 타이틀 BGM이 임무 BGM으로 전환되고 음소거·일시정지 상태를 따른다.
  • 브라우저 콘솔에 치명적 오류가 없다.

공개 배포에서 다시 확인할 항목

  • 시크릿 창에서 로그인 없이 첫 화면이 열린다.
  • 실제 Vercel URL에서 한 판을 3회 연속 완주한다.
  • OCI /health가 정상 응답한다.
  • 실제 대화 응답이 5초 안에 오거나 폴백된다.
  • 실제 안전 퀴즈 응답이 5초 안에 오거나 사고별 로컬 문제로 폴백된다.
  • 실제 본부 AI 폭탄 무전이 5초 안에 오거나 정답 색에 맞는 로컬 힌트로 폴백된다.
  • 실제 결과 뉴스가 5초 안에 오거나 같은 기록의 로컬판 기사로 폴백된다.
  • OCI 컨테이너를 중지해도 정적 대사로 완주한다.
  • 브라우저 번들과 네트워크에 API 키, OCI 토큰이 없다.
  • Chrome과 Safari 또는 Edge에서 최종 점검한다.

로컬 전체 검증은 npm run build:test && npm run qa:full로 실행합니다. 유료 OpenAI 호출은 기본 QA에 포함하지 않습니다.