From 7cc88df130ece4232d5e0a857b6fe7849a617d16 Mon Sep 17 00:00:00 2001 From: lab1 Date: Thu, 29 Jan 2026 13:32:30 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20testcase=20=ED=8F=B4=EB=8D=94=20hot?= =?UTF-8?q?fix=20Git=EC=9C=BC=EB=A1=9C=20=ED=86=B5=ED=95=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - testcase 별도 Git 저장소 제거 - .gitignore에서 testcase/ 제외 해제 - TC 문서 6개 추가: - TC_VENDOR_MANAGEMENT.md - TC_ORDER_MANAGEMENT.md - TC_SALARY_MANAGEMENT.md - TC_DRAFT_BOX.md - TC_ATTENDANCE_MANAGEMENT.md - TC_EMPLOYEE_MANAGEMENT.md Co-Authored-By: Claude Opus 4.5 --- .gitignore | 4 +- testcase/TC_ATTENDANCE_MANAGEMENT.md | 185 ++++++++++++++ testcase/TC_DRAFT_BOX.md | 207 ++++++++++++++++ testcase/TC_EMPLOYEE_MANAGEMENT.md | 228 ++++++++++++++++++ testcase/TC_ORDER_MANAGEMENT.md | 150 ++++++++++++ testcase/TC_SALARY_MANAGEMENT.md | 147 +++++++++++ ...C_VENDOR_MANAGEMENT_2026-01-29_11-42-59.md | 126 ++++++++++ 7 files changed, 1046 insertions(+), 1 deletion(-) create mode 100644 testcase/TC_ATTENDANCE_MANAGEMENT.md create mode 100644 testcase/TC_DRAFT_BOX.md create mode 100644 testcase/TC_EMPLOYEE_MANAGEMENT.md create mode 100644 testcase/TC_ORDER_MANAGEMENT.md create mode 100644 testcase/TC_SALARY_MANAGEMENT.md create mode 100644 testcase/result/Fail-TC_VENDOR_MANAGEMENT_2026-01-29_11-42-59.md diff --git a/.gitignore b/.gitignore index 13a6af6..8b9ffe5 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ -testcase/ +# Screenshots and temporary files +*.png +*.tmp diff --git a/testcase/TC_ATTENDANCE_MANAGEMENT.md b/testcase/TC_ATTENDANCE_MANAGEMENT.md new file mode 100644 index 0000000..6e09101 --- /dev/null +++ b/testcase/TC_ATTENDANCE_MANAGEMENT.md @@ -0,0 +1,185 @@ +# TC - 근태관리 (Attendance Management) + +> **페이지**: https://dev.codebridge-x.com/hr/attendance-management +> **작성일**: 2026-01-29 +> **대상**: QC Playwright AI 테스트용 + +--- + +## 1. 목록 페이지 (List View) + +### 1.1 페이지 로딩 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| L-001 | 기본 | 페이지 접근 | `/hr/attendance-management` 정상 로딩, 테이블 표시 | +| L-002 | 기본 | 대시보드 카드 표시 | "미출근", "정시 출근", "지각", "휴가" 4개 카드 | +| L-003 | 기본 | 빈 목록 | 데이터 없을 때 빈 상태 메시지 표시 | +| L-004 | 기본 | GPS 위치 정보 모킹 | Geolocation API 모킹 성공 | + +### 1.2 테이블 컬럼 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| L-010 | 기본 | 컬럼 구성 | 번호, 부서, 직책, 이름, 직급, 기준일, 출근, 퇴근, 휴게, 연장근무, 사유 | +| L-011 | UI | 시간 포맷 | HH:MM 형식 표시 | +| L-012 | UI | 사유 표시 | 출장/휴가/외근/연장근무 텍스트 표시 | + +### 1.3 기간 필터 (빠른 선택) + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| L-020 | 기능 | 당해년도 버튼 | 해당 년도 데이터 필터링 | +| L-021 | 기능 | 전전월 버튼 | 전전월 데이터 필터링 | +| L-022 | 기능 | 전월 버튼 | 전월 데이터 필터링 | +| L-023 | 기능 | 당월 버튼 | 당월 데이터 필터링 | +| L-024 | 기능 | 어제 버튼 | 어제 데이터 필터링 | +| L-025 | 기능 | 오늘 버튼 | 오늘 데이터 필터링 | +| L-026 | UI | 활성 버튼 표시 | 선택된 버튼 강조 표시 | + +### 1.4 날짜 입력 필터 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| L-030 | 기능 | 시작일 입력 | 날짜 선택 가능 | +| L-031 | 기능 | 종료일 입력 | 날짜 선택 가능 | +| L-032 | 기능 | 날짜 필터 적용 | 선택한 기간 내 데이터만 필터링 | + +### 1.5 상태 탭 필터 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| L-040 | 기능 | 전체 탭 | 모든 근태 데이터 표시 | +| L-041 | 기능 | 미출근 탭 | 미출근 상태만 필터링 | +| L-042 | 기능 | 정시 출근 탭 | 정시 출근 상태만 필터링 | +| L-043 | 기능 | 지각 탭 | 지각 상태만 필터링 | +| L-044 | 기능 | 결근 탭 | 결근 상태만 필터링 | +| L-045 | 기능 | 휴가 탭 | 휴가 상태만 필터링 | +| L-046 | 기능 | 출장 탭 | 출장 상태만 필터링 | +| L-047 | 기능 | 외근 탭 | 외근 상태만 필터링 | +| L-048 | 기능 | 연장근무 탭 | 연장근무 상태만 필터링 | + +### 1.6 검색 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| L-050 | 기능 | 이름 검색 | 이름 입력 시 해당 직원만 필터링 | +| L-051 | 기능 | 부서 검색 | 부서명 입력 시 해당 부서만 필터링 | +| L-052 | 기능 | 검색어 지우기 | 검색어 삭제 시 전체 목록 복원 | +| L-053 | 경계 | 존재하지 않는 검색어 | 빈 결과 메시지 표시 | +| L-054 | UI | 검색 플레이스홀더 | "이름, 부서 검색..." 표시 | + +--- + +## 2. 근태 등록 모달 + +### 2.1 모달 열기 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| D-001 | 기능 | 근태 등록 버튼 클릭 | "근태 정보" 모달 열림 | +| D-002 | 기본 | 모달 제목 | "근태 정보" 표시 | + +### 2.2 모달 필드 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| D-010 | 기본 | 대상 필드 | 콤보박스, 사원 목록 표시 | +| D-011 | 기본 | 기준일 필드 | 날짜 선택, 기본값 오늘 | +| D-012 | 기본 | 출근 시간 필드 | 시간 선택, 기본값 9:00 | +| D-013 | 기본 | 퇴근 시간 필드 | 시간 선택, 기본값 18:00 | +| D-014 | 기본 | 야간 연장 시간 필드 | 시간 선택, 기본값 0:00 | +| D-015 | 기본 | 주말 연장 시간 필드 | 시간 선택, 기본값 0:00 | + +### 2.3 근태 등록 실행 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| D-020 | 기능 | 대상 선택 | 사원 선택 가능 | +| D-021 | 기능 | 출근 시간 변경 | 시간 입력/선택 가능 | +| D-022 | 기능 | 퇴근 시간 변경 | 시간 입력/선택 가능 | +| D-023 | 기능 | 저장 버튼 클릭 | 근태 등록 처리 | +| D-024 | 비즈 | ⚠️ 등록 성공 | 성공 토스트 + 모달 닫힘 | +| D-025 | 비즈 | ⚠️ 데이터 반영 | 목록에서 등록된 근태 확인 | +| D-026 | API | POST /api/v1/attendances | 근태 등록 API 호출 | + +### 2.4 취소/닫기 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| D-030 | 기능 | 취소 버튼 클릭 | 모달 닫힘, 데이터 미저장 | +| D-031 | 기능 | ESC 키 | 모달 닫힘 | + +--- + +## 3. 사유 등록 모달 + +### 3.1 모달 열기 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| R-001 | 기능 | 사유 등록 버튼 클릭 | "사유 정보" 모달 열림 | +| R-002 | 기본 | 모달 제목 | "사유 정보" 표시 | + +### 3.2 모달 필드 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| R-010 | 기본 | 대상 필드 | 콤보박스, 사원 목록 표시 | +| R-011 | 기본 | 기준일 필드 | 날짜 선택 | +| R-012 | 기본 | 유형 필드 | 드롭다운, 사유 유형 목록 | + +### 3.3 사유 유형 옵션 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| R-020 | 기능 | 유형 드롭다운 열기 | 옵션 목록 표시 | +| R-021 | 기능 | 출장신청서 선택 | 출장신청서 선택 가능 | +| R-022 | 기능 | 휴가신청서 선택 | 휴가신청서 선택 가능 | +| R-023 | 기능 | 외근신청서 선택 | 외근신청서 선택 가능 | +| R-024 | 기능 | 연장근무신청서 선택 | 연장근무신청서 선택 가능 | + +### 3.4 사유 등록 실행 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| R-030 | 기능 | 대상 선택 | 사원 선택 가능 | +| R-031 | 기능 | 유형 선택 | 사유 유형 선택 가능 | +| R-032 | 기능 | 등록 버튼 클릭 | 사유 등록 처리 | +| R-033 | 비즈 | ⚠️ 등록 성공 | 성공 토스트 + 모달 닫힘 | +| R-034 | 비즈 | ⚠️ 데이터 반영 | 목록 사유 컬럼에 등록된 사유 표시 | +| R-035 | API | POST /api/v1/attendance-reasons | 사유 등록 API 호출 | + +--- + +## 4. 엑셀 다운로드 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| E-001 | 기능 | 엑셀 다운로드 버튼 존재 | 버튼 표시 확인 | +| E-002 | 기능 | 다운로드 실행 | Network API 호출 + 실제 파일 다운로드 | +| E-003 | API | GET /api/v1/attendances/export | 엑셀 다운로드 API 호출 | + +--- + +## 5. API 응답 검증 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| A-001 | API | GET /api/v1/attendances 응답 | 페이지네이션 포함 목록 반환 | +| A-002 | API | POST /api/v1/attendances 응답 | 근태 등록 성공 응답 | +| A-003 | API | POST /api/v1/attendance-reasons 응답 | 사유 등록 성공 응답 | +| A-004 | API | GET /api/v1/attendances/export 응답 | 엑셀 파일 다운로드 | + +--- + +## TC 요약 + +| 카테고리 | 건수 | +|----------|------| +| 목록 페이지 | 38건 | +| 근태 등록 모달 | 18건 | +| 사유 등록 모달 | 18건 | +| 엑셀 다운로드 | 3건 | +| API 응답 검증 | 4건 | +| **합계** | **81건** | diff --git a/testcase/TC_DRAFT_BOX.md b/testcase/TC_DRAFT_BOX.md new file mode 100644 index 0000000..05bc78c --- /dev/null +++ b/testcase/TC_DRAFT_BOX.md @@ -0,0 +1,207 @@ +# TC - 기안함 (Draft Box) + +> **페이지**: https://dev.codebridge-x.com/approval/draft +> **작성일**: 2026-01-29 +> **대상**: QC Playwright AI 테스트용 + +--- + +## 1. 목록 페이지 (List View) + +### 1.1 페이지 로딩 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| L-001 | 기본 | 페이지 접근 | `/approval/draft` 정상 로딩, 테이블 표시 | +| L-002 | 기본 | 페이지 제목 | "기안함" + 설명 "작성한 결재 문서를 관리합니다" | +| L-003 | 기본 | 통계 카드 표시 | "진행", "완료", "반려", "임시 저장" 4개 카드 | +| L-004 | 기본 | 빈 목록 | 데이터 없을 때 "데이터가 없습니다" 메시지 | +| L-005 | 기본 | 기본 정렬 | 최신순(created_at desc) 정렬 | + +### 1.2 테이블 컬럼 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| L-010 | 기본 | 컬럼 구성 | 체크박스, 번호, 문서번호, 문서유형, 제목, 결재자, 기안일시, 상태, 작업 | +| L-011 | UI | 문서유형 뱃지 | 품의서/지출결의서/예상지출내역 Badge(outline) 표시 | +| L-012 | UI | 결재자 표시 | 단일: "홍길동", 복수: "홍길동 외 2명" | +| L-013 | UI | 상태 뱃지 색상 | 임시저장=회색, 결재대기=노랑, 진행중=파랑, 완료=초록, 반려=빨강 | + +### 1.3 검색 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| L-020 | 기능 | 문서번호 검색 | 문서번호 입력 시 해당 문서만 필터링 | +| L-021 | 기능 | 제목 검색 | 제목 입력 시 해당 문서만 필터링 | +| L-022 | 기능 | 기안자 검색 | 기안자명 입력 시 해당 문서만 필터링 | +| L-023 | 기능 | 검색어 지우기 | 검색어 삭제 시 전체 목록 복원 | +| L-024 | 경계 | 존재하지 않는 검색어 | 빈 결과 + "데이터가 없습니다" 메시지 | +| L-025 | UI | 검색 플레이스홀더 | "문서번호, 제목, 기안자 검색..." 표시 | + +### 1.4 필터 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| L-030 | 기능 | 필터 드롭다운 열기 | 전체, 임시저장, 결재대기, 진행중, 완료, 반려 옵션 표시 | +| L-031 | 기능 | 전체 필터 | 모든 문서 표시 | +| L-032 | 기능 | 임시저장 필터 | 임시저장 상태만 필터링 | +| L-033 | 기능 | 결재대기 필터 | 결재대기 상태만 필터링 | +| L-034 | 기능 | 진행중 필터 | 진행중 상태만 필터링 | +| L-035 | 기능 | 완료 필터 | 완료 상태만 필터링 | +| L-036 | 기능 | 반려 필터 | 반려 상태만 필터링 | + +### 1.5 정렬 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| L-040 | 기능 | 정렬 드롭다운 열기 | 최신순, 오래된순, 제목 오름차순, 제목 내림차순 옵션 | +| L-041 | 기능 | 최신순 정렬 | created_at desc 정렬 | +| L-042 | 기능 | 오래된순 정렬 | created_at asc 정렬 | +| L-043 | 기능 | 제목 오름차순 정렬 | title asc 정렬 | +| L-044 | 기능 | 제목 내림차순 정렬 | title desc 정렬 | + +### 1.6 체크박스 선택 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| L-050 | 기능 | 개별 체크박스 선택 | 해당 행 선택, 상신/삭제 버튼 표시 | +| L-051 | 기능 | 전체 선택 | 현재 페이지 모든 행 선택 | +| L-052 | 기능 | 전체 해제 | 모든 행 선택 해제, 버튼 숨김 | +| L-053 | UI | 임시저장 선택 시 | 작업 컬럼에 수정/삭제 버튼 표시 | + +### 1.7 행 동작 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| L-060 | 기능 | 임시저장 문서 클릭 | 문서 작성 페이지로 이동 (수정 모드) | +| L-061 | 기능 | 결재대기/진행중/완료 클릭 | 문서 상세 모달 열림 | +| L-062 | 기능 | 문서 작성 버튼 | 클릭 시 새 문서 작성 페이지 이동 | + +### 1.8 페이지네이션 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| L-070 | 기본 | 기본 페이지 크기 | 20건 표시 | +| L-071 | 기능 | 페이지 이동 | 2페이지 클릭 시 해당 페이지 데이터 로드 | +| L-072 | UI | 페이지 정보 | 현재 페이지/전체 페이지, 총 항목 수 표시 | + +--- + +## 2. 문서 상세 모달 + +### 2.1 모달 열기 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| D-001 | 기능 | 문서 행 클릭 | 문서 상세 모달 열림 | +| D-002 | 기본 | 모달 제목 | "문서 상세" | +| D-003 | API | 상세 API 호출 | GET /api/v1/approvals/{id} 호출 | + +### 2.2 모달 내용 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| D-010 | 기본 | 기본 정보 표시 | 문서번호, 기안일시 표시 | +| D-011 | 기본 | 결재자 목록 | 최대 3명 결재자 정보 + 상태 뱃지 | +| D-012 | UI | 결재자 상태 색상 | none=회색, pending=노랑, approved=초록, rejected=빨강 | + +### 2.3 문서 유형별 내용 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| D-020 | 기능 | 품의서 내용 | 거래처, 거래처 지급일, 제목, 내용, 사유, 예상금액, 첨부파일 | +| D-021 | 기능 | 지출결의서 내용 | 신청일, 지급일, 지출 내역, 카드 정보, 총액, 첨부파일 | +| D-022 | 기능 | 예상지출내역 내용 | 예상지급일, 카테고리, 금액, 거래처, 계좌, 총 지출, 계좌 잔액, 최종 차액 | + +### 2.4 모달 버튼 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| D-030 | 기능 | 수정 버튼 | 클릭 시 문서 작성 페이지로 이동 (수정 모드) | +| D-031 | 기능 | 복제 버튼 | 클릭 시 문서 작성 페이지로 이동 (복제 모드) | +| D-032 | 기능 | 상신 버튼 (임시저장) | 임시저장 상태일 때만 표시, 결재 상신 | +| D-033 | 기능 | 닫기 | 모달 닫힘, 목록 복귀 | + +--- + +## 3. PDF 다운로드 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| P-001 | 기능 | PDF 버튼 존재 | 모달 내 PDF 버튼 표시 | +| P-002 | 기능 | PDF 다운로드 실행 | 버튼 클릭 시 PDF 파일 다운로드 | +| P-003 | API | PDF API 호출 | GET /api/v1/approvals/{id}/pdf 호출 | +| P-004 | 검증 | ⚠️ PDF 파일 유효성 | %PDF- 시그니처 확인, 1KB 이상 | + +### 3.1 PDF 스타일 수동 확인 (Manual Verification) + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| P-010 | 수동 | 테이블 경계선 | 올바르게 표시 | +| P-011 | 수동 | 한글 폰트 | 깨지지 않고 정상 표시 | +| P-012 | 수동 | 숫자/금액 정렬 | 우측 정렬 | +| P-013 | 수동 | 여백(margin/padding) | 적절한 레이아웃 | +| P-014 | 수동 | 헤더/푸터 | 각 페이지에 올바르게 표시 | +| P-015 | 수동 | 로고/이미지 | 정상 표시 | +| P-016 | 수동 | 페이지 나눔 | 적절한 위치에서 발생 | +| P-017 | 수동 | 배경색/강조색 | 올바르게 적용 | +| P-018 | 수동 | 텍스트 오버플로우 | 잘리거나 겹치지 않음 | +| P-019 | 수동 | 결재선 정보 | 정상 표시 | + +--- + +## 4. 결재 상신/삭제 + +### 4.1 상신 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| A-001 | 기능 | 상신 버튼 클릭 | 결재 상신 처리 | +| A-002 | API | POST /api/v1/approvals/{id}/submit | 상신 API 호출 | +| A-003 | 비즈 | 상신 후 상태 변경 | 임시저장 → 결재대기 | +| A-004 | 비즈 | ⚠️ 통계 카드 업데이트 | 임시저장 -1, 진행 +1 | + +### 4.2 삭제 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| A-010 | 기능 | 삭제 버튼 클릭 | 삭제 확인 다이얼로그 표시 | +| A-011 | 기능 | 삭제 확인 | 문서 삭제 + 목록에서 제거 | +| A-012 | 기능 | 삭제 취소 | 아무 변경 없음 | +| A-013 | 비즈 | 임시저장만 삭제 가능 | 다른 상태는 삭제 불가 | + +--- + +## 5. API 응답 검증 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| API-001 | API | GET /api/v1/approvals/drafts | 페이지네이션 포함 목록 반환 | +| API-002 | API | GET /api/v1/approvals/drafts/summary | 통계 카드 데이터 반환 | +| API-003 | API | GET /api/v1/approvals/{id} | 문서 상세 반환 (content 포함) | +| API-004 | API | POST /api/v1/approvals/{id}/submit | 상신 성공 응답 | +| API-005 | API | DELETE /api/v1/approvals/{id} | 삭제 성공 응답 | + +--- + +## 6. 반응형 레이아웃 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| M-001 | UI | 모바일 카드 레이아웃 | 화면 크기에 따라 카드 형태 표시 | +| M-002 | UI | 모바일 카드 필드 | 문서번호, 기안일자, 기안자, 결재자 표시 | +| M-003 | UI | 모바일 액션 버튼 | 임시저장 선택 시 수정/삭제 버튼 | + +--- + +## TC 요약 + +| 카테고리 | 건수 | +|----------|------| +| 목록 페이지 | 45건 | +| 문서 상세 모달 | 18건 | +| PDF 다운로드 | 14건 | +| 결재 상신/삭제 | 8건 | +| API 응답 검증 | 5건 | +| 반응형 레이아웃 | 3건 | +| **합계** | **93건** | diff --git a/testcase/TC_EMPLOYEE_MANAGEMENT.md b/testcase/TC_EMPLOYEE_MANAGEMENT.md new file mode 100644 index 0000000..3b7d570 --- /dev/null +++ b/testcase/TC_EMPLOYEE_MANAGEMENT.md @@ -0,0 +1,228 @@ +# TC - 사원관리 (Employee Management) + +> **페이지**: https://dev.codebridge-x.com/hr/employee-management +> **작성일**: 2026-01-29 +> **대상**: QC Playwright AI 테스트용 + +--- + +## 1. 목록 페이지 (List View) + +### 1.1 페이지 로딩 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| L-001 | 기본 | 페이지 접근 | `/hr/employee-management` 정상 로딩, 테이블 표시 | +| L-002 | 기본 | 페이지 제목 | "사원관리" 표시 | +| L-003 | 기본 | 빈 목록 | 데이터 없을 때 빈 상태 메시지 표시 | +| L-004 | 기본 | 사원 등록 버튼 | "사원 등록" 버튼 존재 | + +### 1.2 검색/필터 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| L-010 | 기능 | 이름 검색 | 이름 입력 시 해당 사원만 필터링 | +| L-011 | 기능 | 부서 검색 | 부서명 입력 시 해당 부서만 필터링 | +| L-012 | 기능 | 검색어 지우기 | 검색어 삭제 시 전체 목록 복원 | +| L-013 | 경계 | 존재하지 않는 검색어 | 빈 결과 메시지 표시 | + +### 1.3 기간 검색 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| L-020 | 기능 | 시작일 입력 | 날짜 선택 가능 | +| L-021 | 기능 | 종료일 입력 | 날짜 선택 가능 | +| L-022 | 기능 | 검색 버튼 | 기간 내 입사일 사원 필터링 | +| L-023 | 기능 | 초기화 버튼 | 검색 조건 초기화, 전체 목록 표시 | +| L-024 | 경계 | 범위 외 기간 검색 | 해당 기간 입사자 없으면 빈 결과 | + +### 1.4 행 동작 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| L-030 | 기능 | 행 클릭 | 사원 상세 페이지로 이동 | +| L-031 | 기능 | 사원 등록 버튼 클릭 | 사원 등록 페이지로 이동 | + +--- + +## 2. 사원 등록 + +### 2.1 등록 페이지 접근 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| C-001 | 기능 | 등록 페이지 이동 | `/hr/employee-management?mode=new` 이동 | +| C-002 | 기본 | 페이지 제목 | "사원 등록" 표시 | +| C-003 | 기본 | 빈 폼 표시 | 모든 필드 빈 상태 | + +### 2.2 사원 정보 입력 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| C-010 | 기능 | 이름 입력 (*필수) | 텍스트 입력 가능 | +| C-011 | 기능 | 주민등록번호 입력 | 텍스트 입력 가능 | +| C-012 | 기능 | 휴대폰 입력 | 텍스트 입력 가능 | +| C-013 | 기능 | 이메일 입력 (*필수) | 텍스트 입력 가능 | +| C-014 | 기능 | 연봉 입력 | 숫자 입력 가능 | + +### 2.3 급여계좌 정보 입력 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| C-020 | 기능 | 은행명 입력 | 텍스트 입력 가능 | +| C-021 | 기능 | 계좌번호 입력 | 텍스트 입력 가능 | +| C-022 | 기능 | 예금주 입력 | 텍스트 입력 가능 | + +### 2.4 사원 상세 정보 입력 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| C-030 | 기능 | 사원코드 입력 | 텍스트 입력 가능 | +| C-031 | 기능 | 성별 선택 | 라디오 버튼 선택 (남성/여성) | +| C-032 | 기능 | 상세주소 입력 | 텍스트 입력 가능 | + +### 2.5 인사 정보 입력 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| C-040 | 기능 | 입사일 선택 | 날짜 선택 가능 | +| C-041 | 기능 | 고용형태 선택 | 드롭다운 선택 (정규직/계약직 등) | +| C-042 | 기능 | 직급 선택 | 드롭다운 선택 (사원/대리/과장 등) | + +### 2.6 사용자 정보 입력 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| C-050 | 기능 | 아이디 입력 (*필수) | 텍스트 입력 가능 | +| C-051 | 기능 | 비밀번호 입력 (*필수) | 텍스트 입력 가능 | +| C-052 | 기능 | 비밀번호 확인 (*필수) | 텍스트 입력 가능 | +| C-053 | 검증 | 비밀번호 불일치 | 에러 메시지 표시 | + +### 2.7 필수값 검증 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| C-060 | 검증 | 이름 미입력 | 저장 시 필수값 에러 메시지 | +| C-061 | 검증 | 이메일 미입력 | 저장 시 필수값 에러 메시지 | +| C-062 | 검증 | 아이디 미입력 | 저장 시 필수값 에러 메시지 | +| C-063 | 검증 | 비밀번호 미입력 | 저장 시 필수값 에러 메시지 | + +### 2.8 저장 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| C-070 | 기능 | 등록 버튼 클릭 | 사원 등록 처리 | +| C-071 | 비즈 | 등록 성공 | 성공 토스트 + 목록 페이지 이동 | +| C-072 | 비즈 | ⚠️ 데이터 반영 | 목록에서 등록된 사원 확인 | + +--- + +## 3. 사원 상세 조회 + +### 3.1 상세 페이지 접근 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| D-001 | 기능 | 상세 페이지 이동 | `/hr/employee-management/{id}` 이동 | +| D-002 | 기본 | 페이지 제목 | "사원 상세" 표시 | +| D-003 | 기본 | 버튼 표시 | 수정, 삭제, 목록 버튼 존재 | + +### 3.2 상세 정보 표시 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| D-010 | 기본 | 사원 정보 표시 | 이름, 주민등록번호, 휴대폰, 이메일, 연봉 표시 | +| D-011 | 기본 | 급여계좌 정보 표시 | 은행명, 계좌번호, 예금주 표시 | +| D-012 | 기본 | 인사 정보 표시 | 입사일, 고용형태, 직급 표시 | + +--- + +## 4. 사원 수정 + +### 4.1 수정 모드 전환 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| U-001 | 기능 | 수정 버튼 클릭 | 수정 모드 전환 | +| U-002 | 기본 | URL 변경 | `?mode=edit` 파라미터 추가 | +| U-003 | 기본 | 버튼 변경 | 취소, 저장 버튼 표시 | + +### 4.2 정보 수정 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| U-010 | 기능 | 휴대폰 수정 | 번호 변경 가능 | +| U-011 | 기능 | 이메일 수정 | 이메일 변경 가능 | +| U-012 | 기능 | 연봉 수정 | 금액 변경 가능 | + +### 4.3 수정 저장 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| U-020 | 기능 | 저장 버튼 클릭 | 수정 내용 저장 | +| U-021 | 비즈 | 수정 성공 | 성공 토스트 + 상세 모드 복귀 | +| U-022 | 비즈 | ⚠️ 데이터 반영 | 상세 페이지에서 수정된 정보 확인 | + +### 4.4 수정 취소 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| U-030 | 기능 | 취소 버튼 클릭 | 상세 모드 복귀, 변경사항 미저장 | + +--- + +## 5. 사원 삭제 + +### 5.1 삭제 실행 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| DEL-001 | 기능 | 삭제 버튼 클릭 | 삭제 확인 다이얼로그 표시 | +| DEL-002 | UI | 확인 다이얼로그 | "삭제하시겠습니까" 텍스트 표시 | + +### 5.2 삭제 확인/취소 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| DEL-010 | 기능 | 확인 버튼 클릭 | 사원 삭제 처리 | +| DEL-011 | 비즈 | 삭제 성공 | 성공 토스트 + 목록 페이지 이동 | +| DEL-012 | 비즈 | ⚠️ 데이터 반영 | 목록에서 삭제된 사원 없음 확인 | +| DEL-013 | 기능 | 취소 버튼 클릭 | 다이얼로그 닫힘, 아무 변경 없음 | + +--- + +## 6. CRUD 흐름 통합 테스트 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| CRUD-001 | 통합 | 생성 → 조회 | 등록 후 상세 페이지에서 확인 | +| CRUD-002 | 통합 | 조회 → 수정 | 상세에서 수정 후 변경 확인 | +| CRUD-003 | 통합 | 수정 → 삭제 | 수정된 데이터 삭제 후 목록에서 제거 확인 | +| CRUD-004 | 통합 | 전체 흐름 | 생성 → 조회 → 수정 → 삭제 전체 동작 | + +--- + +## 7. API 응답 검증 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| A-001 | API | GET /api/v1/employees 응답 | 페이지네이션 포함 목록 반환 | +| A-002 | API | POST /api/v1/employees 응답 | 사원 등록 성공 응답 | +| A-003 | API | GET /api/v1/employees/{id} 응답 | 사원 상세 반환 | +| A-004 | API | PUT /api/v1/employees/{id} 응답 | 사원 수정 성공 응답 | +| A-005 | API | DELETE /api/v1/employees/{id} 응답 | 사원 삭제 성공 응답 | + +--- + +## TC 요약 + +| 카테고리 | 건수 | +|----------|------| +| 목록 페이지 | 16건 | +| 사원 등록 | 30건 | +| 사원 상세 조회 | 6건 | +| 사원 수정 | 10건 | +| 사원 삭제 | 5건 | +| CRUD 통합 테스트 | 4건 | +| API 응답 검증 | 5건 | +| **합계** | **76건** | diff --git a/testcase/TC_ORDER_MANAGEMENT.md b/testcase/TC_ORDER_MANAGEMENT.md new file mode 100644 index 0000000..cfbd20d --- /dev/null +++ b/testcase/TC_ORDER_MANAGEMENT.md @@ -0,0 +1,150 @@ +# TC - 수주관리 (Order Management) + +> **페이지**: https://dev.codebridge-x.com/sales/order +> **작성일**: 2026-01-29 +> **대상**: QC Playwright AI 테스트용 + +--- + +## 1. 목록 페이지 (List View) + +### 1.1 페이지 로딩 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| L-001 | 기본 | 페이지 접근 | `/sales/order` 정상 로딩, 테이블 표시 | +| L-002 | 기본 | 통계 카드 표시 | "이번 달 수주", "분할 대기", "생산지시 대기", "출하 대기" 4개 카드 | +| L-003 | 기본 | 기본 정렬 | 최신순(등록일 내림차순) 정렬 | +| L-004 | 기본 | 빈 목록 | 데이터 없을 때 빈 상태 메시지 표시 | + +### 1.2 테이블 컬럼 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| L-010 | 기본 | 컬럼 구성 | 번호, 로트번호, 견적번호, 발주처, 현장명, 상태, 출고예정일, 배송방식 | +| L-011 | UI | 상태 뱃지 색상 | 수주등록=파랑, 수주확정=초록, 생산지시완료=보라, 미수=빨강 | +| L-012 | UI | 배송방식 표시 | 택배/상차/직배송 텍스트 표시 | + +### 1.3 상태 탭 필터 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| L-020 | 기능 | 전체 탭 | 모든 수주 표시 | +| L-021 | 기능 | 수주등록 탭 | 수주등록 상태만 필터링 | +| L-022 | 기능 | 수주확정 탭 | 수주확정 상태만 필터링 | +| L-023 | 기능 | 생산지시완료 탭 | 생산지시완료 상태만 필터링 | +| L-024 | 기능 | 미수 탭 | 미수 상태만 필터링 | +| L-025 | 경계 | 탭 전환 후 카운트 | 필터 결과 건수와 탭 배지 숫자 일치 | + +### 1.4 검색 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| L-030 | 기능 | 로트번호 검색 | 로트번호 입력 시 해당 수주만 필터링 | +| L-031 | 기능 | 발주처 검색 | 발주처명 입력 시 해당 수주만 필터링 | +| L-032 | 기능 | 현장명 검색 | 현장명 입력 시 해당 수주만 필터링 | +| L-033 | 기능 | 검색어 지우기 | 검색어 삭제 시 전체 목록 복원 | +| L-034 | 경계 | 존재하지 않는 검색어 | 빈 결과 + "검색 결과 없음" 메시지 | + +### 1.5 뷰 모드 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| L-040 | 기능 | 테이블 뷰 | 테이블 형태로 목록 표시 | +| L-041 | 기능 | 카드 뷰 | 카드 형태로 목록 표시 | +| L-042 | 기능 | 뷰 모드 전환 | 테이블↔카드 전환 시 데이터 유지 | + +### 1.6 행 동작 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| L-050 | 기능 | 행 클릭 | 수주 상세 모달/페이지 열림 | +| L-051 | 기능 | 수주 등록 버튼 | 클릭 시 등록 모달/페이지 열림 | + +--- + +## 2. 등록/수정 페이지 + +### 2.1 수주 등록 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| D-001 | 기본 | 등록 폼 로딩 | 빈 폼 표시, 저장/취소 버튼 | +| D-002 | 기본 | 필수 필드 표시 | 발주처, 현장명, 출고예정일 필수 표시 (*) | + +#### 2.1.1 필수값 검증 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| D-010 | 검증 | 발주처 미선택 | 저장 시 필수값 에러 메시지 | +| D-011 | 검증 | 현장명 미입력 | 저장 시 필수값 에러 메시지 | +| D-012 | 검증 | 출고예정일 미선택 | 저장 시 필수값 에러 메시지 | + +#### 2.1.2 폼 입력 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| D-020 | 기능 | 발주처 선택 | 거래처 목록 콤보박스에서 선택 | +| D-021 | 기능 | 현장명 입력 | 텍스트 입력 가능 | +| D-022 | 기능 | 출고예정일 선택 | 날짜 선택 캘린더 동작 | +| D-023 | 기능 | 배송방식 선택 | 택배/상차/직배송 드롭다운 선택 | +| D-024 | 기능 | 비고 입력 | 텍스트 입력 가능 | + +#### 2.1.3 저장 동작 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| D-030 | 기능 | 정상 저장 | 성공 토스트 + 목록 페이지 이동 | +| D-031 | 기능 | 저장 후 로트번호 | 자동 생성된 로트번호 확인 | +| D-032 | 기능 | 취소 버튼 | 목록 페이지로 복귀, 데이터 미저장 | +| D-033 | 비즈 | ⚠️ 등록 데이터 반영 | 목록에서 등록된 수주 확인 (토스트만 확인 불가) | + +### 2.2 수주 상세/수정 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| D-100 | 기본 | 상세 페이지 로딩 | 수주 상세 정보 표시 | +| D-101 | 기본 | 수정/삭제 버튼 | 상단에 수정/삭제 버튼 표시 | +| D-102 | 기능 | 수정 버튼 클릭 | 수정 모드 전환 | +| D-103 | 기능 | 수정 저장 | 변경사항 저장 + 성공 토스트 | +| D-104 | 비즈 | ⚠️ 수정 데이터 반영 | 목록에서 수정 내용 확인 (토스트만 확인 불가) | + +### 2.3 수주 상태 변경 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| D-110 | 비즈 | 수주확정 버튼 | 수주등록 → 수주확정 상태 변경 | +| D-111 | 비즈 | 생산지시 버튼 | 수주확정 → 생산지시 상태 변경 | +| D-112 | 비즈 | 상태 변경 조건 | 이전 상태 완료 후에만 다음 상태 전환 가능 | + +### 2.4 수주 삭제 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| D-120 | 기능 | 삭제 버튼 | 삭제 확인 다이얼로그 표시 | +| D-121 | 기능 | 삭제 확인 | 수주 삭제 + 목록 이동 | +| D-122 | 기능 | 삭제 취소 | 아무 변경 없음 | +| D-123 | 비즈 | 생산지시 후 삭제 | 생산지시 진행 중이면 삭제 불가 | +| D-124 | 비즈 | ⚠️ 삭제 데이터 반영 | 목록에서 삭제된 수주 없음 확인 | + +--- + +## 3. API 응답 검증 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| A-001 | API | GET /sales/order 응답 | 페이지네이션 포함 목록 반환 | +| A-002 | API | POST /sales/order 응답 | 로트번호 자동 생성, success: true | +| A-003 | API | PUT /sales/order/{id} 응답 | 수정 성공 응답 | +| A-004 | API | DELETE /sales/order/{id} 응답 | 삭제 성공 응답 | + +--- + +## TC 요약 + +| 카테고리 | 건수 | +|----------|------| +| 목록 페이지 | 25건 | +| 등록/수정 페이지 | 30건 | +| API 응답 검증 | 4건 | +| **합계** | **59건** | diff --git a/testcase/TC_SALARY_MANAGEMENT.md b/testcase/TC_SALARY_MANAGEMENT.md new file mode 100644 index 0000000..80d328e --- /dev/null +++ b/testcase/TC_SALARY_MANAGEMENT.md @@ -0,0 +1,147 @@ +# TC - 급여관리 (Salary Management) + +> **페이지**: https://dev.codebridge-x.com/hr/salary-management +> **작성일**: 2026-01-29 +> **대상**: QC Playwright AI 테스트용 + +--- + +## 1. 목록 페이지 (List View) + +### 1.1 페이지 로딩 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| L-001 | 기본 | 페이지 접근 | `/hr/salary-management` 정상 로딩, 테이블 표시 | +| L-002 | 기본 | 대시보드 카드 표시 | "총 실지급액", "총 기본급", "총 수당", "초과근무", "상여", "총 공제" 6개 카드 | +| L-003 | 기본 | 빈 목록 | 데이터 없을 때 빈 상태 메시지 표시 | +| L-004 | 기본 | 기본 정렬 | 최신순 정렬 | + +### 1.2 테이블 컬럼 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| L-010 | 기본 | 컬럼 구성 | 부서, 직책, 이름, 직급, 기본급, 수당, 초과근무, 상여, 공제, 실지급액, 일자, 상태, 작업 | +| L-011 | UI | 상태 뱃지 색상 | 지급완료=초록, 지급예정=노랑 | +| L-012 | UI | 금액 포맷 | 천 단위 콤마, 원 단위 표시 | + +### 1.3 날짜 필터 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| L-020 | 기능 | 시작일 입력 | 날짜 선택 캘린더 동작 | +| L-021 | 기능 | 종료일 입력 | 날짜 선택 캘린더 동작 | +| L-022 | 기능 | 날짜 필터 적용 | 선택한 기간 내 급여 데이터만 필터링 | +| L-023 | 경계 | 날짜 필터 후 카운트 | 필터링된 데이터 건수 표시 | + +### 1.4 검색 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| L-030 | 기능 | 이름 검색 | 이름 입력 시 해당 직원만 필터링 | +| L-031 | 기능 | 부서 검색 | 부서명 입력 시 해당 부서만 필터링 | +| L-032 | 기능 | 검색어 지우기 | 검색어 삭제 시 전체 목록 복원 | +| L-033 | 경계 | 존재하지 않는 검색어 | 빈 결과 + "검색 결과 없음" 메시지 | +| L-034 | UI | 검색 플레이스홀더 | "이름, 부서 검색..." 표시 | + +### 1.5 정렬 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| L-040 | 기능 | 정렬 드롭다운 열기 | 정렬 옵션 목록 표시 | +| L-041 | 기능 | 직급순 정렬 | 직급 기준 정렬 | +| L-042 | 기능 | 이름순 정렬 | 이름 기준 정렬 | +| L-043 | 기능 | 부서순 정렬 | 부서 기준 정렬 | +| L-044 | 기능 | 지급일순 정렬 | 지급일 기준 정렬 | +| L-045 | 기능 | 지급액순 정렬 | 실지급액 기준 정렬 | + +### 1.6 체크박스 선택 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| L-050 | 기능 | 개별 체크박스 선택 | 해당 행 선택, 지급완료/지급예정 버튼 표시 | +| L-051 | 기능 | 전체 선택 | 모든 행 체크박스 선택 | +| L-052 | 기능 | 전체 해제 | 모든 행 체크박스 해제 | + +--- + +## 2. 상태 변경 기능 + +### 2.1 지급완료 처리 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| D-001 | 기능 | 지급완료 버튼 클릭 | 선택된 항목 상태 변경 | +| D-002 | 비즈 | 지급완료 처리 성공 | 성공 토스트 + 상태 뱃지 변경 | +| D-003 | 경계 | 미선택 시 지급완료 | 버튼 비활성화 또는 경고 메시지 | + +### 2.2 지급예정 처리 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| D-010 | 기능 | 지급예정 버튼 클릭 | 선택된 항목 상태 변경 | +| D-011 | 비즈 | 지급예정 처리 성공 | 성공 토스트 + 상태 뱃지 변경 | + +--- + +## 3. 급여 상세 다이얼로그 + +### 3.1 모달 열기 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| D-020 | 기능 | 수정 버튼 클릭 | 급여 상세 다이얼로그 열림 | +| D-021 | 기본 | 모달 필드 표시 | 기본급, 수당, 초과근무, 상여, 공제, 실지급액 표시 | + +### 3.2 급여 수정 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| D-030 | 기능 | 기본급 수정 | 금액 입력 가능 | +| D-031 | 기능 | 수당 수정 | 금액 입력 가능 | +| D-032 | 기능 | 초과근무 수정 | 금액 입력 가능 | +| D-033 | 기능 | 상여 수정 | 금액 입력 가능 | +| D-034 | 기능 | 공제 수정 | 금액 입력 가능 | +| D-035 | 계산 | 실지급액 자동 계산 | 기본급 + 수당 + 초과근무 + 상여 - 공제 | + +### 3.3 저장/닫기 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| D-040 | 기능 | 저장 버튼 클릭 | 수정 내용 저장 + 성공 토스트 | +| D-041 | 비즈 | ⚠️ 저장 데이터 반영 | 목록에서 수정된 금액 확인 | +| D-042 | 기능 | 취소/ESC 클릭 | 모달 닫힘, 변경사항 미저장 | + +--- + +## 4. 엑셀 다운로드 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| E-001 | 기능 | 엑셀 다운로드 버튼 | 버튼 존재 확인 | +| E-002 | 기능 | 다운로드 실행 | Network API 호출 + 실제 파일 다운로드 | +| E-003 | 검증 | ⚠️ 파일 검증 | .xlsx 또는 .xls 파일 다운로드 완료 | + +--- + +## 5. API 응답 검증 + +| TC# | 구분 | 테스트 항목 | 기대 결과 | +|-----|------|------------|-----------| +| A-001 | API | GET /api/v1/salaries 응답 | 페이지네이션 포함 목록 반환 | +| A-002 | API | PUT /api/v1/salaries/bulk-status 응답 | 상태 변경 성공 응답 | +| A-003 | API | PUT /api/v1/salaries/{id} 응답 | 급여 수정 성공 응답 | +| A-004 | API | GET /api/export/salaries 응답 | 엑셀 파일 다운로드 | + +--- + +## TC 요약 + +| 카테고리 | 건수 | +|----------|------| +| 목록 페이지 | 34건 | +| 상태 변경 | 6건 | +| 급여 상세 다이얼로그 | 12건 | +| 엑셀 다운로드 | 3건 | +| API 응답 검증 | 4건 | +| **합계** | **59건** | diff --git a/testcase/result/Fail-TC_VENDOR_MANAGEMENT_2026-01-29_11-42-59.md b/testcase/result/Fail-TC_VENDOR_MANAGEMENT_2026-01-29_11-42-59.md new file mode 100644 index 0000000..74cfaeb --- /dev/null +++ b/testcase/result/Fail-TC_VENDOR_MANAGEMENT_2026-01-29_11-42-59.md @@ -0,0 +1,126 @@ +# ❌ TC 테스트 결과: 거래처관리 (Vendor Management) + +**테스트 일시**: 2026-01-29 11:39:46 ~ 11:42:59 +**대상 URL**: https://dev.codebridge-x.com/accounting/vendors +**결과**: **FAIL** (1건 실패) + +--- + +## 테스트 요약 + +| 구분 | 건수 | 비율 | +|------|------|------| +| ✅ PASS | 14 | 12.7% | +| ❌ FAIL | 1 | 0.9% | +| ⏭️ SKIP | 95 | 86.4% | +| **합계** | **110** | 100% | + +--- + +## ❌ FAIL 항목 (수정 필요) + +| TC# | 항목 | 기대 결과 | 실제 결과 | 심각도 | +|-----|------|----------|----------|--------| +| **L-070** | 신규 등록 버튼 | 클릭 시 상세 페이지(new 모드)로 이동 | **버튼 미발견** | 🔴 HIGH | + +### L-070 상세 분석 + +**문제**: 거래처관리 목록 페이지에서 "신규 등록", "추가", "새 거래처" 등의 버튼을 찾을 수 없음 + +**확인된 버튼 목록**: +- 종합분석, 품질인정심사, 품질관리, 결재관리, 기준정보 관리, 게시판, 인사관리, 리포트, 고객센터, 설정, 판매관리, 생산관리, 자재관리, 출고관리, 회계관리, 거래처관리, 거래처원장 + +**예상 원인**: +1. 신규 등록 버튼이 구현되지 않음 +2. 권한 문제로 버튼이 숨겨짐 +3. 버튼 텍스트가 다른 형태 (아이콘만 있거나 다른 명칭) + +**권장 조치**: +- [ ] 신규 등록 버튼 추가 또는 UI 확인 +- [ ] 사용자 권한 확인 (TestUser5) + +--- + +## ✅ PASS 항목 (14건) + +| TC# | 항목 | 결과 | +|-----|------|------| +| L-001 | 페이지 접근 | ✅ `/accounting/vendors` 정상 로딩, 테이블 표시 | +| L-002 | 통계 카드 표시 | ✅ 통계 정보 발견 | +| L-010 | 컬럼 구성 | ✅ 테이블 헤더 컬럼 확인 | +| L-020 | 거래처명 검색 | ✅ 검색어 입력 시 필터링 동작 | +| L-023 | 검색어 지우기 | ✅ 검색어 삭제 시 전체 목록 복원 | +| L-050 | 기본 페이지 크기 | ✅ 20건 표시 | +| L-060 | 행 클릭 | ✅ 상세 페이지(view 모드)로 이동 | +| D-100 | 조회 페이지 로딩 | ✅ mode=view 정상 로딩 | +| D-101 | 거래처코드 표시 | ✅ 코드 필드 발견 | +| D-102 | 수정/삭제/목록 버튼 | ✅ 버튼 발견 | +| D-103 | 수정 버튼 클릭 | ✅ edit 모드 전환 | +| D-200 | 수정 페이지 로딩 | ✅ mode=edit 정상 로딩 | +| D-220 | 수정 저장 버튼 | ✅ 저장 버튼 발견 | +| D-221 | 수정 취소 버튼 | ✅ 취소 버튼 발견 | + +--- + +## ⏭️ SKIP 항목 (95건) + +### 목록 페이지 (L 시리즈) + +| TC# | 항목 | SKIP 사유 | +|-----|------|----------| +| L-003 | 통계 숫자 일치 | 수동 확인 필요 | +| L-004 | 기본 정렬 | 정렬 순서 수동 확인 필요 | +| L-005 | 빈 목록 | 현재 20건 데이터 있음 | +| L-011~L-015 | UI 뱃지 색상 | 시각적 확인 필요 | +| L-021~L-022 | 코드/사업자번호 검색 | 기본 검색 테스트로 대체 | +| L-024~L-027 | 경계값 검색 | 기본 검색 테스트로 대체 | +| L-030~L-039 | 필터 테스트 | 수동 확인 필요 | +| L-040~L-045 | 정렬 테스트 | 수동 확인 필요 | +| L-051~L-055 | 페이지네이션 | 수동 확인 필요 | +| L-061~L-068 | 행 선택/동작 | 수동 확인 필요 | + +### 상세/등록 페이지 (D 시리즈) + +| TC# | 항목 | SKIP 사유 | +|-----|------|----------| +| D-001~D-084 | 신규 등록 | 데이터 생성 방지 | +| D-104 | 목록 버튼 | 테스트 흐름상 SKIP | +| D-110~D-132 | 미수금/메모/신용분석 | 수동 확인 필요 | +| D-201~D-213 | 수정 필드/토글 | 데이터 변경 방지 | +| D-222~D-226 | 삭제 관련 | 데이터 보존 | + +### 기타 + +| 카테고리 | TC# | SKIP 사유 | +|----------|-----|----------| +| 모바일 반응형 | M-001~M-005 | 뷰포트 변경 테스트 필요 | +| API 응답 검증 | A-001~A-006 | Network 탭 확인 필요 | +| 데이터 정합성 | I-001~I-005 | 수동 확인 필요 | + +--- + +## 테스트 환경 + +| 항목 | 값 | +|------|-----| +| 브라우저 | Chromium (Playwright) | +| 뷰포트 | 1920 x 1080 | +| 테스트 계정 | TestUser5 | +| 서버 | dev.codebridge-x.com | + +--- + +## 후속 조치 + +### 🔴 필수 (FAIL 항목) +1. **L-070**: 신규 등록 버튼 UI 확인 및 추가 + +### 🟡 권장 (SKIP → 수동 확인) +1. 필터/정렬 기능 수동 테스트 +2. UI 뱃지 색상 시각적 확인 +3. API 응답 포맷 검증 (Network 탭) +4. 데이터 정합성 검증 (미수금 계산 등) + +--- + +*Generated by Playwright E2E Test Runner*