# QA Report - Redmine #4297 (dev)

- Generated: 2026-10-17T23:42:31+09:00
- Redmine: https://itsm.bix.bz/issues/4297
- QA Redmine: not created
- Subject: [BP] 앱 서비스 정보 호출 실패 원인 분석을 위한 로그 수집 기능 추가 요청의 건
- Workflow Status: 준비
- Status: PASS
- Result JSON: artifacts/result-summary.json
- Roles: VE
- Route Candidates: not recorded

## Scope

개발계 비스킷페이 웹 서비스 정보(login-before) 조회 실패 진단 알림 QA

## Checklist

1. 요청 조작은 Playwright로 재현: login-before 요청 차단(Request blocking), 상태 코드 500(본문은 서버 응답 그대로, Override), 200 + <html>test</html>. 브라우저가 Google Chat(개발 스페이스)으로 보내는 알림 본문과 전송 응답(200)을 기록
2. 1. 요청 차단: 화면 '일시적인 오류가 발생했습니다' + NET-xxxx, 알림 1건, 발생 계기 '로그인 화면 진입', 요청 결과 '응답 없음'
3. 2. 서버 오류 500: 화면 H500-xxxx, 알림에 HTTP 500과 서버 응답
4. 3. 응답 형식 이상: 화면 오류 코드, 알림 응답 본문 <html>test</html>
5. 4. 다시 시도 2회: 누를 때마다 알림 1건, '다시 시도 버튼 (1회째)·(2회째)', 화면 오류 코드 매번 새 값
6. 5. 로그인 버튼(가짜 아이디·비밀번호, 차단 상태): 토스트에 (오류 코드: …), 발생 계기 '로그인 버튼', 입력값 알림 미포함
7. 6. 계정 복구 화면: 발생 계기 '계정 복구 화면' (링크 결제 화면은 요청자 확인으로 제외)
8. 7. 화면과 알림 제목의 오류 코드 일치
9. 8. 정상 상황: 조작 없이 로그인까지 진행, 알림 0건
10. 9. 알림 내용: 📍 발생·💻 환경·🌐 요청·🧾 응답 처리 섹션, 요청마다 시각·소요 시간(ms)·요청ID, 개인정보 없음

## Setup Steps

- 없음

## Source Text

요청자: 송인준
[1] QA 요청 배경
* https://itsm.bix.bz/issues/4297
[2] 사전 데이터
* 비스킷페이 계정
[3] 사전 작업
* 비스킷페이 계정 준비
[4] 권한별 테스트
* (로그인 전 화면, 정상 로그인 확인은 VE)
[5] 검증 대상
* 비스킷페이
[6] 체크리스트
* 서비스 정보(login-before) 조회 실패 시 Google Chat(비스킷링크 웹훅 테스트 방) 알림: 요청 차단, 서버 오류 500, 응답 형식 이상, 다시 시도 2회, 로그인 버튼, 계정 복구 화면, 링크 결제 화면, 화면·알림 오류 코드 일치, 정상 상황 알림 없음, 알림 내용(섹션·시각·ms·요청ID·개인정보 없음)

## Execution Summary

- Passed: 6
- Failed: 0
- Skipped: 0
- Blocked: 0
- Flaky: 0
- Duration: 64131ms


## 한눈에 보는 결과

