Files
sam-hotfix/testcase/TC_VENDOR_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 - 거래처관리 (Vendor Management)

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


⚠️ 테스트 환경 안내

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

테스트 실행 지침

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

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

  3. 데이터 삭제 테스트: 삭제 테스트(L-065L-068, D-222D-225)는 테스트 중 생성한 데이터를 대상으로 실행합니다. 기존 시드 데이터는 보존합니다.

  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 기본 페이지 접근 /accounting/vendors 정상 로딩, 테이블 표시
L-002 기본 통계 카드 표시 상단에 "전체 거래처", "매출 거래처", "매입 거래처" 3개 카드 표시
L-003 기본 통계 숫자 일치 카드 숫자 합 = 테이블 전체 건수 (매출+매입+매입매출)
L-004 기본 기본 정렬 최신순(등록일 내림차순) 정렬
L-005 기본 빈 목록 데이터 없을 때 빈 상태 메시지 표시

1.2 테이블 컬럼

TC# 구분 테스트 항목 기대 결과
L-010 기본 컬럼 구성 체크박스, 번호, 구분, 거래처명, 매입결제일, 매출결제일, 신용등급, 거래등급, 미수금, 악성채권, 작업
L-011 UI 구분 뱃지 색상 매출=초록, 매입=주황, 매입매출=파랑
L-012 UI 신용등급 뱃지 색상 AAA/AA/A=초록, BBB/BB/B=노랑, CCC/CC/C/D=빨강
L-013 UI 거래등급 뱃지 색상 A(우수)=초록, B(양호)=파랑, C(보통)=노랑, D(주의)=주황, E(위험)=빨강
L-014 UI 미수금 표시 금액 > 0이면 빨간색, 0이면 일반 또는 "-"
L-015 UI 악성채권 표시 악성채권=빨간 뱃지, 정상=초록 뱃지, 없으면 "-"

1.3 검색

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

1.4 필터

TC# 구분 테스트 항목 기대 결과
L-030 기능 구분 필터 - 매출 매출 거래처만 표시
L-031 기능 구분 필터 - 매입 매입 거래처만 표시
L-032 기능 구분 필터 - 매입매출 매입매출 거래처만 표시
L-033 기능 신용등급 필터 선택한 등급만 표시 (AAA~D 각각)
L-034 기능 거래등급 필터 선택한 등급만 표시 (A~E 각각)
L-035 기능 악성채권 필터 - 악성채권 악성채권 거래처만 표시
L-036 기능 악성채권 필터 - 정상 정상 거래처만 표시
L-037 기능 필터 복합 적용 구분 + 신용등급 동시 적용 시 AND 조건
L-038 기능 필터 해제 필터 해제 시 전체 목록 복원
L-039 경계 필터 결과 0건 빈 상태 메시지 표시, 에러 없음

1.5 정렬

TC# 구분 테스트 항목 기대 결과
L-040 기능 최신순 등록일 내림차순
L-041 기능 등록순 등록일 오름차순
L-042 기능 이름 오름차순 가나다/ABC 순
L-043 기능 이름 내림차순 역순
L-044 기능 미수금 높은순 미수금 내림차순
L-045 기능 미수금 낮은순 미수금 오름차순

1.6 페이지네이션

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

1.7 행 선택 및 동작

TC# 구분 테스트 항목 기대 결과
L-060 기능 행 클릭 상세 페이지(view 모드)로 이동
L-061 기능 체크박스 개별 선택 해당 행 선택 상태
L-062 기능 전체 선택 체크박스 현재 페이지 전체 선택/해제
L-063 기능 호버 시 작업 버튼 행 호버 시 수정/삭제 버튼 표시
L-064 기능 수정 버튼 클릭 상세 페이지(edit 모드)로 이동
L-065 기능 삭제 버튼 클릭 삭제 확인 다이얼로그 표시
L-066 기능 삭제 확인 확인 시 거래처 삭제, 목록 갱신
L-067 기능 삭제 취소 취소 시 아무 변경 없음
L-068 비즈 주문 있는 거래처 삭제 삭제 불가 에러 메시지 표시

1.8 신규 등록 버튼

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

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

2.1 신규 등록 (mode=new)

TC# 구분 테스트 항목 기대 결과
D-001 기본 페이지 로딩 빈 폼 표시, 저장/취소 버튼
D-002 기본 기본값 확인 매입결제일=10, 매출결제일=15, 신용등급=A, 거래등급=C, 구분=매입매출
D-003 기본 거래처코드 자동 생성 코드 필드 읽기전용, 저장 시 8자리 영숫자 자동 생성
D-004 기본 삭제 버튼 없음 신규 모드에서 삭제 버튼 미표시

