Files
sam-hotfix/testcase/TC_VACATION_MANAGEMENT.md
김보곤 4765cd5484 test: E2E 테스트 결과 정리 및 TC 문서 업데이트
- 이전 테스트 결과 파일 정리 (Fail-*, OK-* 삭제)
- testcase 11개 문서 업데이트
- 시나리오 품질 현황 문서 수정

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 14:14:18 +09:00

18 KiB

TC - 휴가관리 (Vacation Management)

페이지: https://dev.codebridge-x.com/hr/vacation-management 작성일: 2026-01-29 대상: QC Playwright AI 테스트용


⚠️ 테스트 환경 안내

항목 내용
환경 유형 개발/테스트 환경 (Development Environment)
운영 환경 여부 아니오 - 운영 환경이 아닙니다
데이터 특성 테스트용 시드 데이터 및 개발 중 생성된 샘플 데이터
테스트 정책 CRUD 전체 테스트 가능 (생성, 수정, 삭제 포함)

테스트 실행 지침

  1. CRUD 테스트 허용: 이 환경은 개발/테스트 목적으로, 데이터 생성·수정·삭제를 포함한 전체 기능 테스트를 수행해야 합니다.

  2. 휴가 신청 테스트: 신규 휴가 신청(D-080~D-090) 테스트 시 실제 데이터를 생성하여 기능 검증을 수행합니다.

  3. 휴가 취소 테스트: 취소 테스트는 테스트 중 생성한 데이터를 대상으로 실행합니다. 기존 시드 데이터는 보존합니다.

  4. 테스트 데이터 정리: 테스트 완료 후 생성된 테스트 데이터는 삭제하여 환경을 정리합니다.

💡 참고: "SKIP-PROTECT" 사유는 운영 환경이 아닌 경우 적용하지 않습니다. 개발 환경에서는 전체 CRUD 흐름을 테스트해야 합니다.


0. 사이드바 메뉴 탐색 (공통 전제 조건)

0.1 메뉴 펼치기

TC# 구분 테스트 항목 기대 결과
NAV-001 전제 사이드바 최상단 스크롤 사이드바가 최상단으로 스크롤
NAV-002 전제 "모두 펼치기" 버튼 클릭 사이드바의 모든 메뉴가 펼쳐짐
NAV-003 전제 메뉴 펼침 대기 2초 대기 후 모든 메뉴 펼침 완료
NAV-004 기능 1차 메뉴 찾기 스크롤 없이 1차 메뉴(인사관리) 클릭 가능
NAV-005 기능 2차 메뉴 클릭 펼쳐진 서브메뉴에서 휴가관리 클릭
NAV-006 기능 페이지 로드 확인 404 없이 정상 페이지 로드

💡 참고: "모두 펼치기" 버튼으로 전체 메뉴를 펼친 후 메뉴를 탐색하면 1차 메뉴를 누르지 못해 찾지 못하는 문제를 방지할 수 있습니다.


1. 목록 페이지 (List View)

1.1 페이지 로딩

TC# 구분 테스트 항목 기대 결과
L-001 기본 페이지 접근 /hr/vacation-management 정상 로딩, 테이블 표시
L-002 기본 통계 카드 표시 상단에 "전체 휴가", "승인 대기", "승인 완료", "반려" 4개 카드 표시
L-003 기본 통계 숫자 일치 카드 숫자 합 = 테이블 전체 건수
L-004 기본 기본 정렬 최신순(신청일 내림차순) 정렬
L-005 기본 빈 목록 데이터 없을 때 빈 상태 메시지 표시
L-006 기본 연간 휴가 현황 사용일수/잔여일수/총일수 표시

1.2 테이블 컬럼

TC# 구분 테스트 항목 기대 결과
L-010 기본 컬럼 구성 체크박스, 번호, 휴가유형, 시작일, 종료일, 일수, 신청자, 승인상태, 신청일, 작업
L-011 UI 휴가유형 뱃지 색상 연차=파랑, 반차(오전)=초록, 반차(오후)=보라, 병가=빨강, 경조=주황, 공가=회색
L-012 UI 승인상태 뱃지 색상 대기=노랑, 승인=초록, 반려=빨강, 취소=회색
L-013 UI 일수 계산 표시 시작일~종료일 기준 자동 계산된 일수
L-014 UI 반차 일수 반차는 0.5일로 표시
L-015 UI 주말/공휴일 제외 일수 계산 시 주말/공휴일 제외 여부 확인

1.3 검색

