- 이전 테스트 결과 파일 정리 (Fail-*, OK-* 삭제) - testcase 11개 문서 업데이트 - 시나리오 품질 현황 문서 수정 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
18 KiB
18 KiB
TC - 사용자/권한관리 (User & Permission Management)
페이지: https://dev.codebridge-x.com/settings/permissions 작성일: 2026-01-29 대상: QC Playwright AI 테스트용
⚠️ 테스트 환경 안내
| 항목 | 내용 |
|---|---|
| 환경 유형 | 개발/테스트 환경 (Development Environment) |
| 운영 환경 여부 | ❌ 아니오 - 운영 환경이 아닙니다 |
| 데이터 특성 | 테스트용 시드 데이터 및 개발 중 생성된 샘플 데이터 |
| 테스트 정책 | CRUD 전체 테스트 가능 (생성, 수정, 삭제 포함) |
테스트 실행 지침
-
CRUD 테스트 허용: 이 환경은 개발/테스트 목적으로, 데이터 생성·수정·삭제를 포함한 전체 기능 테스트를 수행해야 합니다.
-
사용자/역할 등록 테스트: 신규 등록 테스트 시 실제 데이터를 생성하여 기능 검증을 수행합니다.
-
삭제 테스트: 테스트 중 생성한 데이터를 대상으로 실행합니다.
-
주의: 시스템 관리자 계정과 기본 역할은 수정/삭제하지 않습니다.
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/permissions 정상 로딩, 권한 관리 표시 |
| 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 레벨 검증