# TC - 사용자/권한관리 (User & Permission Management) > **페이지**: https://dev.sam.kr/settings/users, https://dev.sam.kr/settings/roles > **작성일**: 2026-01-29 > **대상**: QC Playwright AI 테스트용 --- ## ⚠️ 테스트 환경 안내 | 항목 | 내용 | |------|------| | **환경 유형** | 개발/테스트 환경 (Development Environment) | | **운영 환경 여부** | ❌ 아니오 - 운영 환경이 **아닙니다** | | **데이터 특성** | 테스트용 시드 데이터 및 개발 중 생성된 샘플 데이터 | | **테스트 정책** | CRUD 전체 테스트 가능 (생성, 수정, 삭제 포함) | ### 테스트 실행 지침 1. **CRUD 테스트 허용**: 이 환경은 개발/테스트 목적으로, 데이터 생성·수정·삭제를 포함한 전체 기능 테스트를 수행해야 합니다. 2. **사용자/역할 등록 테스트**: 신규 등록 테스트 시 실제 데이터를 생성하여 기능 검증을 수행합니다. 3. **삭제 테스트**: 테스트 중 생성한 데이터를 대상으로 실행합니다. 4. **주의**: 시스템 관리자 계정과 기본 역할은 수정/삭제하지 않습니다. --- ## 0. 사이드바 메뉴 탐색 (공통 전제 조건) ### 0.1 메뉴 펼치기 | TC# | 구분 | 테스트 항목 | 기대 결과 | |-----|------|------------|-----------| | NAV-001 | 전제 | 사이드바 최상단 스크롤 | 사이드바가 최상단으로 스크롤 | | NAV-002 | 전제 | "모두 펼치기" 버튼 클릭 | 사이드바의 모든 메뉴가 펼쳐짐 | | NAV-003 | 전제 | 메뉴 펼침 대기 | 2초 대기 후 모든 메뉴 펼침 완료 | | NAV-004 | 기능 | 1차 메뉴 찾기 | 스크롤 없이 1차 메뉴(설정) 클릭 가능 | | NAV-005 | 기능 | 2차 메뉴 클릭 | 펼쳐진 서브메뉴에서 사용자관리/권한관리 클릭 | | NAV-006 | 기능 | 페이지 로드 확인 | 404 없이 정상 페이지 로드 | > **💡 참고**: "모두 펼치기" 버튼으로 전체 메뉴를 펼친 후 메뉴를 탐색하면 1차 메뉴를 누르지 못해 찾지 못하는 문제를 방지할 수 있습니다. --- ## Part A: 사용자 관리 ### 1. 사용자 목록 페이지 #### 1.1 페이지 로딩 | TC# | 구분 | 테스트 항목 | 기대 결과 | |-----|------|------------|-----------| | U-001 | 기본 | 페이지 접근 | `/settings/users` 정상 로딩, 사용자 목록 표시 | | U-002 | 기본 | 통계 카드 | "전체 사용자", "활성", "비활성", "최근 가입" 카드 | | U-003 | 기본 | 기본 정렬 | 이름 오름차순 또는 최신순 정렬 | | U-004 | 기본 | 빈 목록 | 사용자 없을 때 빈 상태 메시지 | #### 1.2 테이블 컬럼 | TC# | 구분 | 테스트 항목 | 기대 결과 | |-----|------|------------|-----------| | U-010 | 기본 | 컬럼 구성 | 체크박스, 프로필, 사용자ID, 이름, 이메일, 부서, 역할, 상태, 마지막로그인, 작업 | | U-011 | UI | 프로필 이미지 | 프로필 이미지 또는 이니셜 아바타 | | U-012 | UI | 상태 뱃지 색상 | 활성=초록, 비활성=회색, 잠김=빨강, 대기=노랑 | | U-013 | UI | 역할 뱃지 | 역할별 다른 색상 뱃지 | | U-014 | UI | 마지막 로그인 | 상대 시간 표시 (3일 전, 1시간 전 등) | #### 1.3 검색 | TC# | 구분 | 테스트 항목 | 기대 결과 | |-----|------|------------|-----------| | U-020 | 기능 | 이름 검색 | 이름 일부 입력 시 해당 사용자 필터링 | | U-021 | 기능 | 사용자ID 검색 | 사용자ID로 검색 | | U-022 | 기능 | 이메일 검색 | 이메일로 검색 | | U-023 | 기능 | 검색어 지우기 | 검색어 삭제 시 전체 목록 복원 | | U-024 | 경계 | 존재하지 않는 검색어 | 빈 결과 + 메시지 표시 | #### 1.4 필터 | TC# | 구분 | 테스트 항목 | 기대 결과 | |-----|------|------------|-----------| | U-030 | 기능 | 상태 필터 - 전체 | 모든 사용자 표시 | | U-031 | 기능 | 상태 필터 - 활성 | 활성 사용자만 표시 | | U-032 | 기능 | 상태 필터 - 비활성 | 비활성 사용자만 표시 | | U-033 | 기능 | 상태 필터 - 잠김 | 잠긴 계정만 표시 | | U-034 | 기능 | 부서 필터 | 특정 부서 사용자만 표시 | | U-035 | 기능 | 역할 필터 | 특정 역할 사용자만 표시 | | U-036 | 기능 | 필터 복합 적용 | 상태 + 부서 + 역할 동시 적용 | | U-037 | 기능 | 필터 해제 | 필터 해제 시 전체 목록 복원 | #### 1.5 정렬 | TC# | 구분 | 테스트 항목 | 기대 결과 | |-----|------|------------|-----------| | U-040 | 기능 | 이름 오름차순 | 이름 가나다순 | | U-041 | 기능 | 이름 내림차순 | 이름 역순 | | U-042 | 기능 | 최근 가입순 | 가입일 내림차순 | | U-043 | 기능 | 마지막 로그인순 | 로그인일 내림차순 | #### 1.6 페이지네이션 | TC# | 구분 | 테스트 항목 | 기대 결과 | |-----|------|------------|-----------| | U-050 | 기능 | 기본 페이지 크기 | 한 페이지 20건 표시 | | U-051 | 기능 | 페이지 크기 변경 | 20/50/100건 선택 가능 | | U-052 | 기능 | 다음 페이지 이동 | 다음 페이지로 이동 | | U-053 | 경계 | 마지막 페이지 | "다음" 버튼 비활성화 | #### 1.7 행 동작 | TC# | 구분 | 테스트 항목 | 기대 결과 | |-----|------|------------|-----------| | U-060 | 기능 | 행 클릭 | 사용자 상세 페이지로 이동 | | U-061 | 기능 | 호버 시 작업 버튼 | 수정/비활성화/역할변경/비밀번호초기화 버튼 | | U-062 | 기능 | 수정 버튼 | 사용자 수정 페이지로 이동 | | U-063 | 기능 | 비활성화 버튼 | 계정 비활성화 확인 다이얼로그 | | U-064 | 기능 | 비밀번호 초기화 | 임시 비밀번호 발송 확인 | | U-065 | 비즈 | 자기 자신 비활성화 | 자기 계정 비활성화 불가 | | U-066 | 비즈 | 시스템 관리자 비활성화 | 마지막 관리자 비활성화 불가 | --- ### 2. 사용자 등록/수정 #### 2.1 사용자 등록 (mode=new) | TC# | 구분 | 테스트 항목 | 기대 결과 | |-----|------|------------|-----------| | UC-001 | 기본 | 페이지 로딩 | 사용자 등록 폼 표시 | ##### 2.1.1 필수값 검증 | TC# | 구분 | 테스트 항목 | 기대 결과 | |-----|------|------------|-----------| | UC-010 | 검증 | 사용자ID 미입력 | 필수값 에러 메시지 | | UC-011 | 검증 | 이름 미입력 | 필수값 에러 메시지 | | UC-012 | 검증 | 이메일 미입력 | 필수값 에러 메시지 | | UC-013 | 검증 | 비밀번호 미입력 | 필수값 에러 메시지 | | UC-014 | 검증 | 역할 미선택 | 필수값 에러 메시지 | ##### 2.1.2 기본 정보 입력 | TC# | 구분 | 테스트 항목 | 기대 결과 | |-----|------|------------|-----------| | UC-020 | 기능 | 사용자ID 입력 | 영문+숫자, 4~20자 | | UC-021 | 기능 | 사용자ID 중복 확인 | 중복 시 에러 메시지 | | UC-022 | 기능 | 이름 입력 | 이름 입력 (최대 50자) | | UC-023 | 기능 | 이메일 입력 | 유효한 이메일 형식 검증 | | UC-024 | 기능 | 이메일 중복 확인 | 중복 시 에러 메시지 | | UC-025 | 기능 | 휴대폰 입력 | 전화번호 포맷팅 | | UC-026 | 기능 | 부서 선택 | 부서 드롭다운/트리 선택 | | UC-027 | 기능 | 직급 선택 | 직급 선택 (사원, 대리, 과장 등) | | UC-028 | 경계 | 잘못된 이메일 형식 | 에러 메시지 | | UC-029 | 경계 | 잘못된 사용자ID | 특수문자 포함 시 에러 | ##### 2.1.3 비밀번호 설정 | TC# | 구분 | 테스트 항목 | 기대 결과 | |-----|------|------------|-----------| | UC-030 | 기능 | 비밀번호 입력 | 8자 이상, 영문+숫자+특수문자 조합 | | UC-031 | 기능 | 비밀번호 확인 | 비밀번호 일치 확인 | | UC-032 | 기능 | 비밀번호 강도 표시 | 약함/보통/강함 표시 | | UC-033 | 검증 | 비밀번호 불일치 | 에러 메시지 | | UC-034 | 검증 | 약한 비밀번호 | 정책 미충족 시 에러 | | UC-035 | 기능 | 임시 비밀번호 발송 | 이메일로 임시 비밀번호 발송 옵션 | ##### 2.1.4 역할/권한 설정 | TC# | 구분 | 테스트 항목 | 기대 결과 | |-----|------|------------|-----------| | UC-040 | 기능 | 역할 선택 | 역할 드롭다운/멀티 선택 | | UC-041 | 기능 | 다중 역할 부여 | 여러 역할 동시 부여 | | UC-042 | UI | 역할별 권한 미리보기 | 선택한 역할의 권한 표시 | | UC-043 | 기능 | 상태 설정 | 활성/비활성 선택 | ##### 2.1.5 저장 동작 | TC# | 구분 | 테스트 항목 | 기대 결과 | |-----|------|------------|-----------| | UC-050 | 기능 | 정상 저장 | 성공 메시지 + 목록 이동 | | UC-051 | 기능 | 취소 버튼 | 목록 페이지로 복귀 | | UC-052 | 비즈 | 환영 이메일 발송 | 계정 생성 알림 이메일 발송 (설정에 따라) | #### 2.2 사용자 수정 (mode=edit) | TC# | 구분 | 테스트 항목 | 기대 결과 | |-----|------|------------|-----------| | UC-100 | 기본 | 페이지 로딩 | 기존 데이터 채워진 폼 | | UC-101 | 기본 | 사용자ID 읽기전용 | ID 수정 불가 | | UC-102 | 기능 | 이름 수정 | 이름 변경 가능 | | UC-103 | 기능 | 이메일 수정 | 이메일 변경 + 중복 확인 | | UC-104 | 기능 | 부서 변경 | 다른 부서로 이동 | | UC-105 | 기능 | 역할 변경 | 역할 추가/삭제 | | UC-106 | 기능 | 비밀번호 변경 | 새 비밀번호 설정 (선택) | | UC-107 | 비즈 | 자기 역할 변경 | 자기 역할 축소 경고 | --- ### 3. 사용자 상세 페이지 | TC# | 구분 | 테스트 항목 | 기대 결과 | |-----|------|------------|-----------| | UD-001 | 기본 | 페이지 로딩 | 사용자 상세 정보 표시 | | UD-002 | UI | 프로필 정보 | 이미지, 이름, ID, 이메일, 연락처 | | UD-003 | UI | 소속 정보 | 부서, 직급, 역할 | | UD-004 | 기능 | 로그인 이력 | 최근 로그인 기록 표시 | | UD-005 | 기능 | 활동 이력 | 최근 활동 로그 표시 | | UD-006 | 기능 | 권한 목록 | 부여된 권한 목록 표시 | --- ## Part B: 역할 관리 ### 4. 역할 목록 페이지 #### 4.1 페이지 로딩 | TC# | 구분 | 테스트 항목 | 기대 결과 | |-----|------|------------|-----------| | R-001 | 기본 | 페이지 접근 | `/settings/roles` 정상 로딩, 역할 목록 표시 | | R-002 | 기본 | 시스템 역할 | 기본 제공 역할 (관리자, 일반 등) 표시 | | R-003 | 기본 | 커스텀 역할 | 사용자 정의 역할 표시 | #### 4.2 테이블 구성 | TC# | 구분 | 테스트 항목 | 기대 결과 | |-----|------|------------|-----------| | R-010 | 기본 | 컬럼 구성 | 번호, 역할명, 설명, 유형, 사용자수, 상태, 작업 | | R-011 | UI | 유형 뱃지 | 시스템=파랑, 커스텀=초록 | | R-012 | UI | 상태 표시 | 활성=초록, 비활성=회색 | | R-013 | UI | 시스템 역할 | 수정/삭제 제한 표시 | #### 4.3 검색/필터 | TC# | 구분 | 테스트 항목 | 기대 결과 | |-----|------|------------|-----------| | R-020 | 기능 | 역할명 검색 | 역할명 검색 | | R-021 | 기능 | 유형 필터 | 시스템/커스텀 필터 | | R-022 | 기능 | 상태 필터 | 활성/비활성 필터 | #### 4.4 행 동작 | TC# | 구분 | 테스트 항목 | 기대 결과 | |-----|------|------------|-----------| | R-030 | 기능 | 행 클릭 | 역할 상세/수정 페이지 이동 | | R-031 | 기능 | 복사 버튼 | 역할 복사 생성 | | R-032 | 기능 | 삭제 버튼 | 삭제 확인 다이얼로그 | | R-033 | 비즈 | 시스템 역할 삭제 | 삭제 불가 | | R-034 | 비즈 | 사용 중인 역할 삭제 | 사용자 있으면 삭제 불가 또는 경고 | --- ### 5. 역할 등록/수정 #### 5.1 역할 등록 (mode=new) | TC# | 구분 | 테스트 항목 | 기대 결과 | |-----|------|------------|-----------| | RC-001 | 기본 | 페이지 로딩 | 역할 등록 폼 표시 | ##### 5.1.1 기본 정보 | TC# | 구분 | 테스트 항목 | 기대 결과 | |-----|------|------------|-----------| | RC-010 | 검증 | 역할명 미입력 | 필수값 에러 메시지 | | RC-011 | 기능 | 역할명 입력 | 역할명 입력 (최대 50자) | | RC-012 | 기능 | 역할코드 입력 | 영문 대문자 + 밑줄 | | RC-013 | 기능 | 설명 입력 | 역할 설명 (최대 200자) | | RC-014 | 경계 | 역할명 중복 | 중복 시 에러 메시지 | | RC-015 | 경계 | 역할코드 중복 | 중복 시 에러 메시지 | ##### 5.1.2 권한 설정 | TC# | 구분 | 테스트 항목 | 기대 결과 | |-----|------|------------|-----------| | RC-020 | 기능 | 권한 트리 표시 | 메뉴/기능별 권한 트리 | | RC-021 | 기능 | 권한 그룹 펼치기/접기 | 권한 그룹 토글 | | RC-022 | 기능 | 개별 권한 체크 | 개별 권한 선택/해제 | | RC-023 | 기능 | 그룹 전체 체크 | 그룹 전체 선택/해제 | | RC-024 | 기능 | 전체 권한 선택 | 모든 권한 일괄 선택 | | RC-025 | 기능 | 전체 권한 해제 | 모든 권한 일괄 해제 | | RC-026 | UI | 선택된 권한 수 표시 | 선택된 권한 카운트 표시 | ##### 5.1.3 권한 유형 | TC# | 구분 | 테스트 항목 | 기대 결과 | |-----|------|------------|-----------| | RC-030 | 기능 | 메뉴 접근 권한 | 메뉴 표시/숨김 권한 | | RC-031 | 기능 | 조회 권한 | 데이터 조회 권한 | | RC-032 | 기능 | 생성 권한 | 데이터 생성 권한 | | RC-033 | 기능 | 수정 권한 | 데이터 수정 권한 | | RC-034 | 기능 | 삭제 권한 | 데이터 삭제 권한 | | RC-035 | 기능 | 승인 권한 | 결재/승인 권한 | | RC-036 | 기능 | 내보내기 권한 | Excel/PDF 내보내기 권한 | | RC-037 | 비즈 | 의존성 권한 | 수정 선택 시 조회 자동 선택 | ##### 5.1.4 저장 동작 | TC# | 구분 | 테스트 항목 | 기대 결과 | |-----|------|------------|-----------| | RC-040 | 기능 | 정상 저장 | 성공 메시지 + 목록 이동 | | RC-041 | 기능 | 취소 버튼 | 목록 페이지로 복귀 | | RC-042 | 검증 | 권한 미선택 | 최소 1개 권한 필요 경고 | #### 5.2 역할 수정 (mode=edit) | TC# | 구분 | 테스트 항목 | 기대 결과 | |-----|------|------------|-----------| | RC-100 | 기본 | 페이지 로딩 | 기존 역할 정보 + 권한 표시 | | RC-101 | 기능 | 역할명 수정 | 역할명 변경 | | RC-102 | 기능 | 권한 추가 | 새 권한 추가 | | RC-103 | 기능 | 권한 제거 | 기존 권한 제거 | | RC-104 | 비즈 | 시스템 역할 수정 | 시스템 역할 수정 제한 | | RC-105 | 비즈 | 권한 변경 영향 | 해당 역할 사용자에게 즉시 반영 | --- ## Part C: 권한 적용 테스트 ### 6. 권한 동작 검증 | TC# | 구분 | 테스트 항목 | 기대 결과 | |-----|------|------------|-----------| | P-001 | 비즈 | 메뉴 접근 제한 | 권한 없는 메뉴 미표시 | | P-002 | 비즈 | URL 직접 접근 차단 | 권한 없는 URL 접근 시 403 또는 리다이렉트 | | P-003 | 비즈 | 버튼 표시 제한 | 권한 없는 버튼 미표시 또는 비활성화 | | P-004 | 비즈 | 조회 권한 테스트 | 조회만 가능, 수정/삭제 버튼 미표시 | | P-005 | 비즈 | 생성 권한 테스트 | 생성 가능, 다른 기능 제한 | | P-006 | 비즈 | 수정 권한 테스트 | 수정 가능, 삭제 제한 | | P-007 | 비즈 | 삭제 권한 테스트 | 삭제 가능 | | P-008 | 비즈 | 내보내기 권한 테스트 | Excel/PDF 버튼 표시/미표시 | | P-009 | 비즈 | 다중 역할 권한 | 여러 역할 권한 합산 | | P-010 | 비즈 | 권한 변경 즉시 반영 | 역할 수정 후 로그인 없이 반영 | --- ## 7. 모바일 반응형 | TC# | 구분 | 테스트 항목 | 기대 결과 | |-----|------|------------|-----------| | M-001 | UI | 사용자 목록 모바일 | 카드 형태로 사용자 표시 | | M-002 | UI | 역할 목록 모바일 | 카드 형태로 역할 표시 | | M-003 | UI | 사용자 등록 모바일 | 모바일 친화적 폼 | | M-004 | UI | 권한 설정 모바일 | 권한 트리 모바일 최적화 | | M-005 | UI | 검색/필터 모바일 | 모바일 검색 UI | --- ## 8. API 응답 검증 | TC# | 구분 | 테스트 항목 | 기대 결과 | |-----|------|------------|-----------| | API-001 | API | GET /users 응답 | `{ success: true, data: { data: [...], total } }` | | API-002 | API | GET /users/{id} 응답 | 사용자 상세 + 역할 + 권한 | | API-003 | API | POST /users 응답 | 신규 사용자 ID 반환 | | API-004 | API | GET /roles 응답 | 역할 목록 | | API-005 | API | GET /roles/{id} 응답 | 역할 상세 + 권한 목록 | | API-006 | API | POST /roles 응답 | 신규 역할 ID 반환 | | API-007 | API | GET /permissions 응답 | 전체 권한 트리 | | API-008 | API | 멀티테넌트 격리 | 다른 tenant 데이터 접근 불가 | --- ## 9. 데이터 정합성 | TC# | 구분 | 테스트 항목 | 기대 결과 | |-----|------|------------|-----------| | I-001 | 비즈 | 사용자-역할 관계 | 사용자의 역할 일치 | | I-002 | 비즈 | 역할-권한 관계 | 역할의 권한 일치 | | I-003 | 비즈 | 역할 사용자 수 | 표시된 수 = 실제 사용자 수 | | I-004 | 비즈 | 삭제 후 연관 | 역할 삭제 시 사용자-역할 관계 정리 | | I-005 | 비즈 | 권한 상속 | 상위 권한 선택 시 하위 권한 포함 | | I-006 | 비즈 | 권한 캐시 | 권한 변경 후 캐시 무효화 | --- ## TC 요약 | 카테고리 | 건수 | |----------|------| | 사용자 목록 페이지 | 33건 | | 사용자 등록/수정 | 28건 | | 사용자 상세 페이지 | 6건 | | 역할 목록 페이지 | 14건 | | 역할 등록/수정 | 28건 | | 권한 적용 테스트 | 10건 | | 모바일 반응형 | 5건 | | API 응답 검증 | 8건 | | 데이터 정합성 | 6건 | | **합계** | **138건** | --- ## 참고: 구분 체계 - **기본**: 페이지 로딩, 기본 표시 - **기능**: 사용자 인터랙션, CRUD 동작 - **UI**: 색상, 레이아웃, 뱃지 등 시각 요소 - **검증**: 입력값 유효성 검사 - **경계**: 경계값, 예외 케이스 - **비즈**: 비즈니스 로직 (권한 적용, 시스템 역할 보호 등) - **API**: API 레벨 검증