# QA Report - Redmine #4192 (dev)

- Generated: 2026-10-06T17:13:37+09:00
- Redmine: https://itsm.bix.bz/issues/4192
- QA Redmine: https://itsm.bix.bz/issues/4249
- Subject: QA checklist for #4192
- Workflow Status: 완료
- Status: PASS
- Result JSON: artifacts/result-summary.json
- Roles: ADMIN -> TA -> CO -> BO
- Route Candidates: not recorded

## Scope

개발계 업체관리 > 사용자관리 > 사용자: 영업점(#4192)·프리셋명(#4216) 검색 필터 추가 및 목록·엑셀 동작 재QA

## Checklist

1. ADMIN·TA·CO·BO 사용자 화면에 '영업점' 검색 필터가 추가됐는지 확인
2. 영업점 A_주홍석_영업1 선택 후 검색 → 목록이 선택 영업점 소속 + 현재 영업라인 하위 부서 사용자와 일치 (role별 조회 가능 범위 안에서 비교)
3. 기대 사용자는 영업라인 API에서 선택 영업점보다 아래에 있는 부서 + 선택 영업점 소속 사용자로 계산
4. 영업점 엑셀(ADMIN·TA·CO): 엑셀 ▾ > 사용자 일괄등록 양식 받기 > 데이터 포함 요청에 영업점 조건이 전달되고, 파일 행·소속이 목록과 일치 (비밀번호 포함 안 함)
5. 프리셋명 필터(#4216, ADMIN·TA·CO·BO): 선택지가 조회 가능한 사용자의 프리셋명 목록(GET /api/v2/users/role-permission-preset-names)과 일치
6. 프리셋 선택(ADMIN·TA '부서상용버전', CO·BO 've1') 시 목록이 해당 프리셋 사용자와 정확히 일치, 엑셀(ADMIN·TA·CO) 요청에 프리셋명 조건 전달·행 수·소속 일치
7. BO는 엑셀 메뉴가 데이터 없는 빈 양식만 내려받아 엑셀 비교 제외(BO 엑셀은 권한상 제한이 정상)
8. 1차 QA(2026-10-06 13:5x)에서 삭제된 영업라인 closure로 가맹4_루시페이먼츠 사용자 2명이 포함된 FAIL → 백엔드 수정(0031b421e9) 후 재QA
9. 2차 QA(2026-10-06 15:2x) CO 프리셋 선택지 없음 FAIL → 프리셋명 선택지 API 변경·BO 노출(399935fb6f, 04e81756a) 후 3차 재QA

## Setup Steps

- 없음

## Source Text

요청자: 송인준
[1] QA 요청 배경
* https://itsm.bix.bz/issues/4192
* https://itsm.bix.bz/issues/4216
[2] 사전 데이터
* 비스킷링크 ADMIN,TA,CO,BO 계정
[3] 사전 작업
* 비스킷링크 ADMIN,TA,CO,BO 계정 로그인
[4] 권한별 테스트
* ADMIN,TA,CO,BO 계정 로그인
[5] 검증 대상
* 업체관리 > 사용자관리 > 사용자 페이지
[6] 체크리스트
* 영업점 검색 필터 추가 확인
* 영업점 검색 필터 정상 동작 확인 ( 엑셀, 목록 확인 )
* 프리셋 검색 필터 추가 확인
* 프리셋 검색 필터 정상 동작 확인 ( 엑셀, 목록 확인 )

## Execution Summary

- Passed: 11
- Failed: 0
- Skipped: 0
- Blocked: 0
- Flaky: 0
- Duration: 188062ms


## 한눈에 보는 결과

| 확인한 항목 | 계정 | 화면 | 수행한 동작 | 결과 | 증거 자료 |
|---|---|---|---|---|---|
| 영업점 필터 목록 | ADMIN - 사용자 | [ADMIN] 사용자 | ADMIN - 사용자 계정으로 [ADMIN] 사용자 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/01-ADMIN-branch-filter.png)<br>[실행 기록 1](artifacts/logs/01-ADMIN-branch-filter.md) |
| 영업점 필터 엑셀 | ADMIN - 사용자 | [ADMIN] 사용자 | ADMIN - 사용자 계정으로 [ADMIN] 사용자 엑셀 다운로드를 시도하고 화면 범위와 파일 범위를 비교 | 기대한 동작과 일치했습니다. | [실행 기록 1](artifacts/logs/02-ADMIN-branch-excel.md) |
| 프리셋명 필터 목록·엑셀 | ADMIN - 사용자 | [ADMIN] 사용자 | ADMIN - 사용자 계정으로 [ADMIN] 사용자 엑셀 다운로드를 시도하고 화면 범위와 파일 범위를 비교 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/02-ADMIN-preset-filter.png)<br>[실행 기록 1](artifacts/logs/03-ADMIN-preset-filter.md) |
| 영업점 필터 목록 | TA - 사용자 | [TA] 사용자 | TA - 사용자 계정으로 [TA] 사용자 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/03-TA-branch-filter.png)<br>[실행 기록 1](artifacts/logs/04-TA-branch-filter.md) |
| 영업점 필터 엑셀 | TA - 사용자 | [TA] 사용자 | TA - 사용자 계정으로 [TA] 사용자 엑셀 다운로드를 시도하고 화면 범위와 파일 범위를 비교 | 기대한 동작과 일치했습니다. | [실행 기록 1](artifacts/logs/05-TA-branch-excel.md) |
| 프리셋명 필터 목록·엑셀 | TA - 사용자 | [TA] 사용자 | TA - 사용자 계정으로 [TA] 사용자 엑셀 다운로드를 시도하고 화면 범위와 파일 범위를 비교 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/04-TA-preset-filter.png)<br>[실행 기록 1](artifacts/logs/06-TA-preset-filter.md) |
| 영업점 필터 목록 | CO - 사용자 | [CO] 사용자 | CO - 사용자 계정으로 [CO] 사용자 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/05-CO-branch-filter.png)<br>[실행 기록 1](artifacts/logs/07-CO-branch-filter.md) |
| 영업점 필터 엑셀 | CO - 사용자 | [CO] 사용자 | CO - 사용자 계정으로 [CO] 사용자 엑셀 다운로드를 시도하고 화면 범위와 파일 범위를 비교 | 기대한 동작과 일치했습니다. | [실행 기록 1](artifacts/logs/08-CO-branch-excel.md) |
| 프리셋명 필터 목록·엑셀 | CO - 사용자 | [CO] 사용자 | CO - 사용자 계정으로 [CO] 사용자 엑셀 다운로드를 시도하고 화면 범위와 파일 범위를 비교 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/06-CO-preset-filter.png)<br>[실행 기록 1](artifacts/logs/09-CO-preset-filter.md) |
| 영업점 필터 목록 | BO - 사용자 | [BO] 사용자 | BO - 사용자 계정으로 [BO] 사용자 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/07-BO-branch-filter.png)<br>[실행 기록 1](artifacts/logs/10-BO-branch-filter.md) |
| 프리셋명 필터 목록 | BO - 사용자 | [BO] 사용자 | BO - 사용자 계정으로 [BO] 사용자 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/08-BO-preset-filter.png)<br>[실행 기록 1](artifacts/logs/11-BO-preset-filter.md) |

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

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

