Files
sam-hotfix/testcase/TC_QUOTATION_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

20 KiB
Raw Permalink Blame History

TC - 견적관리 (Quotation Management)

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


⚠️ 테스트 환경 안내

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

테스트 실행 지침

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

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

  3. 견적 삭제 테스트: 삭제 테스트는 테스트 중 생성한 데이터를 대상으로 실행합니다.

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


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 기본 페이지 접근 /sales/quote-management 정상 로딩, 테이블 표시
L-002 기본 통계 카드 표시 "전체", "작성중", "발송완료", "수주전환", "만료" 5개 카드
L-003 기본 통계 숫자 일치 카드 숫자 합 = 테이블 전체 건수
L-004 기본 기본 정렬 최신순(작성일 내림차순) 정렬
L-005 기본 빈 목록 데이터 없을 때 빈 상태 메시지 표시
L-006 기본 이번 달 견적 현황 이번 달 견적 금액/건수 요약

1.2 테이블 컬럼

TC# 구분 테스트 항목 기대 결과
L-010 기본 컬럼 구성 체크박스, 번호, 견적번호, 거래처, 견적일, 유효기간, 총금액, 상태, 담당자, 작업
L-011 UI 상태 뱃지 색상 작성중=회색, 발송완료=파랑, 수주전환=초록, 만료=빨강, 취소=주황
L-012 UI 금액 포맷 천단위 콤마 + "원" 표시
L-013 UI 유효기간 경고 유효기간 D-3 이내 빨간색 표시
L-014 UI 거래처명 링크 클릭 시 거래처 상세 페이지 이동
L-015 UI 만료 표시 유효기간 경과 시 "만료" 뱃지

1.3 검색

TC# 구분 테스트 항목 기대 결과
L-020 기능 견적번호 검색 번호 일부 입력 시 해당 견적만 필터링
L-021 기능 거래처명 검색 거래처명 입력 시 해당 견적만 필터링
L-022 기능 품목명 검색 견적 내 품목명으로 검색
L-023 기능 담당자 검색 담당자명으로 검색
L-024 기능 검색어 지우기 검색어 삭제 시 전체 목록 복원
L-025 경계 빈 검색어 전체 목록 표시
L-026 경계 존재하지 않는 검색어 빈 결과 + "검색 결과 없음" 메시지

1.4 필터

TC# 구분 테스트 항목 기대 결과
L-030 기능 상태 필터 - 작성중 작성중 견적만 표시
L-031 기능 상태 필터 - 발송완료 발송완료 견적만 표시
L-032 기능 상태 필터 - 수주전환 수주로 전환된 견적만 표시
L-033 기능 상태 필터 - 만료 유효기간 지난 견적만 표시
L-034 기능 상태 필터 - 취소 취소된 견적만 표시
L-035 기능 기간 필터 견적일 시작~종료 범위 내 견적 표시
L-036 기능 거래처 필터 특정 거래처 견적만 표시
L-037 기능 담당자 필터 특정 담당자 견적만 표시
L-038 기능 금액 범위 필터 설정한 금액 범위 내 견적만 표시
L-039 기능 필터 복합 적용 상태 + 기간 + 거래처 동시 적용 시 AND 조건
L-040 기능 필터 해제 필터 해제 시 전체 목록 복원
L-041 경계 필터 결과 0건 빈 상태 메시지 표시, 에러 없음

1.5 정렬

TC# 구분 테스트 항목 기대 결과
L-050 기능 최신순 견적일 내림차순
L-051 기능 등록순 견적일 오름차순
L-052 기능 금액 높은순 총금액 내림차순
L-053 기능 금액 낮은순 총금액 오름차순
L-054 기능 유효기간 임박순 유효기간 오름차순
L-055 기능 거래처명순 거래처명 가나다순

1.6 페이지네이션

TC# 구분 테스트 항목 기대 결과
L-060 기능 기본 페이지 크기 한 페이지 20건 표시
L-061 기능 페이지 크기 변경 20/50/100건 선택 가능
L-062 기능 다음 페이지 이동 다음 페이지로 이동
L-063 기능 이전 페이지 이동 이전 페이지로 복귀
L-064 경계 마지막 페이지 "다음" 버튼 비활성화
L-065 경계 첫 페이지 "이전" 버튼 비활성화