TC# 구분 테스트 항목 기대 결과
L-020 기능 신청자명 검색 이름 일부 입력 시 해당 신청만 필터링
L-021 기능 사원번호 검색 사원번호 입력 시 해당 신청만 필터링
L-022 기능 부서명 검색 부서명 입력 시 해당 부서원 신청만 필터링
L-023 기능 검색어 지우기 검색어 삭제 시 전체 목록 복원
L-024 경계 빈 검색어 전체 목록 표시
L-025 경계 존재하지 않는 검색어 빈 결과 + "검색 결과 없음" 메시지
L-026 경계 특수문자 검색 에러 없이 처리 (결과 0건 또는 매칭)

1.4 필터

TC# 구분 테스트 항목 기대 결과
L-030 기능 휴가유형 필터 - 연차 연차 신청만 표시
L-031 기능 휴가유형 필터 - 반차(오전) 오전 반차만 표시
L-032 기능 휴가유형 필터 - 반차(오후) 오후 반차만 표시
L-033 기능 휴가유형 필터 - 병가 병가만 표시
L-034 기능 휴가유형 필터 - 경조사 경조사 휴가만 표시
L-035 기능 휴가유형 필터 - 공가 공가만 표시
L-036 기능 승인상태 필터 - 대기 승인 대기만 표시
L-037 기능 승인상태 필터 - 승인 승인된 휴가만 표시
L-038 기능 승인상태 필터 - 반려 반려된 휴가만 표시
L-039 기능 기간 필터 시작일~종료일 범위 내 휴가만 표시
L-040 기능 부서 필터 선택한 부서원 휴가만 표시
L-041 기능 필터 복합 적용 유형 + 상태 + 기간 동시 적용 시 AND 조건
L-042 기능 필터 해제 필터 해제 시 전체 목록 복원
L-043 경계 필터 결과 0건 빈 상태 메시지 표시, 에러 없음

1.5 정렬

TC# 구분 테스트 항목 기대 결과
L-050 기능 최신순 신청일 내림차순
L-051 기능 등록순 신청일 오름차순
L-052 기능 시작일 오름차순 휴가 시작일 빠른 순
L-053 기능 시작일 내림차순 휴가 시작일 늦은 순
L-054 기능 일수 많은순 휴가 일수 내림차순
L-055 기능 일수 적은순 휴가 일수 오름차순

1.6 페이지네이션

TC# 구분 테스트 항목 기대 결과
L-060 기능 기본 페이지 크기 한 페이지 20건 표시
L-061 기능 다음 페이지 이동 2페이지 클릭 시 다음 20건 표시
L-062 기능 이전 페이지 이동 이전 페이지로 복귀
L-063 경계 마지막 페이지 "다음" 버튼 비활성화 또는 숨김
L-064 경계 첫 페이지 "이전" 버튼 비활성화 또는 숨김
L-065 기능 필터 + 페이지네이션 필터 적용 후 페이지네이션 정상 동작

1.7 행 선택 및 동작

TC# 구분 테스트 항목 기대 결과
L-070 기능 행 클릭 상세 페이지(view 모드)로 이동
L-071 기능 체크박스 개별 선택 해당 행 선택 상태
L-072 기능 전체 선택 체크박스 현재 페이지 전체 선택/해제
L-073 기능 호버 시 작업 버튼 행 호버 시 수정/취소 버튼 표시
L-074 기능 수정 버튼 클릭 상세 페이지(edit 모드)로 이동
L-075 기능 취소 버튼 클릭 취소 확인 다이얼로그 표시
L-076 기능 취소 확인 확인 시 휴가 취소, 상태 변경
L-077 기능 취소 취소 취소 시 아무 변경 없음
L-078 비즈 승인된 휴가 취소 취소 불가 또는 별도 승인 필요
L-079 비즈 지난 휴가 취소 이미 지난 휴가는 취소 불가

1.8 일괄 처리

TC# 구분 테스트 항목 기대 결과
L-080 기능 일괄 승인 버튼 다중 선택 시 일괄 승인 버튼 활성화
L-081 기능 일괄 승인 실행 선택한 휴가 전체 승인
L-082 기능 일괄 반려 버튼 다중 선택 시 일괄 반려 버튼 활성화
L-083 기능 일괄 반려 실행 선택한 휴가 전체 반려 + 사유 입력

1.9 신규 등록 버튼

TC# 구분 테스트 항목 기대 결과
L-090 기능 휴가 신청 버튼 클릭 시 상세 페이지(new 모드)로 이동

2. 상세/등록 페이지 (Detail View)

2.1 휴가 신청 (mode=new)

