refactor: testcase 폴더 hotfix Git으로 통합

- 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 <noreply@anthropic.com>
This commit is contained in:
lab1
2026-01-29 13:32:30 +09:00
parent 5b9debd417
commit 7cc88df130
7 changed files with 1046 additions and 1 deletions

4
.gitignore vendored
View File

@@ -1 +1,3 @@
testcase/
# Screenshots and temporary files
*.png
*.tmp

View File

@@ -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건** |

207
testcase/TC_DRAFT_BOX.md Normal file
View File

@@ -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건** |

View File

@@ -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건** |

View File

@@ -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건** |

View File

@@ -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건** |

View File

@@ -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*