## 수동 재현 필요

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

## 스크린샷

- ADMIN - 사용자 / [ADMIN] 사용자 / 영업점 필터 목록: [스크린샷 1](artifacts/screenshots/01-ADMIN-branch-filter.png)
- ADMIN - 사용자 / [ADMIN] 사용자 / 프리셋명 필터 목록·엑셀: [스크린샷 1](artifacts/screenshots/02-ADMIN-preset-filter.png)
- TA - 사용자 / [TA] 사용자 / 영업점 필터 목록: [스크린샷 1](artifacts/screenshots/03-TA-branch-filter.png)
- TA - 사용자 / [TA] 사용자 / 프리셋명 필터 목록·엑셀: [스크린샷 1](artifacts/screenshots/04-TA-preset-filter.png)
- CO - 사용자 / [CO] 사용자 / 영업점 필터 목록: [스크린샷 1](artifacts/screenshots/05-CO-branch-filter.png)
- CO - 사용자 / [CO] 사용자 / 프리셋명 필터 목록·엑셀: [스크린샷 1](artifacts/screenshots/06-CO-preset-filter.png)
- BO - 사용자 / [BO] 사용자 / 영업점 필터 목록: [스크린샷 1](artifacts/screenshots/07-BO-branch-filter.png)
- BO - 사용자 / [BO] 사용자 / 프리셋명 필터 목록: [스크린샷 1](artifacts/screenshots/08-BO-preset-filter.png)

## 화면 재현 기록

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

## 실행 기록

- ADMIN - 사용자 / [ADMIN] 사용자 / 영업점 필터 목록: [실행 기록 1](artifacts/logs/01-ADMIN-branch-filter.md)
- ADMIN - 사용자 / [ADMIN] 사용자 / 영업점 필터 엑셀: [실행 기록 1](artifacts/logs/02-ADMIN-branch-excel.md)
- ADMIN - 사용자 / [ADMIN] 사용자 / 프리셋명 필터 목록·엑셀: [실행 기록 1](artifacts/logs/03-ADMIN-preset-filter.md)
- TA - 사용자 / [TA] 사용자 / 영업점 필터 목록: [실행 기록 1](artifacts/logs/04-TA-branch-filter.md)
- TA - 사용자 / [TA] 사용자 / 영업점 필터 엑셀: [실행 기록 1](artifacts/logs/05-TA-branch-excel.md)
- TA - 사용자 / [TA] 사용자 / 프리셋명 필터 목록·엑셀: [실행 기록 1](artifacts/logs/06-TA-preset-filter.md)
- CO - 사용자 / [CO] 사용자 / 영업점 필터 목록: [실행 기록 1](artifacts/logs/07-CO-branch-filter.md)
- CO - 사용자 / [CO] 사용자 / 영업점 필터 엑셀: [실행 기록 1](artifacts/logs/08-CO-branch-excel.md)
- CO - 사용자 / [CO] 사용자 / 프리셋명 필터 목록·엑셀: [실행 기록 1](artifacts/logs/09-CO-preset-filter.md)
- BO - 사용자 / [BO] 사용자 / 영업점 필터 목록: [실행 기록 1](artifacts/logs/10-BO-branch-filter.md)
- BO - 사용자 / [BO] 사용자 / 프리셋명 필터 목록: [실행 기록 1](artifacts/logs/11-BO-preset-filter.md)

