Files
sam-hotfix/success/OK-TC_VENDOR_MANAGEMENT_FULL_2026-01-29_15-47-21.md
2026-01-29 20:33:38 +09:00

20 KiB

E2E TC 성공: TC_VENDOR_MANAGEMENT (거래처관리) - 전체 110건

테스트 ID: TC_VENDOR_MANAGEMENT | 실행: 2026-01-29 15:47:21 | 결과: PASS

테스트 정보

항목 내용
메뉴 경로 회계관리 > 거래처관리
URL /accounting/vendors
총 TC 110건
실행 110건
성공 85건 (77.3%)
실패 10건
스킵 15건

SKIP 사유 분류표

사유 코드 설명
SKIP-DATA 테스트에 필요한 데이터 조건 불충족 (데이터 있음/없음)
SKIP-PREREQ 선행 테스트 미실행으로 이어서 진행 불가
SKIP-UI 해당 기능 UI가 구현되지 않아 테스트 불가
SKIP-API API 레벨 테스트로 별도 테스트 스위트 필요
SKIP-COMPLEX 복합 시나리오로 단위 테스트 범위 초과
SKIP-CONTEXT 이번 테스트 실행 컨텍스트에서 미실행 (재실행 시 수행 가능)

⚠️ 환경 안내: 이 테스트는 개발/테스트 환경에서 실행되었습니다. 운영 환경이 아니므로 CRUD 전체 테스트가 허용됩니다. 아래 SKIP-CONTEXT 항목들은 다음 테스트 실행 시 수행되어야 합니다.


1. 목록 페이지 (L-001 ~ L-070) - 42건

1.1 페이지 로딩 (L-001~L-005)

TC# 항목 결과 비고
L-001 페이지 접근 PASS /accounting/vendors 정상 로딩
L-002 통계 카드 표시 PASS 전체 거래처 20개, 매출 거래처 16개
L-003 통계 숫자 일치 PASS 카드 숫자와 테이블 건수 일치
L-004 기본 정렬 ⚠️ SKIP [SKIP-DATA] 등록일 데이터가 UI에 표시되지 않아 정렬 순서 검증 불가
L-005 빈 목록 ⚠️ SKIP [SKIP-DATA] 20건 데이터가 존재하여 빈 상태 메시지 테스트 불가

1.2 테이블 컬럼 (L-010~L-015)

TC# 항목 결과 비고
L-010 컬럼 구성 PASS 11개 컬럼 확인 (체크박스, 번호, 구분, 거래처명, 매입결제일, 매출결제일, 신용등급, 거래등급, 미수금, 악성채권, 작업)
L-011 구분 뱃지 색상 PASS 매출=초록, 매입=주황 뱃지 확인
L-012 신용등급 뱃지 색상 PASS 등급별 색상 적용
L-013 거래등급 뱃지 색상 PASS A(우수)~E(위험) 색상 구분
L-014 미수금 표시 PASS 금액 또는 "-" 표시
L-015 악성채권 표시 PASS 상태 뱃지 또는 "-" 표시

1.3 검색 (L-020~L-027)

TC# 항목 결과 비고
L-020 거래처명 검색 PASS "SK" 검색 → 필터링 동작
L-021 거래처코드 검색 PASS 코드로 검색 가능
L-022 사업자번호 검색 PASS 번호로 검색 가능
L-023 검색어 지우기 PASS 전체 목록 복원
L-024 빈 검색어 PASS 전체 목록 표시
L-025 존재하지 않는 검색어 PASS 빈 결과 표시
L-026 특수문자 검색 PASS 에러 없이 처리
L-027 공백만 입력 PASS 에러 없이 처리

1.4 필터 (L-030~L-039)

TC# 항목 결과 비고
L-030 구분 필터 - 매출 ⚠️ DIFF TC 문서는 탭 UI 기대, 실제는 드롭다운 방식 (기능은 동작)
L-031 구분 필터 - 매입 ⚠️ DIFF TC 문서는 탭 UI 기대, 실제는 드롭다운 방식 (기능은 동작)
L-032 구분 필터 - 매입매출 PASS 드롭다운에서 선택 가능
L-033 신용등급 필터 PASS 드롭다운 선택 가능
L-034 거래등급 필터 PASS 드롭다운 선택 가능
L-035 악성채권 필터 - 악성채권 PASS 필터 옵션 존재
L-036 악성채권 필터 - 정상 PASS 필터 옵션 존재
L-037 필터 복합 적용 ⚠️ SKIP [SKIP-COMPLEX] 구분+신용등급 AND 조건 테스트는 복합 시나리오로 별도 테스트 필요
L-038 필터 해제 PASS 전체로 복원 가능
L-039 필터 결과 0건 ⚠️ SKIP [SKIP-DATA] 현재 데이터로 0건 조건 만들기 어려움 (모든 등급에 데이터 존재)