2.1.1 필수값 검증

TC# 구분 테스트 항목 기대 결과
D-010 검증 거래처명 미입력 저장 시 필수값 에러 메시지
D-011 검증 거래처명만 입력 후 저장 최소 필수값으로 정상 저장

2.1.2 기본 정보 입력

TC# 구분 테스트 항목 기대 결과
D-020 기능 거래처명 입력 최대 100자, 정상 입력
D-021 기능 구분 선택 매출/매입/매입매출 드롭다운 선택
D-022 기능 사업자등록번호 입력 포맷 검증 (xxx-xx-xxxxx)
D-023 기능 대표자명 입력 최대 100자
D-024 경계 거래처명 100자 초과 입력 제한 또는 에러 메시지

2.1.3 연락처 정보

TC# 구분 테스트 항목 기대 결과
D-030 기능 우편번호 검색 우편번호 검색 팝업/모달 정상 동작
D-031 기능 주소 자동 입력 우편번호 선택 시 기본주소 자동 채움
D-032 기능 상세주소 입력 수동 입력 가능
D-033 기능 전화번호 입력 PhoneInput 포맷팅 (자동 하이픈)
D-034 기능 모바일 입력 포맷팅 적용
D-035 기능 팩스 입력 포맷팅 적용
D-036 기능 이메일 입력 유효한 이메일 형식 검증
D-037 경계 잘못된 이메일 형식 에러 메시지 표시
D-038 경계 전화번호 숫자 외 문자 자동 제거 또는 에러

2.1.4 담당자 정보

TC# 구분 테스트 항목 기대 결과
D-040 기능 담당자명 입력 최대 50자
D-041 기능 담당자 전화 입력 최대 20자
D-042 기능 시스템 관리자 입력 최대 50자

2.1.5 회사 정보

TC# 구분 테스트 항목 기대 결과
D-050 기능 업태 입력 최대 50자
D-051 기능 업종 입력 최대 100자
D-052 UI 로고 업로드 영역 이미지 업로드 UI 표시 (구현 여부 확인)

2.1.6 결제 정보

TC# 구분 테스트 항목 기대 결과
D-060 기능 매입 결제일 선택 1~31일 드롭다운 선택
D-061 기능 매출 결제일 선택 1~31일 드롭다운 선택
D-062 기본 기본값 확인 매입=10일, 매출=15일

2.1.7 신용/거래 정보

TC# 구분 테스트 항목 기대 결과
D-070 기능 신용등급 선택 AAA~D 드롭다운
D-071 기능 거래등급 선택 A(우수)~E(위험) 드롭다운
D-072 기능 세금계산서 이메일 입력 이메일 형식 검증
D-073 기능 입금계좌 은행 선택 21개 은행 드롭다운
D-074 기능 계좌번호 입력 AccountNumberInput 포맷팅
D-075 기능 예금주 입력 텍스트 입력

2.1.8 저장 동작

TC# 구분 테스트 항목 기대 결과
D-080 기능 정상 저장 성공 메시지 + 상세(view) 페이지로 이동
D-081 기능 저장 후 거래처코드 8자리 영숫자 코드 자동 생성 확인
D-082 기능 취소 버튼 목록 페이지로 복귀, 데이터 미저장
D-083 경계 네트워크 오류 시 저장 에러 메시지 표시, 데이터 유지
D-084 기능 전체 필드 입력 저장 모든 필드 정상 저장 및 조회

2.2 조회 모드 (mode=view)

TC# 구분 테스트 항목 기대 결과
D-100 기본 페이지 로딩 저장된 데이터 표시, 모든 필드 읽기전용
D-101 기본 거래처코드 표시 자동 생성된 코드 표시
D-102 UI 수정/삭제/목록 버튼 상단에 표시
D-103 기능 수정 버튼 클릭 edit 모드로 전환
D-104 기능 목록 버튼/뒤로가기 목록 페이지로 복귀

2.2.1 미수금/악성채권 정보 (읽기전용)

TC# 구분 테스트 항목 기대 결과
D-110 기능 미수금 표시 매출합계 - 입금합계 계산값 표시
D-111 기능 악성채권 상태 표시 뱃지 또는 텍스트로 상태 표시
D-112 기능 연체 상태 표시 토글 또는 텍스트 표시

2.2.2 메모 시스템

