# QA Report - Redmine #4414 (dev)

- Generated: 2026-10-28T15:00:26+09:00
- Redmine: https://itsm.bix.bz/issues/4414
- QA Redmine: not created
- Subject: [BL] BO 사용자 잠금 해제 기능권한 추가 요청의 건
- Workflow Status: 준비
- Status: PASS
- Result JSON: artifacts/result-summary.json
- Roles: ADMIN -> BO
- Route Candidates: not recorded

## Scope

개발계 비스킷링크 BO 사용자 화면의 '사용자 잠금 해제' 기능권한 부여·미부여에 따른 잠금 해제 버튼 노출과 실행 QA

## Checklist

1. 사전: BO(jjmbo01) 프리셋 'ㅇㅇ'에 '사용자 잠금 해제'(UNLOCK_USER) 부여, 잠금 사용자 jjmve02(비밀번호 5회 실패로 잠금), 정상 사용자 hsjve10
2. 권한 부여: 사용자 > 잠금 상태 사용자 수정 모달에 '잠금 해제' 버튼 노출
3. 권한 부여: 정상 상태 사용자 수정 모달에는 '잠금 해제' 버튼 미노출
4. 권한 미부여: ADMIN이 프리셋에서 '사용자 잠금 해제' 해제 → 잠금 상태 사용자 수정 모달에 버튼 미노출, 잠금 해제 API 직접 호출 거부 (확인 후 다시 부여)
5. 권한 부여: 잠금 해제 버튼으로 잠금 해제 → 사용자 상태 정상
6. 잠금 해제 대상 제한: 정상 상태 사용자 API 호출 거부(잠금 상태만), 조회 범위 밖 사용자 거부

## Setup Steps

- 없음

## Source Text

요청자: 송인준
[1] QA 요청 배경
* https://itsm.bix.bz/issues/4414
[2] 사전 데이터
* 비스킷링크 BO 계정
[3] 사전 작업
* 비스킷링크 BO 계정 로그인
[4] 권한별 테스트
* BO
[5] 검증 대상
* 사용자 잠금 해제 권한 부여 후 잠금 해제 버튼
[6] 체크리스트
* BO 계정으로 사용자 잠금 해제 권한 부여 시 사용자 페이지에서 잠금 상태의 사용자 상세에서 잠금 해제 버튼 존재 확인 , 권한 미부여 또는 정상 상태 사용자는 안뜨는지 확인

## Execution Summary

- Passed: 5
- Personally Confirmed Executions: 0
- Failed: 0
- Skipped: 0
- Blocked: 0
- Flaky: 0
- Duration: 167384ms


## 한눈에 보는 결과

| 확인한 항목 | 계정 | 화면 | 수행한 동작 | 결과 | 증거 자료 |
|---|---|---|---|---|---|
| 00 사전 상태 (BO 권한 부여, 잠금 사용자) | 전체 | [4414][dev] [BL] BO 사용자 잠금 해제 기능권한 추가 요청의 건 | 전체 계정으로 [4414][dev] [BL] BO 사용자 잠금 해제 기능권한 추가 요청의 건 항목을 확인 | 기대한 동작과 일치했습니다. | [실행 기록 1](artifacts/logs/01-00-baseline.md) |
| 01 권한 부여: 잠금 사용자에만 잠금 해제 버튼 | 전체 | [4414][dev] [BL] BO 사용자 잠금 해제 기능권한 추가 요청의 건 | 전체 계정으로 [4414][dev] [BL] BO 사용자 잠금 해제 기능권한 추가 요청의 건 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/01-01-locked-modal.png)<br>[스크린샷 2](artifacts/screenshots/02-01-active-modal.png)<br>[실행 기록 1](artifacts/logs/02-01-granted-buttons.md) |
| 02 권한 미부여: 버튼 미노출·실행 불가 | 전체 | [4414][dev] [BL] BO 사용자 잠금 해제 기능권한 추가 요청의 건 | 전체 계정으로 [4414][dev] [BL] BO 사용자 잠금 해제 기능권한 추가 요청의 건 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/03-02-preset-off.png)<br>[스크린샷 2](artifacts/screenshots/04-02-locked-modal-no-permission.png)<br>[스크린샷 3](artifacts/screenshots/05-02-preset-on.png)<br>[실행 기록 1](artifacts/logs/03-02-not-granted.md) |
| 03 권한 부여: 잠금 해제 실행 | 전체 | [4414][dev] [BL] BO 사용자 잠금 해제 기능권한 추가 요청의 건 | 전체 계정으로 [4414][dev] [BL] BO 사용자 잠금 해제 기능권한 추가 요청의 건 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/06-03-unlock-result.png)<br>[스크린샷 2](artifacts/screenshots/07-03-after-unlock.png)<br>[실행 기록 1](artifacts/logs/04-03-unlock.md) |
| 04 잠금 해제 API 범위 제한 | 전체 | [4414][dev] [BL] BO 사용자 잠금 해제 기능권한 추가 요청의 건 | 전체 계정으로 [4414][dev] [BL] BO 사용자 잠금 해제 기능권한 추가 요청의 건 항목을 확인 | 기대한 동작과 일치했습니다. | [실행 기록 1](artifacts/logs/05-04-api-scope.md) |

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

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

## 수동 재현 필요

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

## 스크린샷