1.7 행 선택 및 동작

TC# 구분 테스트 항목 기대 결과
L-070 기능 행 클릭 상세 페이지(view 모드)로 이동
L-071 기능 체크박스 개별 선택 해당 행 선택 상태
L-072 기능 전체 선택 체크박스 현재 페이지 전체 선택/해제
L-073 기능 호버 시 작업 버튼 수정/복사/삭제/PDF/이메일 버튼 표시
L-074 기능 수정 버튼 클릭 상세 페이지(edit 모드)로 이동
L-075 기능 복사 버튼 클릭 견적 복사 생성
L-076 기능 PDF 버튼 클릭 견적서 PDF 다운로드
L-077 기능 이메일 버튼 클릭 견적서 이메일 발송 모달
L-078 기능 삭제 버튼 클릭 삭제 확인 다이얼로그 표시
L-079 비즈 수주 전환된 견적 삭제 삭제 불가 에러 메시지

1.8 일괄 처리

TC# 구분 테스트 항목 기대 결과
L-080 기능 일괄 PDF 다운로드 다중 선택 → ZIP으로 PDF 다운로드
L-081 기능 일괄 이메일 발송 다중 선택 → 일괄 이메일 발송
L-082 기능 일괄 삭제 다중 선택 → 일괄 삭제
L-083 기능 Excel 내보내기 견적 목록 Excel 다운로드

1.9 신규 등록 버튼

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

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

2.1 견적 작성 (mode=new)

TC# 구분 테스트 항목 기대 결과
D-001 기본 페이지 로딩 빈 폼 표시, 저장/취소 버튼
D-002 기본 견적번호 자동 생성 임시번호 표시, 저장 시 정식 번호 부여
D-003 기본 기본값 확인 견적일=오늘, 유효기간=14일 후, 담당자=로그인 사용자
D-004 기본 삭제 버튼 없음 신규 모드에서 삭제 버튼 미표시

2.1.1 필수값 검증

TC# 구분 테스트 항목 기대 결과
D-010 검증 거래처 미선택 저장 시 필수값 에러 메시지
D-011 검증 품목 미추가 저장 시 필수값 에러 메시지
D-012 검증 유효기간 미입력 저장 시 필수값 에러 메시지
D-013 검증 필수값만 입력 저장 거래처 + 품목으로 정상 저장

2.1.2 기본 정보 입력

TC# 구분 테스트 항목 기대 결과
D-020 기능 거래처 검색/선택 검색 후 거래처 선택
D-021 기능 거래처 정보 자동 채움 선택 시 주소, 연락처, 담당자 자동 입력
D-022 기능 견적일 선택 달력에서 날짜 선택
D-023 기능 유효기간 선택 견적일 이후 날짜만 선택 가능
D-024 기능 유효기간 단축 선택 7일/14일/30일/60일/90일 버튼
D-025 기능 담당자 선택 담당자 드롭다운 선택
D-026 기능 견적 제목 입력 선택적 제목 입력 (최대 200자)
D-027 경계 유효기간 < 견적일 에러 메시지 또는 자동 보정

2.1.3 품목 추가

TC# 구분 테스트 항목 기대 결과
D-030 기능 품목 검색 추가 품목 검색 → 선택 → 견적에 추가
D-031 기능 품목 직접 추가 빈 행 추가 → 품목 정보 입력
D-032 기능 품목 선택 시 자동 입력 품목코드, 품목명, 단가 자동 입력
D-033 기능 수량 입력 수량 입력 시 금액 자동 계산
D-034 기능 단가 수정 기본 단가 수정 가능
D-035 기능 할인율 입력 품목별 할인율 입력 (%)
D-036 기능 할인금액 입력 품목별 할인금액 직접 입력
D-037 기능 금액 자동 계산 수량 × 단가 - 할인 = 금액
D-038 기능 비고 입력 품목별 비고 입력
D-039 기능 품목 삭제 추가된 품목 삭제
D-040 기능 품목 순서 변경 드래그앤드롭으로 순서 변경
D-041 경계 수량 0 입력 에러 또는 자동 1로 설정
D-042 경계 음수 단가 에러 메시지
D-043 기능 다중 품목 추가 품목 검색에서 다중 선택 추가