TC# 구분 테스트 항목 기대 결과
D-001 기본 페이지 로딩 빈 폼 표시, 신청/취소 버튼
D-002 기본 기본값 확인 휴가유형=연차, 시작일=오늘, 종료일=오늘
D-003 기본 잔여 휴가일수 표시 현재 연도 잔여 일수 표시
D-004 기본 신청자 정보 자동 표시 로그인 사용자 정보 자동 입력

2.1.1 필수값 검증

TC# 구분 테스트 항목 기대 결과
D-010 검증 휴가유형 미선택 신청 시 필수값 에러 메시지
D-011 검증 시작일 미입력 신청 시 필수값 에러 메시지
D-012 검증 종료일 미입력 신청 시 필수값 에러 메시지
D-013 검증 사유 미입력 신청 시 필수값 에러 메시지 (병가/경조사)

2.1.2 휴가 유형 선택

TC# 구분 테스트 항목 기대 결과
D-020 기능 연차 선택 연차 선택, 일수 계산 활성화
D-021 기능 반차(오전) 선택 0.5일 자동 계산, 종료일 비활성화
D-022 기능 반차(오후) 선택 0.5일 자동 계산, 종료일 비활성화
D-023 기능 병가 선택 증빙서류 첨부 필드 표시
D-024 기능 경조사 선택 경조사 유형 선택 필드 표시
D-025 기능 공가 선택 공가 사유 입력 필드 표시

2.1.3 날짜 선택

TC# 구분 테스트 항목 기대 결과
D-030 기능 시작일 선택 달력 팝업에서 날짜 선택
D-031 기능 종료일 선택 시작일 이후 날짜만 선택 가능
D-032 기능 일수 자동 계산 시작일~종료일 기준 자동 계산 (주말 제외)
D-033 경계 시작일 > 종료일 에러 메시지 또는 자동 보정
D-034 경계 과거 날짜 선택 과거 날짜 선택 불가 또는 경고
D-035 기능 공휴일 표시 달력에 공휴일 표시, 일수 계산 제외
D-036 비즈 주말 선택 주말은 휴가 일수에서 제외

2.1.4 잔여 일수 검증

TC# 구분 테스트 항목 기대 결과
D-040 비즈 잔여일수 초과 신청 에러 메시지 "잔여 휴가일수 부족"
D-041 비즈 잔여일수 = 신청일수 정상 신청 가능
D-042 비즈 실시간 잔여일수 갱신 일수 변경 시 잔여일수 실시간 계산

2.1.5 사유 및 첨부

TC# 구분 테스트 항목 기대 결과
D-050 기능 휴가 사유 입력 최대 500자, 텍스트 에어리어
D-051 기능 증빙서류 첨부 파일 업로드 UI (이미지/PDF)
D-052 경계 첨부파일 용량 초과 10MB 초과 시 에러 메시지
D-053 경계 지원하지 않는 형식 허용되지 않은 확장자 에러

2.1.6 결재선 설정

TC# 구분 테스트 항목 기대 결과
D-060 기능 기본 결재선 표시 직속 상관 자동 표시
D-061 기능 결재자 변경 다른 결재자 선택 가능
D-062 기능 참조자 추가 참조자 추가 가능
D-063 비즈 결재자 없음 결재자 미지정 시 신청 불가

2.1.7 저장 동작

TC# 구분 테스트 항목 기대 결과
D-080 기능 정상 신청 성공 메시지 + 목록 페이지로 이동
D-081 기능 신청 후 상태 상태 = "대기(승인 대기)"
D-082 기능 취소 버튼 목록 페이지로 복귀, 데이터 미저장
D-083 경계 네트워크 오류 시 신청 에러 메시지 표시, 데이터 유지
D-084 기능 전체 필드 입력 신청 모든 필드 정상 저장 및 조회
D-085 비즈 중복 기간 신청 이미 신청된 기간과 중복 시 에러

2.2 조회 모드 (mode=view)

TC# 구분 테스트 항목 기대 결과
D-100 기본 페이지 로딩 저장된 데이터 표시, 모든 필드 읽기전용
D-101 기본 신청 정보 표시 휴가유형, 기간, 일수, 사유 표시
D-102 기본 결재 상태 표시 결재선 및 현재 상태 표시
D-103 UI 버튼 표시 상태에 따라 수정/취소/목록 버튼
D-104 기능 목록 버튼/뒤로가기 목록 페이지로 복귀

2.2.1 결재 이력

TC# 구분 테스트 항목 기대 결과
D-110 기능 결재 이력 표시 결재자, 결재일시, 의견 표시
D-111 기능 결재 상태 타임라인 신청→승인/반려 단계별 표시
D-112 기능 반려 사유 표시 반려 시 반려 사유 표시