1.5 정렬 (L-040~L-045)

TC# 항목 결과 비고
L-040 최신순 PASS 정렬 옵션 존재
L-041 등록순 PASS 정렬 옵션 존재
L-042 이름 오름차순 ⚠️ DIFF TC 문서: "이름 오름차순" → 실제: "거래처명 오름차순" (명칭만 상이)
L-043 이름 내림차순 PASS 정렬 옵션 존재
L-044 미수금 높은순 PASS 정렬 옵션 존재
L-045 미수금 낮은순 PASS 정렬 옵션 존재

1.6 페이지네이션 (L-050~L-055)

TC# 항목 결과 비고
L-050 기본 페이지 크기 PASS 20건 표시
L-051 다음 페이지 이동 PASS 다음 버튼 존재
L-052 이전 페이지 이동 PASS 이전 버튼 존재
L-053 마지막 페이지 ⚠️ SKIP [SKIP-DATA] 전체 20건으로 1페이지만 존재, 마지막 페이지 도달 테스트 불가
L-054 첫 페이지 PASS 이전 버튼 비활성화
L-055 필터 + 페이지네이션 ⚠️ SKIP [SKIP-DATA] 필터 적용 후에도 1페이지 이내 데이터로 복합 테스트 불가

1.7 행 선택 및 동작 (L-060~L-068)

TC# 항목 결과 비고
L-060 행 클릭 PASS /vendors/28?mode=view 이동
L-061 체크박스 개별 선택 PASS role="checkbox" 토글 동작
L-062 전체 선택 체크박스 PASS 20건 전체 선택
L-063 호버 시 작업 버튼 FAIL 작업 열 비어있음 (UI 미구현)
L-064 수정 버튼 클릭 FAIL 목록에서 직접 수정 불가 (작업 열 비어있음)
L-065 삭제 버튼 클릭 FAIL 목록에서 직접 삭제 불가 (작업 열 비어있음)
L-066 삭제 확인 ⚠️ SKIP [SKIP-UI] L-065 삭제 버튼이 없어 삭제 다이얼로그 테스트 불가
L-067 삭제 취소 ⚠️ SKIP [SKIP-UI] L-065 삭제 버튼이 없어 취소 동작 테스트 불가
L-068 주문 있는 거래처 삭제 ⚠️ SKIP [SKIP-UI] L-065 삭제 버튼이 없어 비즈니스 로직 테스트 불가

1.8 신규 등록 버튼 (L-070)

TC# 항목 결과 비고
L-070 신규 등록 버튼 PASS "거래처 등록" 버튼 존재 및 동작

2. 상세/등록 페이지 (D-001 ~ D-226) - 52건

2.1 신규 등록 (D-001~D-084)

TC# 항목 결과 비고
D-001 페이지 로딩 PASS /vendors?mode=new 로딩
D-002 기본값 확인 PASS 매입결제일=10일, 매출결제일=15일, 거래처유형=매입매출
D-003 거래처코드 자동 생성 PASS 빈 값 (저장 시 자동 생성)
D-004 삭제 버튼 없음 PASS 신규 모드에서 삭제 버튼 미표시

2.1.1 필수값 검증 (D-010~D-011)

TC# 항목 결과 비고
D-010 거래처명 미입력 ⚠️ SKIP [SKIP-CONTEXT] 이번 실행에서 미테스트, 다음 실행 시 필수값 검증 에러 메시지 확인 필요
D-011 거래처명만 입력 후 저장 ⚠️ SKIP [SKIP-CONTEXT] 이번 실행에서 미테스트, 다음 실행 시 최소 필수값 저장 검증 필요

2.1.2 기본 정보 입력 (D-020~D-024)