TC# 구분 테스트 항목 기대 결과
D-120 기능 메모 목록 표시 등록된 메모 시간순 표시
D-121 기능 메모 추가 텍스트 입력 + 추가 버튼 → 목록에 반영
D-122 기능 메모 형식 "YYYY-MM-DD HH:mm [작성자] 내용"
D-123 기능 메모 삭제 X 버튼 클릭 → 삭제 확인 → 삭제
D-124 경계 빈 메모 추가 빈 텍스트 등록 불가
D-125 경계 메모 없는 상태 빈 메모 메시지 또는 빈 목록

2.2.3 신용분석 모달

TC# 구분 테스트 항목 기대 결과
D-130 기능 신용분석 버튼 클릭 시 CreditAnalysisModal 열림
D-131 기능 모달 내용 신용 분석 데이터 표시
D-132 기능 모달 닫기 닫기 버튼 또는 외부 클릭으로 닫힘

2.3 수정 모드 (mode=edit)

TC# 구분 테스트 항목 기대 결과
D-200 기본 페이지 로딩 기존 데이터 채워진 편집 가능 폼
D-201 기본 거래처코드 읽기전용 코드 수정 불가
D-202 기능 거래처명 수정 변경 후 저장 정상 동작
D-203 기능 구분 변경 매출→매입 등 변경 가능
D-204 기능 연락처 수정 전화/모바일/팩스/이메일 수정
D-205 기능 결제일 변경 매입/매출 결제일 변경
D-206 기능 등급 변경 신용등급/거래등급 변경
D-207 기능 은행/계좌 변경 은행 선택 및 계좌번호 수정

2.3.1 악성채권 토글

TC# 구분 테스트 항목 기대 결과
D-210 비즈 악성채권 ON 토글 활성화 → BadDebt 레코드 생성 (COLLECTING)
D-211 비즈 악성채권 OFF 토글 비활성화 → BadDebt RECOVERED, is_active=false
D-212 비즈 연체 토글 ON is_overdue=true 저장
D-213 비즈 연체 토글 OFF is_overdue=false 저장

2.3.2 저장/취소/삭제

TC# 구분 테스트 항목 기대 결과
D-220 기능 수정 저장 변경사항 저장 + view 모드 전환
D-221 기능 수정 취소 변경사항 폐기 + view 모드 복귀
D-222 기능 삭제 버튼 삭제 확인 다이얼로그 표시
D-223 기능 삭제 확인 거래처 삭제 + 목록 페이지 이동
D-224 기능 삭제 취소 아무 변경 없음
D-225 비즈 주문 있는 거래처 삭제 삭제 불가, 에러 메시지
D-226 검증 필수값 제거 후 저장 거래처명 비우고 저장 시 에러

3. 모바일 반응형

TC# 구분 테스트 항목 기대 결과
M-001 UI 목록 모바일 뷰 테이블 → 카드 레이아웃 전환
M-002 UI 카드 핵심 정보 거래처명, 구분 뱃지, 주요 정보 표시
M-003 UI 카드 액션 버튼 수정/삭제 접근 가능
M-004 UI 상세 페이지 레이아웃 모바일에서 폼 필드 세로 정렬
M-005 UI 검색/필터 모바일 검색바, 필터 접근 가능

4. API 응답 검증

TC# 구분 테스트 항목 기대 결과
A-001 API GET /clients 응답 { success: true, data: { data: [...], total, page, size } }
A-002 API GET /clients/{id} 응답 outstanding_amount, bad_debt_total, has_bad_debt 필드 포함
A-003 API POST /clients 응답 client_code 자동 생성, 8자리 영숫자
A-004 API GET /clients/stats 응답 total, sales, purchase, both, badDebt, normal 포함
A-005 API DELETE - 주문 연결 400 에러 + 적절한 에러 메시지
A-006 API 멀티테넌트 격리 다른 tenant 데이터 접근 불가

5. 데이터 정합성

TC# 구분 테스트 항목 기대 결과
I-001 비즈 미수금 계산 매출합계 - 입금합계 = 표시 미수금
I-002 비즈 결제일 표시 변환 API "15일" → UI "15" 표시
I-003 비즈 구분 코드 변환 API SALES→매출, PURCHASE→매입, BOTH→매입매출
I-004 비즈 등록→조회 일치 등록한 데이터 = 조회 데이터 (모든 필드)
I-005 비즈 수정→조회 일치 수정한 데이터 = 재조회 데이터

TC 요약

카테고리 건수
목록 페이지 42건
상세/등록 페이지 52건
모바일 반응형 5건
API 응답 검증 6건
데이터 정합성 5건
합계 110건

참고: 구분 체계

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