## 자동화 원본 결과

| Scenario | Status | Duration | Screenshot | 화면 재현 기록 | Log | Error |
|---|---:|---:|---|---|---|---|
| 4192/dev/user-branch-office-filter.spec.ts / [4192][dev] QA checklist for #4192 / [ADMIN] 사용자 / 영업점 필터 목록 | PASS | 17198ms | [스크린샷 1](artifacts/screenshots/01-ADMIN-branch-filter.png) |  | [로그 1](artifacts/logs/01-ADMIN-branch-filter.md) |  |
| 4192/dev/user-branch-office-filter.spec.ts / [4192][dev] QA checklist for #4192 / [ADMIN] 사용자 / 영업점 필터 엑셀 | PASS | 16758ms |  |  | [로그 1](artifacts/logs/02-ADMIN-branch-excel.md) |  |
| 4192/dev/user-branch-office-filter.spec.ts / [4192][dev] QA checklist for #4192 / [ADMIN] 사용자 / 프리셋명 필터 목록·엑셀 | PASS | 19862ms | [스크린샷 1](artifacts/screenshots/02-ADMIN-preset-filter.png) |  | [로그 1](artifacts/logs/03-ADMIN-preset-filter.md) |  |
| 4192/dev/user-branch-office-filter.spec.ts / [4192][dev] QA checklist for #4192 / [TA] 사용자 / 영업점 필터 목록 | PASS | 16054ms | [스크린샷 1](artifacts/screenshots/03-TA-branch-filter.png) |  | [로그 1](artifacts/logs/04-TA-branch-filter.md) |  |
| 4192/dev/user-branch-office-filter.spec.ts / [4192][dev] QA checklist for #4192 / [TA] 사용자 / 영업점 필터 엑셀 | PASS | 20648ms |  |  | [로그 1](artifacts/logs/05-TA-branch-excel.md) |  |
| 4192/dev/user-branch-office-filter.spec.ts / [4192][dev] QA checklist for #4192 / [TA] 사용자 / 프리셋명 필터 목록·엑셀 | PASS | 18361ms | [스크린샷 1](artifacts/screenshots/04-TA-preset-filter.png) |  | [로그 1](artifacts/logs/06-TA-preset-filter.md) |  |
| 4192/dev/user-branch-office-filter.spec.ts / [4192][dev] QA checklist for #4192 / [CO] 사용자 / 영업점 필터 목록 | PASS | 12448ms | [스크린샷 1](artifacts/screenshots/05-CO-branch-filter.png) |  | [로그 1](artifacts/logs/07-CO-branch-filter.md) |  |
| 4192/dev/user-branch-office-filter.spec.ts / [4192][dev] QA checklist for #4192 / [CO] 사용자 / 영업점 필터 엑셀 | PASS | 15398ms |  |  | [로그 1](artifacts/logs/08-CO-branch-excel.md) |  |
| 4192/dev/user-branch-office-filter.spec.ts / [4192][dev] QA checklist for #4192 / [CO] 사용자 / 프리셋명 필터 목록·엑셀 | PASS | 21389ms | [스크린샷 1](artifacts/screenshots/06-CO-preset-filter.png) |  | [로그 1](artifacts/logs/09-CO-preset-filter.md) |  |
| 4192/dev/user-branch-office-filter.spec.ts / [4192][dev] QA checklist for #4192 / [BO] 사용자 / 영업점 필터 목록 | PASS | 16280ms | [스크린샷 1](artifacts/screenshots/07-BO-branch-filter.png) |  | [로그 1](artifacts/logs/10-BO-branch-filter.md) |  |
| 4192/dev/user-branch-office-filter.spec.ts / [4192][dev] QA checklist for #4192 / [BO] 사용자 / 프리셋명 필터 목록 | PASS | 13027ms | [스크린샷 1](artifacts/screenshots/08-BO-preset-filter.png) |  | [로그 1](artifacts/logs/11-BO-preset-filter.md) |  |

## Notes

- Playwright 실행 결과를 기준으로 작성되었습니다.
- QA subissue에 report/evidence 업로드와 완료 상태 갱신이 반영되었습니다.