| 확인한 항목 | 계정 | 화면 | 수행한 동작 | 결과 | 증거 자료 |
|---|---|---|---|---|---|
| QA 시작 전 대상 계정 로그인 | 전체 | [4297][dev] [BP] 앱 서비스 정보 호출 실패 원인 분석을 위한 로그 수집 기능 추가 요청의 건 | 전체 계정으로 [4297][dev] [BP] 앱 서비스 정보 호출 실패 원인 분석을 위한 로그 수집 기능 추가 요청의 건 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/01-01-blocked-sign-in.png)<br>[실행 기록 1](artifacts/logs/01-01-blocked.md) |
| 2. 서버 오류(500) → H500 코드 + 알림에 HTTP 500·서버 응답 | 전체 | [4297][dev] [BP] 앱 서비스 정보 호출 실패 원인 분석을 위한 로그 수집 기능 추가 요청의 건 | 전체 계정으로 [4297][dev] [BP] 앱 서비스 정보 호출 실패 원인 분석을 위한 로그 수집 기능 추가 요청의 건 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/02-02-http500-sign-in.png)<br>[실행 기록 1](artifacts/logs/02-02-http500.md) |
| 3. 응답 형식 이상(200 + HTML) → 오류 코드 + 알림 응답 본문 | 전체 | [4297][dev] [BP] 앱 서비스 정보 호출 실패 원인 분석을 위한 로그 수집 기능 추가 요청의 건 | 전체 계정으로 [4297][dev] [BP] 앱 서비스 정보 호출 실패 원인 분석을 위한 로그 수집 기능 추가 요청의 건 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/03-03-html-sign-in.png)<br>[실행 기록 1](artifacts/logs/03-03-html.md) |
| 6. 계정 복구 화면: 발생 계기 '계정 복구 화면' (링크 결제 화면은 요청자 확인으로 제외) | 전체 | [4297][dev] [BP] 앱 서비스 정보 호출 실패 원인 분석을 위한 로그 수집 기능 추가 요청의 건 | 전체 기준으로 비스킷페이 계정 복구 화면에서 대상 사용자 상태와 복구 흐름을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/04-04-retry-2.png)<br>[스크린샷 2](artifacts/screenshots/05-05-sign-in-button-toast.png)<br>[스크린샷 3](artifacts/screenshots/06-06-restore.png)<br>[실행 기록 1](artifacts/logs/04-04-06-blocked-paths.md) |
| 7. 화면과 알림의 오류 코드 일치 | 전체 | [4297][dev] [BP] 앱 서비스 정보 호출 실패 원인 분석을 위한 로그 수집 기능 추가 요청의 건 | 전체 계정으로 [4297][dev] [BP] 앱 서비스 정보 호출 실패 원인 분석을 위한 로그 수집 기능 추가 요청의 건 항목을 확인 | 기대한 동작과 일치했습니다. | [실행 기록 1](artifacts/logs/05-07-code-match.md) |
| QA 시작 전 대상 계정 로그인 | 전체 | [4297][dev] [BP] 앱 서비스 정보 호출 실패 원인 분석을 위한 로그 수집 기능 추가 요청의 건 | 전체 계정으로 [4297][dev] [BP] 앱 서비스 정보 호출 실패 원인 분석을 위한 로그 수집 기능 추가 요청의 건 항목을 확인 | 기대한 동작과 일치했습니다. | [실행 기록 1](artifacts/logs/06-08-normal.md) |

## 실패 또는 확인 불가 상세

- 실패 또는 확인 불가 항목이 없습니다.

## 수동 재현 필요

- 수동 재현이 필요한 항목이 없습니다.

## 스크린샷

- 전체 / [4297][dev] [BP] 앱 서비스 정보 호출 실패 원인 분석을 위한 로그 수집 기능 추가 요청의 건 / QA 시작 전 대상 계정 로그인: [스크린샷 1](artifacts/screenshots/01-01-blocked-sign-in.png)
- 전체 / [4297][dev] [BP] 앱 서비스 정보 호출 실패 원인 분석을 위한 로그 수집 기능 추가 요청의 건 / 2. 서버 오류(500) → H500 코드 + 알림에 HTTP 500·서버 응답: [스크린샷 1](artifacts/screenshots/02-02-http500-sign-in.png)
- 전체 / [4297][dev] [BP] 앱 서비스 정보 호출 실패 원인 분석을 위한 로그 수집 기능 추가 요청의 건 / 3. 응답 형식 이상(200 + HTML) → 오류 코드 + 알림 응답 본문: [스크린샷 1](artifacts/screenshots/03-03-html-sign-in.png)
- 전체 / [4297][dev] [BP] 앱 서비스 정보 호출 실패 원인 분석을 위한 로그 수집 기능 추가 요청의 건 / 6. 계정 복구 화면: 발생 계기 '계정 복구 화면' (링크 결제 화면은 요청자 확인으로 제외): [스크린샷 1](artifacts/screenshots/04-04-retry-2.png)
- 전체 / [4297][dev] [BP] 앱 서비스 정보 호출 실패 원인 분석을 위한 로그 수집 기능 추가 요청의 건 / 6. 계정 복구 화면: 발생 계기 '계정 복구 화면' (링크 결제 화면은 요청자 확인으로 제외): [스크린샷 2](artifacts/screenshots/05-05-sign-in-button-toast.png)
- 전체 / [4297][dev] [BP] 앱 서비스 정보 호출 실패 원인 분석을 위한 로그 수집 기능 추가 요청의 건 / 6. 계정 복구 화면: 발생 계기 '계정 복구 화면' (링크 결제 화면은 요청자 확인으로 제외): [스크린샷 3](artifacts/screenshots/06-06-restore.png)

## 화면 재현 기록

- 화면 재현 기록 자료가 없습니다.
- 화면 재현 기록은 기본적으로 실패/확인불가 항목에 한해 포함합니다. PASS 항목 trace까지 필요하면 `QA_PUBLISH_TRACE=1 npm run qa:report -- --issue <id> --env <env>`로 내부 제출용 산출물을 생성합니다.

## 실행 기록