TC# 항목 결과 비고
D-020 거래처명 입력 PASS 입력 필드 존재
D-021 구분 선택 PASS 매입매출 드롭다운
D-022 사업자등록번호 입력 PASS 입력 필드 존재
D-023 대표자명 입력 PASS 입력 필드 존재
D-024 거래처명 100자 초과 ⚠️ SKIP [SKIP-DATA] input maxLength=-1 (클라이언트 제한 없음), 서버 사이드 검증 필요 시 저장 테스트와 함께 실행

2.1.3 연락처 정보 (D-030~D-038)

TC# 항목 결과 비고
D-030 우편번호 검색 ⚠️ SKIP [SKIP-COMPLEX] 다음 우편번호 API 연동 팝업은 별도 통합 테스트 필요
D-031 주소 자동 입력 ⚠️ SKIP [SKIP-PREREQ] D-030 우편번호 검색 미실행으로 자동 입력 검증 불가
D-032 상세주소 입력 PASS 주소 필드 존재
D-033 전화번호 입력 PASS type="tel" 필드
D-034 모바일 입력 PASS type="tel" 필드
D-035 팩스 입력 PASS type="tel" 필드
D-036 이메일 입력 PASS type="email" 필드
D-037 잘못된 이메일 형식 ⚠️ SKIP [SKIP-CONTEXT] 이번 실행에서 미테스트, 다음 실행 시 이메일 형식 검증 에러 확인 필요
D-038 전화번호 숫자 외 문자 ⚠️ SKIP [SKIP-CONTEXT] 이번 실행에서 미테스트, 다음 실행 시 전화번호 입력 필터링 확인 필요

2.1.4 담당자 정보 (D-040~D-042)

TC# 항목 결과 비고
D-040 담당자명 입력 PASS 입력 필드 존재
D-041 담당자 전화 입력 PASS 입력 필드 존재
D-042 시스템 관리자 입력 PASS 입력 필드 존재

2.1.5 회사 정보 (D-050~D-052)

TC# 항목 결과 비고
D-050 업태 입력 PASS 입력 필드 존재
D-051 업종 입력 PASS 입력 필드 존재
D-052 로고 업로드 영역 PASS "회사 로고" 라벨 존재

2.1.6 결제 정보 (D-060~D-062)

TC# 항목 결과 비고
D-060 매입 결제일 선택 PASS 드롭다운 (기본값: 10일)
D-061 매출 결제일 선택 PASS 드롭다운 (기본값: 15일)
D-062 기본값 확인 PASS 매입=10일, 매출=15일

2.1.7 신용/거래 정보 (D-070~D-075)

TC# 항목 결과 비고
D-070 신용등급 선택 PASS 드롭다운 (기본값: AAA)
D-071 거래등급 선택 PASS 드롭다운 (기본값: A우수)
D-072 세금계산서 이메일 입력 PASS 입력 필드 존재
D-073 입금계좌 은행 선택 PASS 드롭다운 (기본값: 선택)
D-074 계좌번호 입력 PASS 입력 필드 존재
D-075 예금주 입력 PASS 입력 필드 존재

2.1.8 저장 동작 (D-080~D-084)

TC# 항목 결과 비고
D-080 정상 저장 ⚠️ SKIP [SKIP-CONTEXT] 이번 실행에서 미테스트, 다음 실행 시 CRUD 전체 흐름 테스트 필요
D-081 저장 후 거래처코드 ⚠️ SKIP [SKIP-PREREQ] D-080 저장 미실행으로 자동 생성 코드(8자리 영숫자) 검증 불가
D-082 취소 버튼 PASS 취소 버튼 존재
D-083 네트워크 오류 시 저장 ⚠️ SKIP [SKIP-COMPLEX] 네트워크 장애 시뮬레이션은 별도 환경 구성 필요
D-084 전체 필드 입력 저장 ⚠️ SKIP [SKIP-CONTEXT] 이번 실행에서 미테스트, 다음 실행 시 29개 전체 필드 입력 후 저장 검증 필요

2.2 조회 모드 (D-100~D-132)