2.2.2 첨부파일

TC# 구분 테스트 항목 기대 결과
D-120 기능 첨부파일 목록 업로드된 파일 목록 표시
D-121 기능 파일 다운로드 클릭 시 파일 다운로드
D-122 기능 파일 미리보기 이미지/PDF 미리보기 지원

2.3 수정 모드 (mode=edit)

TC# 구분 테스트 항목 기대 결과
D-200 기본 페이지 로딩 기존 데이터 채워진 편집 가능 폼
D-201 비즈 수정 가능 상태 "대기" 상태일 때만 수정 가능
D-202 기능 휴가유형 변경 유형 변경 가능
D-203 기능 기간 변경 시작일/종료일 변경 가능
D-204 기능 사유 수정 휴가 사유 수정 가능
D-205 기능 첨부파일 추가/삭제 파일 추가 및 기존 파일 삭제
D-206 경계 승인 후 수정 시도 수정 불가, 에러 메시지

2.3.1 저장/취소

TC# 구분 테스트 항목 기대 결과
D-210 기능 수정 저장 변경사항 저장 + view 모드 전환
D-211 기능 수정 취소 변경사항 폐기 + view 모드 복귀
D-212 기능 휴가 취소 버튼 취소 확인 다이얼로그 표시
D-213 기능 휴가 취소 확인 휴가 취소 + 목록 페이지 이동

3. 결재자 화면

3.1 승인/반려 처리

TC# 구분 테스트 항목 기대 결과
A-001 기능 승인 대기 목록 결재 대기 휴가 목록 표시
A-002 기능 승인 버튼 클릭 승인 확인 다이얼로그 표시
A-003 기능 승인 의견 입력 선택적 의견 입력
A-004 기능 승인 확인 휴가 승인 처리, 상태 변경
A-005 기능 반려 버튼 클릭 반려 사유 입력 다이얼로그 표시
A-006 검증 반려 사유 필수 사유 미입력 시 반려 불가
A-007 기능 반려 확인 휴가 반려 처리, 상태 변경
A-008 비즈 알림 발송 승인/반려 시 신청자에게 알림

4. 모바일 반응형

TC# 구분 테스트 항목 기대 결과
M-001 UI 목록 모바일 뷰 테이블 → 카드 레이아웃 전환
M-002 UI 카드 핵심 정보 휴가유형, 기간, 상태 뱃지 표시
M-003 UI 카드 액션 버튼 수정/취소 접근 가능
M-004 UI 상세 페이지 레이아웃 모바일에서 폼 필드 세로 정렬
M-005 UI 달력 모바일 모바일용 달력 UI
M-006 UI 결재 화면 모바일 모바일에서 승인/반려 버튼 접근 가능

5. API 응답 검증

TC# 구분 테스트 항목 기대 결과
API-001 API GET /vacations 응답 { success: true, data: { data: [...], total, page, size } }
API-002 API GET /vacations/{id} 응답 휴가 상세 정보 + 결재 이력 포함
API-003 API POST /vacations 응답 신규 휴가 ID 반환
API-004 API GET /vacations/balance 응답 연차 잔여일수 정보
API-005 API POST /vacations/{id}/approve 응답 승인 처리 결과
API-006 API POST /vacations/{id}/reject 응답 반려 처리 결과 + 사유
API-007 API 멀티테넌트 격리 다른 tenant 데이터 접근 불가

6. 데이터 정합성

TC# 구분 테스트 항목 기대 결과
I-001 비즈 일수 계산 정확성 (종료일 - 시작일 + 1) - 주말 - 공휴일
I-002 비즈 잔여일수 갱신 승인 시 잔여일수 차감
I-003 비즈 취소 시 일수 복원 취소 시 잔여일수 복원
I-004 비즈 연도별 휴가 관리 연도 변경 시 새 연차 부여
I-005 비즈 신청→조회 일치 신청한 데이터 = 조회 데이터

TC 요약

카테고리 건수
목록 페이지 53건
상세/등록 페이지 50건
결재자 화면 8건
모바일 반응형 6건
API 응답 검증 7건
데이터 정합성 5건
합계 129건

참고: 구분 체계

  • 기본: 페이지 로딩, 기본 표시
  • 기능: 사용자 인터랙션, CRUD 동작
  • UI: 색상, 레이아웃, 뱃지 등 시각 요소
  • 검증: 입력값 유효성 검사
  • 경계: 경계값, 예외 케이스
  • 비즈: 비즈니스 로직 (잔여일수, 결재 등)
  • API: API 레벨 검증