- 전체 / [4297][dev] [BP] 앱 서비스 정보 호출 실패 원인 분석을 위한 로그 수집 기능 추가 요청의 건 / QA 시작 전 대상 계정 로그인: [실행 기록 1](artifacts/logs/01-01-blocked.md)
- 전체 / [4297][dev] [BP] 앱 서비스 정보 호출 실패 원인 분석을 위한 로그 수집 기능 추가 요청의 건 / 2. 서버 오류(500) → H500 코드 + 알림에 HTTP 500·서버 응답: [실행 기록 1](artifacts/logs/02-02-http500.md)
- 전체 / [4297][dev] [BP] 앱 서비스 정보 호출 실패 원인 분석을 위한 로그 수집 기능 추가 요청의 건 / 3. 응답 형식 이상(200 + HTML) → 오류 코드 + 알림 응답 본문: [실행 기록 1](artifacts/logs/03-03-html.md)
- 전체 / [4297][dev] [BP] 앱 서비스 정보 호출 실패 원인 분석을 위한 로그 수집 기능 추가 요청의 건 / 6. 계정 복구 화면: 발생 계기 '계정 복구 화면' (링크 결제 화면은 요청자 확인으로 제외): [실행 기록 1](artifacts/logs/04-04-06-blocked-paths.md)
- 전체 / [4297][dev] [BP] 앱 서비스 정보 호출 실패 원인 분석을 위한 로그 수집 기능 추가 요청의 건 / 7. 화면과 알림의 오류 코드 일치: [실행 기록 1](artifacts/logs/05-07-code-match.md)
- 전체 / [4297][dev] [BP] 앱 서비스 정보 호출 실패 원인 분석을 위한 로그 수집 기능 추가 요청의 건 / QA 시작 전 대상 계정 로그인: [실행 기록 1](artifacts/logs/06-08-normal.md)

## 자동화 원본 결과

| Scenario | Status | Duration | Screenshot | 화면 재현 기록 | Log | Error |
|---|---:|---:|---|---|---|---|
| 4297/dev/store-tenant-diagnostics.spec.ts / [4297][dev] [BP] 앱 서비스 정보 호출 실패 원인 분석을 위한 로그 수집 기능 추가 요청의 건 / 1. 요청 차단 → 로그인 화면 진입 알림 + 알림 내용 | PASS | 6517ms | [스크린샷 1](artifacts/screenshots/01-01-blocked-sign-in.png) |  | [로그 1](artifacts/logs/01-01-blocked.md) |  |
| 4297/dev/store-tenant-diagnostics.spec.ts / [4297][dev] [BP] 앱 서비스 정보 호출 실패 원인 분석을 위한 로그 수집 기능 추가 요청의 건 / 2. 서버 오류(500) → H500 코드 + 알림에 HTTP 500·서버 응답 | PASS | 7592ms | [스크린샷 1](artifacts/screenshots/02-02-http500-sign-in.png) |  | [로그 1](artifacts/logs/02-02-http500.md) |  |
| 4297/dev/store-tenant-diagnostics.spec.ts / [4297][dev] [BP] 앱 서비스 정보 호출 실패 원인 분석을 위한 로그 수집 기능 추가 요청의 건 / 3. 응답 형식 이상(200 + HTML) → 오류 코드 + 알림 응답 본문 | PASS | 5169ms | [스크린샷 1](artifacts/screenshots/03-03-html-sign-in.png) |  | [로그 1](artifacts/logs/03-03-html.md) |  |
| 4297/dev/store-tenant-diagnostics.spec.ts / [4297][dev] [BP] 앱 서비스 정보 호출 실패 원인 분석을 위한 로그 수집 기능 추가 요청의 건 / 4~6. 차단 유지: 다시 시도 2회 → 로그인 버튼 → 계정 복구 화면 | PASS | 30657ms | [스크린샷 1](artifacts/screenshots/04-04-retry-2.png)<br>[스크린샷 2](artifacts/screenshots/05-05-sign-in-button-toast.png)<br>[스크린샷 3](artifacts/screenshots/06-06-restore.png) |  | [로그 1](artifacts/logs/04-04-06-blocked-paths.md) |  |
| 4297/dev/store-tenant-diagnostics.spec.ts / [4297][dev] [BP] 앱 서비스 정보 호출 실패 원인 분석을 위한 로그 수집 기능 추가 요청의 건 / 7. 화면과 알림의 오류 코드 일치 | PASS | 0ms |  |  | [로그 1](artifacts/logs/05-07-code-match.md) |  |
| 4297/dev/store-tenant-diagnostics.spec.ts / [4297][dev] [BP] 앱 서비스 정보 호출 실패 원인 분석을 위한 로그 수집 기능 추가 요청의 건 / 8. 정상 상황: 로그인까지 알림 없음 | PASS | 13741ms |  |  | [로그 1](artifacts/logs/06-08-normal.md) |  |

## Notes

- Playwright 실행 결과를 기준으로 작성되었습니다.
- 검토 후 `qa:redmine:update`로 report/evidence를 업로드하고 QA subissue 상태를 갱신합니다.