- 전체 / [4414][dev] [BL] BO 사용자 잠금 해제 기능권한 추가 요청의 건 / 01 권한 부여: 잠금 사용자에만 잠금 해제 버튼: [스크린샷 1](artifacts/screenshots/01-01-locked-modal.png)
- 전체 / [4414][dev] [BL] BO 사용자 잠금 해제 기능권한 추가 요청의 건 / 01 권한 부여: 잠금 사용자에만 잠금 해제 버튼: [스크린샷 2](artifacts/screenshots/02-01-active-modal.png)
- 전체 / [4414][dev] [BL] BO 사용자 잠금 해제 기능권한 추가 요청의 건 / 02 권한 미부여: 버튼 미노출·실행 불가: [스크린샷 1](artifacts/screenshots/03-02-preset-off.png)
- 전체 / [4414][dev] [BL] BO 사용자 잠금 해제 기능권한 추가 요청의 건 / 02 권한 미부여: 버튼 미노출·실행 불가: [스크린샷 2](artifacts/screenshots/04-02-locked-modal-no-permission.png)
- 전체 / [4414][dev] [BL] BO 사용자 잠금 해제 기능권한 추가 요청의 건 / 02 권한 미부여: 버튼 미노출·실행 불가: [스크린샷 3](artifacts/screenshots/05-02-preset-on.png)
- 전체 / [4414][dev] [BL] BO 사용자 잠금 해제 기능권한 추가 요청의 건 / 03 권한 부여: 잠금 해제 실행: [스크린샷 1](artifacts/screenshots/06-03-unlock-result.png)
- 전체 / [4414][dev] [BL] BO 사용자 잠금 해제 기능권한 추가 요청의 건 / 03 권한 부여: 잠금 해제 실행: [스크린샷 2](artifacts/screenshots/07-03-after-unlock.png)

## 화면 재현 기록

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

## 실행 기록

- 전체 / [4414][dev] [BL] BO 사용자 잠금 해제 기능권한 추가 요청의 건 / 00 사전 상태 (BO 권한 부여, 잠금 사용자): [실행 기록 1](artifacts/logs/01-00-baseline.md)
- 전체 / [4414][dev] [BL] BO 사용자 잠금 해제 기능권한 추가 요청의 건 / 01 권한 부여: 잠금 사용자에만 잠금 해제 버튼: [실행 기록 1](artifacts/logs/02-01-granted-buttons.md)
- 전체 / [4414][dev] [BL] BO 사용자 잠금 해제 기능권한 추가 요청의 건 / 02 권한 미부여: 버튼 미노출·실행 불가: [실행 기록 1](artifacts/logs/03-02-not-granted.md)
- 전체 / [4414][dev] [BL] BO 사용자 잠금 해제 기능권한 추가 요청의 건 / 03 권한 부여: 잠금 해제 실행: [실행 기록 1](artifacts/logs/04-03-unlock.md)
- 전체 / [4414][dev] [BL] BO 사용자 잠금 해제 기능권한 추가 요청의 건 / 04 잠금 해제 API 범위 제한: [실행 기록 1](artifacts/logs/05-04-api-scope.md)

## 자동화 원본 결과

| Scenario | Status | Duration | Screenshot | 화면 재현 기록 | Log | Error |
|---|---:|---:|---|---|---|---|
| 4414/dev/bo-user-unlock-permission.spec.ts / [4414][dev] [BL] BO 사용자 잠금 해제 기능권한 추가 요청의 건 / 00 사전 상태 (BO 권한 부여, 잠금 사용자) | PASS | 9769ms |  |  | [로그 1](artifacts/logs/01-00-baseline.md) |  |
| 4414/dev/bo-user-unlock-permission.spec.ts / [4414][dev] [BL] BO 사용자 잠금 해제 기능권한 추가 요청의 건 / 01 권한 부여: 잠금 사용자에만 잠금 해제 버튼 | PASS | 21446ms | [스크린샷 1](artifacts/screenshots/01-01-locked-modal.png)<br>[스크린샷 2](artifacts/screenshots/02-01-active-modal.png) |  | [로그 1](artifacts/logs/02-01-granted-buttons.md) |  |
| 4414/dev/bo-user-unlock-permission.spec.ts / [4414][dev] [BL] BO 사용자 잠금 해제 기능권한 추가 요청의 건 / 02 권한 미부여: 버튼 미노출·실행 불가 | PASS | 91743ms | [스크린샷 1](artifacts/screenshots/03-02-preset-off.png)<br>[스크린샷 2](artifacts/screenshots/04-02-locked-modal-no-permission.png)<br>[스크린샷 3](artifacts/screenshots/05-02-preset-on.png) |  | [로그 1](artifacts/logs/03-02-not-granted.md) |  |
| 4414/dev/bo-user-unlock-permission.spec.ts / [4414][dev] [BL] BO 사용자 잠금 해제 기능권한 추가 요청의 건 / 03 권한 부여: 잠금 해제 실행 | PASS | 43339ms | [스크린샷 1](artifacts/screenshots/06-03-unlock-result.png)<br>[스크린샷 2](artifacts/screenshots/07-03-after-unlock.png) |  | [로그 1](artifacts/logs/04-03-unlock.md) |  |
| 4414/dev/bo-user-unlock-permission.spec.ts / [4414][dev] [BL] BO 사용자 잠금 해제 기능권한 추가 요청의 건 / 04 잠금 해제 API 범위 제한 | PASS | 440ms |  |  | [로그 1](artifacts/logs/05-04-api-scope.md) |  |

## Notes

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