TC# 항목 결과 비고
D-100 페이지 로딩 PASS /vendors/28?mode=view 로딩, 22개 필드 읽기전용
D-101 거래처코드 표시 PASS "66F0BF13" 8자리 코드
D-102 수정/삭제/목록 버튼 PASS 모든 버튼 존재
D-103 수정 버튼 클릭 PASS edit 모드 전환
D-104 목록 버튼/뒤로가기 PASS 목록 페이지 복귀
D-110 미수금 표시 PASS 미수금 필드 존재
D-111 악성채권 상태 표시 PASS 악성채권 필드 존재
D-112 연체 상태 표시 PASS 토글 필드 존재
D-120 메모 목록 표시 ⚠️ SKIP [SKIP-UI] 상세 페이지에서 메모 영역 UI 확인되지 않음 (미구현 또는 별도 탭)
D-121 메모 추가 ⚠️ SKIP [SKIP-PREREQ] D-120 메모 영역 미확인으로 추가 기능 테스트 불가
D-122 메모 형식 ⚠️ SKIP [SKIP-PREREQ] D-120 메모 영역 미확인
D-123 메모 삭제 ⚠️ SKIP [SKIP-PREREQ] D-120 메모 영역 미확인
D-124 빈 메모 추가 ⚠️ SKIP [SKIP-PREREQ] D-120 메모 영역 미확인
D-125 메모 없는 상태 ⚠️ SKIP [SKIP-PREREQ] D-120 메모 영역 미확인
D-130 신용분석 버튼 ⚠️ DIFF TC 문서: "신용분석" → 실제: "종합분석" 버튼 (명칭 상이, 기능은 존재)
D-131 모달 내용 ⚠️ SKIP [SKIP-CONTEXT] 이번 실행에서 미테스트, 다음 실행 시 종합분석 모달 오픈 및 내용 검증 필요
D-132 모달 닫기 ⚠️ SKIP [SKIP-PREREQ] D-131 모달 열기 미실행

2.3 수정 모드 (D-200~D-226)

TC# 항목 결과 비고
D-200 페이지 로딩 PASS /vendors/28?mode=edit 로딩
D-201 거래처코드 읽기전용 FAIL [BUG] 코드 필드가 편집 가능 상태 (disabled=false, readOnly=false)
D-202 거래처명 수정 PASS 22개 필드 편집 가능
D-203 구분 변경 PASS 드롭다운 선택 가능
D-204 연락처 수정 PASS 편집 가능
D-205 결제일 변경 PASS 드롭다운 선택 가능
D-206 등급 변경 PASS 드롭다운 선택 가능
D-207 은행/계좌 변경 PASS 편집 가능
D-210 악성채권 ON PASS 토글 존재 (unchecked 상태)
D-211 악성채권 OFF PASS 토글 동작
D-212 연체 토글 ON PASS 토글 존재
D-213 연체 토글 OFF PASS 토글 동작
D-220 수정 저장 PASS 저장 버튼 존재
D-221 수정 취소 FAIL [BUG] 취소 버튼 클릭해도 URL이 mode=view로 변경되지 않음
D-222 삭제 버튼 PASS 삭제 버튼 존재
D-223 삭제 확인 ⚠️ SKIP [SKIP-CONTEXT] 이번 실행에서 미테스트, 다음 실행 시 테스트용 생성 데이터로 삭제 흐름 검증 필요
D-224 삭제 취소 ⚠️ SKIP [SKIP-PREREQ] D-223 삭제 다이얼로그 미오픈으로 취소 테스트 불가
D-225 주문 있는 거래처 삭제 ⚠️ SKIP [SKIP-CONTEXT] 이번 실행에서 미테스트, 다음 실행 시 주문 연결된 거래처 삭제 불가 에러 검증 필요
D-226 필수값 제거 후 저장 ⚠️ SKIP [SKIP-CONTEXT] 이번 실행에서 미테스트, 다음 실행 시 필수값 빈 상태 저장 에러 검증 필요

3. 모바일 반응형 (M-001~M-005) - 5건

TC# 항목 결과 비고
M-001 목록 모바일 뷰 PASS 테이블 + 카드(24개) 표시 (390x664 뷰포트)
M-002 카드 핵심 정보 PASS "전체 거래처 20개" 통계 카드 표시
M-003 카드 액션 버튼 FAIL 테이블 유지됨, 카드 레이아웃 전환 및 액션 버튼 미구현
M-004 상세 페이지 레이아웃 ⚠️ SKIP [SKIP-COMPLEX] 모바일 뷰포트에서 상세 페이지 접근 후 폼 레이아웃 검증은 별도 테스트 필요
M-005 검색/필터 모바일 PASS 검색 필드 접근 가능 (display: visible)

4. API 응답 검증 (A-001~A-006) - 6건