2.1.4 금액 계산

TC# 구분 테스트 항목 기대 결과
D-050 기능 공급가액 합계 품목별 금액 합계 표시
D-051 기능 부가세 자동 계산 공급가액 × 10% 자동 계산
D-052 기능 총금액 계산 공급가액 + 부가세 = 총금액
D-053 기능 전체 할인 적용 전체 금액에 할인율/할인금액 적용
D-054 기능 부가세 별도/포함 부가세 계산 방식 선택
D-055 기능 소수점 처리 원 단위 절사/반올림 설정
D-056 비즈 금액 실시간 반영 품목 변경 시 합계 실시간 갱신

2.1.5 추가 정보

TC# 구분 테스트 항목 기대 결과
D-060 기능 특기사항 입력 텍스트 에어리어 (최대 1000자)
D-061 기능 결제조건 선택 현금/카드/계좌이체/외상 선택
D-062 기능 납기조건 입력 납기 일자 또는 기간 입력
D-063 기능 인도조건 입력 배송/픽업/설치 등 입력
D-064 기능 담당자 메모 입력 내부용 메모 (고객에게 미표시)

2.1.6 첨부파일

TC# 구분 테스트 항목 기대 결과
D-070 기능 파일 첨부 이미지/PDF/문서 첨부
D-071 기능 다중 파일 첨부 최대 5개 파일 첨부
D-072 기능 첨부파일 삭제 첨부된 파일 삭제
D-073 경계 파일 용량 초과 10MB 초과 시 에러
D-074 경계 지원하지 않는 형식 허용되지 않은 확장자 에러

2.1.7 저장 동작

TC# 구분 테스트 항목 기대 결과
D-080 기능 임시저장 작성중 상태로 저장
D-081 기능 정상 저장 성공 메시지 + view 페이지로 이동
D-082 기능 저장 후 견적번호 정식 견적번호 생성 확인
D-083 기능 취소 버튼 목록 페이지로 복귀, 데이터 미저장
D-084 경계 네트워크 오류 시 저장 에러 메시지, 데이터 유지
D-085 기능 저장 후 발송 저장 후 바로 이메일 발송 옵션

2.2 조회 모드 (mode=view)

TC# 구분 테스트 항목 기대 결과
D-100 기본 페이지 로딩 저장된 데이터 표시, 모든 필드 읽기전용
D-101 기본 견적번호 표시 정식 견적번호 표시
D-102 UI 버튼 표시 수정/복사/PDF/이메일/수주전환/목록 버튼
D-103 기능 수정 버튼 클릭 edit 모드로 전환
D-104 기능 복사 버튼 클릭 새 견적으로 데이터 복사
D-105 기능 목록 버튼/뒤로가기 목록 페이지로 복귀

2.2.1 PDF 출력

TC# 구분 테스트 항목 기대 결과
D-110 기능 PDF 미리보기 견적서 PDF 형태로 미리보기
D-111 기능 PDF 다운로드 견적서 PDF 파일 다운로드
D-112 기능 인쇄 견적서 직접 인쇄
D-113 UI PDF 양식 회사 로고, 도장 표시
D-114 UI 품목 목록 표시 품목 테이블 정확히 표시

2.2.2 이메일 발송

TC# 구분 테스트 항목 기대 결과
D-120 기능 이메일 발송 모달 수신자, 제목, 내용 입력 모달
D-121 기능 수신자 자동 입력 거래처 이메일 자동 입력
D-122 기능 수신자 추가 추가 수신자 입력 가능
D-123 기능 참조 추가 CC 수신자 추가
D-124 기능 이메일 제목 기본값 "[회사명] 견적서 발송 - 견적번호"
D-125 기능 이메일 본문 편집 기본 템플릿 제공, 수정 가능
D-126 기능 PDF 자동 첨부 견적서 PDF 자동 첨부
D-127 기능 추가 첨부파일 추가 파일 첨부 가능
D-128 기능 발송 확인 발송 후 성공 메시지
D-129 비즈 발송 이력 기록 발송 일시, 수신자 이력 저장
D-130 경계 잘못된 이메일 형식 에러 메시지

2.2.3 수주 전환