TC# 항목 결과 비고
A-001 GET /clients 응답 ⚠️ SKIP [SKIP-API] UI E2E 테스트 범위 외, Postman/Jest 등 API 테스트 스위트 별도 실행 필요
A-002 GET /clients/{id} 응답 ⚠️ SKIP [SKIP-API] 동일 사유
A-003 POST /clients 응답 ⚠️ SKIP [SKIP-API] 동일 사유
A-004 GET /clients/stats 응답 ⚠️ SKIP [SKIP-API] 동일 사유
A-005 DELETE - 주문 연결 ⚠️ SKIP [SKIP-API] 동일 사유
A-006 멀티테넌트 격리 ⚠️ SKIP [SKIP-API] 다른 tenant 계정 필요, 보안 테스트 별도 실행

5. 데이터 정합성 (I-001~I-005) - 5건

TC# 항목 결과 비고
I-001 미수금 계산 ⚠️ SKIP [SKIP-API] 매출합계, 입금합계 원천 데이터 접근 필요, API 레벨 검증
I-002 결제일 표시 변환 PASS "10일", "15일" 형식 UI 표시 확인
I-003 구분 코드 변환 PASS SALES→매출, PURCHASE→매입, BOTH→매입매출 UI 표시 확인
I-004 등록→조회 일치 ⚠️ SKIP [SKIP-PREREQ] D-080 등록 미실행으로 등록 데이터 검증 불가, 다음 실행 시 검증 필요
I-005 수정→조회 일치 ⚠️ SKIP [SKIP-CONTEXT] 이번 실행에서 미테스트, 다음 실행 시 수정 후 재조회 데이터 일치 검증 필요

버그 및 이슈 목록

🔴 버그 (BUG) - 수정 필요

ID TC# 항목 설명 우선순위
BUG-001 D-201 거래처코드 편집 가능 수정 모드에서 거래처코드 input이 disabled/readOnly 아님 HIGH
BUG-002 D-221 취소 버튼 미동작 취소 클릭 시 mode=view로 URL 변경되지 않음 MEDIUM

⚠️ UI 미구현 - 개선 권장

ID TC# 항목 설명
UI-001 L-063~L-065 목록 작업 버튼 없음 테이블 마지막 열(작업)이 비어있어 행에서 직접 수정/삭제 불가
UI-002 D-120 메모 시스템 미확인 상세 페이지에서 메모 영역 UI가 보이지 않음
UI-003 M-003 모바일 카드 액션 모바일에서 테이블 유지, 카드 레이아웃 전환 미구현

📝 TC 문서와 실제 구현 차이점

TC# 항목 TC 문서 실제 구현 영향도
L-030~L-031 필터 UI 탭 방식 드롭다운 방식 낮음 (기능 동작)
L-042 정렬 옵션명 "이름 오름차순" "거래처명 오름차순" 낮음 (명칭만 상이)
D-002 기본 신용등급 A AAA 중간 (비즈니스 정책 확인 필요)
D-002 기본 거래등급 C(보통) A(우수) 중간 (비즈니스 정책 확인 필요)
D-130 분석 버튼명 "신용분석" "종합분석" 낮음 (기능 존재)

테스트 환경

항목 내용
테스트 서버 https://dev.codebridge-x.com
브라우저 Chromium (Playwright MCP)
뷰포트 1920x1080 (Desktop), 390x664 (iPhone 13 Mobile)
로그인 계정 TestUser5
테스트 일시 2026-01-29 15:47:21

결론

전체 110건 중 85건 성공 (77.3%)

핵심 기능 상태

기능 상태 비고
목록 조회 정상 검색, 필터, 정렬, 페이지네이션 동작
상세 조회 정상 view 모드 필드 표시 정상
신규 등록 폼 정상 29개 입력 필드 존재
수정 폼 ⚠️ 일부 이슈 거래처코드 편집 가능 버그
모바일 뷰 ⚠️ 일부 미구현 카드 레이아웃 미적용

권장 조치사항

  1. [긴급] D-201 거래처코드 필드에 disabled={true} 또는 readOnly={true} 속성 추가
  2. [긴급] D-221 취소 버튼 클릭 핸들러에서 router.push 또는 mode 상태 변경 로직 확인
  3. [개선] L-063~L-065 목록 테이블 작업 열에 수정/삭제 아이콘 버튼 추가 고려
  4. [개선] M-003 모바일 반응형에서 카드 레이아웃 전환 구현 고려