TC# 구분 테스트 항목 기대 결과
D-140 기능 수주 전환 버튼 견적 → 수주 전환 확인 다이얼로그
D-141 기능 전체 품목 전환 모든 품목 수주로 전환
D-142 기능 일부 품목 전환 선택한 품목만 수주로 전환
D-143 기능 수량 조정 전환 수량 조정하여 수주 생성
D-144 비즈 전환 후 상태 견적 상태 "수주전환"으로 변경
D-145 비즈 수주 페이지 이동 전환 후 생성된 수주 페이지로 이동

2.2.4 이력 관리

TC# 구분 테스트 항목 기대 결과
D-150 기능 수정 이력 견적 수정 이력 표시
D-151 기능 발송 이력 이메일 발송 이력 표시
D-152 기능 이력 상세 변경 전/후 값 비교 표시

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 기능 수정 저장 변경사항 저장 + view 모드 전환
D-211 기능 수정 취소 변경사항 폐기 + view 모드 복귀
D-212 기능 삭제 버튼 삭제 확인 다이얼로그 표시
D-213 기능 삭제 확인 견적 삭제 + 목록 페이지 이동
D-214 비즈 수주전환 후 삭제 삭제 불가, 에러 메시지

3. 견적 복사

TC# 구분 테스트 항목 기대 결과
CP-001 기능 복사 버튼 클릭 새 견적 작성 페이지로 이동
CP-002 기능 데이터 복사 거래처, 품목, 조건 복사
CP-003 기능 날짜 초기화 견적일=오늘, 유효기간 재설정
CP-004 기능 견적번호 새로 생성 기존 번호와 다른 새 번호
CP-005 비즈 가격 최신화 옵션 품목 단가 현재가로 업데이트 옵션

4. 견적 템플릿

TC# 구분 테스트 항목 기대 결과
T-001 기능 템플릿 저장 현재 견적을 템플릿으로 저장
T-002 기능 템플릿 목록 저장된 템플릿 목록 표시
T-003 기능 템플릿 적용 템플릿 선택 시 데이터 채움
T-004 기능 템플릿 수정 기존 템플릿 수정
T-005 기능 템플릿 삭제 템플릿 삭제

5. 모바일 반응형

TC# 구분 테스트 항목 기대 결과
M-001 UI 목록 모바일 뷰 테이블 → 카드 레이아웃 전환
M-002 UI 카드 핵심 정보 견적번호, 거래처, 금액, 상태 표시
M-003 UI 상세 페이지 레이아웃 모바일에서 세로 스크롤
M-004 UI 품목 입력 모바일 모바일에서 품목 추가/수정 가능
M-005 UI PDF 뷰어 모바일 모바일에서 PDF 확인 가능

6. API 응답 검증

TC# 구분 테스트 항목 기대 결과
API-001 API GET /quotations 응답 { success: true, data: { data: [...], total, page, size } }
API-002 API GET /quotations/{id} 응답 견적 상세 + 품목 목록 + 이력
API-003 API POST /quotations 응답 quotation_number 자동 생성
API-004 API POST /quotations/{id}/send 응답 이메일 발송 결과
API-005 API POST /quotations/{id}/convert 응답 수주 전환 결과 + 수주 ID
API-006 API GET /quotations/{id}/pdf 응답 PDF 파일 응답
API-007 API 멀티테넌트 격리 다른 tenant 데이터 접근 불가

7. 데이터 정합성

TC# 구분 테스트 항목 기대 결과
I-001 비즈 금액 계산 정확성 수량×단가-할인 = 품목금액
I-002 비즈 부가세 계산 공급가액 × 10% = 부가세
I-003 비즈 총금액 계산 공급가액 + 부가세 = 총금액
I-004 비즈 수주 전환 데이터 견적 데이터 = 수주 데이터
I-005 비즈 PDF 데이터 일치 화면 데이터 = PDF 데이터
I-006 비즈 복사 데이터 일치 원본 데이터 = 복사 데이터 (날짜 제외)

TC 요약

카테고리 건수
목록 페이지 50건
상세/등록 페이지 70건
견적 복사 5건
견적 템플릿 5건
모바일 반응형 5건
API 응답 검증 7건
데이터 정합성 6건
합계 148건

참고: 구분 체계

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