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

446 lines
20 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# TC - 재고관리 (Inventory Management)
> **페이지**: https://dev.codebridge-x.com/material/stock-status
> **작성일**: 2026-01-29
> **대상**: QC Playwright AI 테스트용
---
## ⚠️ 테스트 환경 안내
| 항목 | 내용 |
|------|------|
| **환경 유형** | 개발/테스트 환경 (Development Environment) |
| **운영 환경 여부** | ❌ 아니오 - 운영 환경이 **아닙니다** |
| **데이터 특성** | 테스트용 시드 데이터 및 개발 중 생성된 샘플 데이터 |
| **테스트 정책** | CRUD 전체 테스트 가능 (입고, 출고, 조정, 이동 포함) |
### 테스트 실행 지침
1. **CRUD 테스트 허용**: 이 환경은 개발/테스트 목적으로, 데이터 생성·수정·삭제를 포함한 전체 기능 테스트를 수행해야 합니다.
2. **입출고 테스트**: 입고/출고 테스트 시 실제 데이터를 생성하여 기능 검증을 수행합니다.
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. 재고 현황 페이지 (Stock Status)
### 1.1 페이지 로딩
| TC# | 구분 | 테스트 항목 | 기대 결과 |
|-----|------|------------|-----------|
| L-001 | 기본 | 페이지 접근 | `/material/stock-status` 정상 로딩, 재고 목록 표시 |
| L-002 | 기본 | 통계 카드 표시 | "총 품목수", "재고 있음", "재고 없음", "안전재고 미만" 4개 카드 |
| L-003 | 기본 | 재고 가치 | 총 재고 금액 (재고 × 단가) 표시 |
| L-004 | 기본 | 기본 정렬 | 품목명 오름차순 정렬 |
| L-005 | 기본 | 빈 목록 | 데이터 없을 때 빈 상태 메시지 표시 |
| L-006 | 기본 | 창고 선택 | 창고별 재고 조회 가능 |
### 1.2 테이블 컬럼
| TC# | 구분 | 테스트 항목 | 기대 결과 |
|-----|------|------------|-----------|
| L-010 | 기본 | 컬럼 구성 | 체크박스, 이미지, 품목코드, 품목명, 카테고리, 창고, 현재고, 안전재고, 가용재고, 단위, 재고가치 |
| L-011 | UI | 재고 상태 색상 | 충분=초록, 부족=노랑, 없음=빨강 |
| L-012 | UI | 안전재고 경고 | 안전재고 미만 시 경고 아이콘 |
| L-013 | UI | 재고 가치 포맷 | 천단위 콤마 + "원" 표시 |
| L-014 | UI | 품목 이미지 | 썸네일 이미지 표시 |
| L-015 | 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 | 기능 | 재고 상태 필터 - 재고 있음 | 재고 > 0 품목만 표시 |
| L-034 | 기능 | 재고 상태 필터 - 재고 없음 | 재고 = 0 품목만 표시 |
| L-035 | 기능 | 재고 상태 필터 - 안전재고 미만 | 현재고 < 안전재고 품목만 표시 |
| L-036 | 기능 | 재고 상태 필터 - 과잉재고 | 현재고 > 최대재고 품목만 표시 |
| L-037 | 기능 | 공급업체 필터 | 특정 공급업체 품목만 표시 |
| L-038 | 기능 | 필터 복합 적용 | 창고 + 카테고리 + 상태 동시 적용 |
| L-039 | 기능 | 필터 해제 | 필터 해제 시 전체 목록 복원 |
| L-040 | 경계 | 필터 결과 0건 | 빈 상태 메시지 표시 |
### 1.5 정렬
| TC# | 구분 | 테스트 항목 | 기대 결과 |
|-----|------|------------|-----------|
| L-050 | 기능 | 품목명 오름차순 | 가나다/ABC 순 |
| L-051 | 기능 | 품목명 내림차순 | 역순 |
| L-052 | 기능 | 재고 많은순 | 현재고 내림차순 |
| L-053 | 기능 | 재고 적은순 | 현재고 오름차순 |
| L-054 | 기능 | 재고가치 높은순 | 재고가치 내림차순 |
| L-055 | 기능 | 재고가치 낮은순 | 재고가치 오름차순 |
### 1.6 페이지네이션
| TC# | 구분 | 테스트 항목 | 기대 결과 |
|-----|------|------------|-----------|
| L-060 | 기능 | 기본 페이지 크기 | 한 페이지 50건 표시 |
| L-061 | 기능 | 페이지 크기 변경 | 20/50/100건 선택 가능 |
| L-062 | 기능 | 다음 페이지 이동 | 다음 페이지로 이동 |
| L-063 | 기능 | 이전 페이지 이동 | 이전 페이지로 복귀 |
| L-064 | 경계 | 마지막 페이지 | "다음" 버튼 비활성화 |
| L-065 | 경계 | 첫 페이지 | "이전" 버튼 비활성화 |
### 1.7 행 동작
| TC# | 구분 | 테스트 항목 | 기대 결과 |
|-----|------|------------|-----------|
| L-070 | 기능 | 행 클릭 | 재고 상세 페이지로 이동 |
| L-071 | 기능 | 체크박스 개별 선택 | 해당 행 선택 상태 |
| L-072 | 기능 | 전체 선택 체크박스 | 현재 페이지 전체 선택/해제 |
| L-073 | 기능 | 호버 시 작업 버튼 | 입고/출고/조정/이력 버튼 표시 |
| L-074 | 기능 | 빠른 입고 | 행에서 바로 입고 처리 |
| L-075 | 기능 | 빠른 출고 | 행에서 바로 출고 처리 |
### 1.8 일괄 처리
| TC# | 구분 | 테스트 항목 | 기대 결과 |
|-----|------|------------|-----------|
| L-080 | 기능 | Excel 내보내기 | 재고 목록 Excel 다운로드 |
| L-081 | 기능 | 재고실사 시작 | 선택 품목 재고실사 모드 |
| L-082 | 기능 | 바코드 라벨 출력 | 선택 품목 바코드 라벨 출력 |
---
## 2. 입고 관리
### 2.1 입고 등록
| TC# | 구분 | 테스트 항목 | 기대 결과 |
|-----|------|------------|-----------|
| I-001 | 기본 | 페이지 로딩 | 입고 등록 폼 표시 |
| I-002 | 기본 | 기본값 확인 | 입고일=오늘, 창고=기본창고 |
#### 2.1.1 필수값 검증
| TC# | 구분 | 테스트 항목 | 기대 결과 |
|-----|------|------------|-----------|
| I-010 | 검증 | 품목 미선택 | 저장 시 필수값 에러 메시지 |
| I-011 | 검증 | 수량 미입력 | 저장 시 필수값 에러 메시지 |
| I-012 | 검증 | 수량 0 입력 | 저장 시 에러 메시지 |
| I-013 | 검증 | 창고 미선택 | 저장 시 필수값 에러 메시지 |
#### 2.1.2 입고 정보 입력
| TC# | 구분 | 테스트 항목 | 기대 결과 |
|-----|------|------------|-----------|
| I-020 | 기능 | 입고일 선택 | 달력에서 날짜 선택 |
| I-021 | 기능 | 입고유형 선택 | 구매입고/반품입고/조정입고/이동입고 |
| I-022 | 기능 | 품목 검색/선택 | 품목 검색 후 선택 |
| I-023 | 기능 | 품목 바코드 스캔 | 바코드 스캔으로 품목 추가 |
| I-024 | 기능 | 수량 입력 | 입고 수량 입력 |
| I-025 | 기능 | 창고 선택 | 입고할 창고 선택 |
| I-026 | 기능 | 입고단가 입력 | 입고 단가 입력 (선택) |
| I-027 | 기능 | 공급업체 선택 | 구매입고 시 공급업체 선택 |
| I-028 | 기능 | 발주 연결 | 발주서와 입고 연결 |
| I-029 | 기능 | 비고 입력 | 입고 사유/메모 입력 |
| I-030 | 경계 | 음수 수량 | 에러 메시지 또는 입력 제한 |
#### 2.1.3 다중 품목 입고
| TC# | 구분 | 테스트 항목 | 기대 결과 |
|-----|------|------------|-----------|
| I-040 | 기능 | 품목 추가 | 여러 품목 동시 입고 등록 |
| I-041 | 기능 | 품목 삭제 | 추가된 품목 삭제 |
| I-042 | 기능 | 품목 순서 변경 | 드래그앤드롭으로 순서 변경 |
| I-043 | 기능 | 합계 표시 | 총 입고 수량/금액 표시 |
#### 2.1.4 저장 동작
| TC# | 구분 | 테스트 항목 | 기대 결과 |
|-----|------|------------|-----------|
| I-050 | 기능 | 정상 저장 | 입고 완료, 재고 증가 확인 |
| I-051 | 기능 | 저장 후 계속 | 저장 후 새 입고 등록 화면 |
| I-052 | 기능 | 취소 버튼 | 목록 페이지로 복귀 |
| I-053 | 비즈 | 재고 실시간 갱신 | 입고 후 현재고 즉시 증가 |
| I-054 | 비즈 | 입고 이력 생성 | 입고 이력 자동 생성 |
---
## 3. 출고 관리
### 3.1 출고 등록
| TC# | 구분 | 테스트 항목 | 기대 결과 |
|-----|------|------------|-----------|
| O-001 | 기본 | 페이지 로딩 | 출고 등록 폼 표시 |
| O-002 | 기본 | 기본값 확인 | 출고일=오늘, 창고=기본창고 |
#### 3.1.1 필수값 검증
| TC# | 구분 | 테스트 항목 | 기대 결과 |
|-----|------|------------|-----------|
| O-010 | 검증 | 품목 미선택 | 저장 시 필수값 에러 메시지 |
| O-011 | 검증 | 수량 미입력 | 저장 시 필수값 에러 메시지 |
| O-012 | 검증 | 수량 0 입력 | 저장 시 에러 메시지 |
| O-013 | 비즈 | 재고 초과 출고 | 재고 부족 에러 메시지 |
#### 3.1.2 출고 정보 입력
| TC# | 구분 | 테스트 항목 | 기대 결과 |
|-----|------|------------|-----------|
| O-020 | 기능 | 출고일 선택 | 달력에서 날짜 선택 |
| O-021 | 기능 | 출고유형 선택 | 판매출고/반품출고/조정출고/이동출고/폐기출고 |
| O-022 | 기능 | 품목 검색/선택 | 품목 검색 후 선택, 현재고 표시 |
| O-023 | 기능 | 품목 바코드 스캔 | 바코드 스캔으로 품목 추가 |
| O-024 | 기능 | 수량 입력 | 출고 수량 입력 |
| O-025 | UI | 가용재고 표시 | 출고 가능 수량 실시간 표시 |
| O-026 | 기능 | 창고 선택 | 출고할 창고 선택 |
| O-027 | 기능 | 거래처 선택 | 판매출고 시 거래처 선택 |
| O-028 | 기능 | 주문 연결 | 주문서와 출고 연결 |
| O-029 | 기능 | 비고 입력 | 출고 사유/메모 입력 |
#### 3.1.3 저장 동작
| TC# | 구분 | 테스트 항목 | 기대 결과 |
|-----|------|------------|-----------|
| O-050 | 기능 | 정상 저장 | 출고 완료, 재고 감소 확인 |
| O-051 | 비즈 | 재고 실시간 갱신 | 출고 후 현재고 즉시 감소 |
| O-052 | 비즈 | 출고 이력 생성 | 출고 이력 자동 생성 |
| O-053 | 비즈 | 음수 재고 허용/차단 | 설정에 따라 음수 재고 처리 |
---
## 4. 재고 조정
### 4.1 재고 조정 등록
| TC# | 구분 | 테스트 항목 | 기대 결과 |
|-----|------|------------|-----------|
| A-001 | 기본 | 페이지 로딩 | 재고 조정 폼 표시 |
| A-002 | 기능 | 조정 유형 | 재고실사/분실/파손/오류정정 |
#### 4.1.1 조정 정보 입력
| TC# | 구분 | 테스트 항목 | 기대 결과 |
|-----|------|------------|-----------|
| A-010 | 기능 | 품목 선택 | 조정할 품목 선택, 현재고 표시 |
| A-011 | 기능 | 조정 수량 입력 | 조정 후 수량 입력 |
| A-012 | UI | 차이 자동 계산 | 현재고 - 조정수량 = 차이 표시 |
| A-013 | 기능 | 조정 사유 필수 입력 | 조정 사유 입력 (필수) |
| A-014 | 기능 | 증빙 첨부 | 실사표/사진 등 첨부 |
#### 4.1.2 저장 동작
| TC# | 구분 | 테스트 항목 | 기대 결과 |
|-----|------|------------|-----------|
| A-020 | 기능 | 정상 저장 | 조정 완료, 재고 변경 확인 |
| A-021 | 비즈 | 조정 이력 생성 | 조정 전/후 기록 |
| A-022 | 비즈 | 관리자 승인 | 대량 조정 시 승인 필요 (설정에 따라) |
---
## 5. 재고 이동
### 5.1 창고간 이동
| TC# | 구분 | 테스트 항목 | 기대 결과 |
|-----|------|------------|-----------|
| T-001 | 기본 | 페이지 로딩 | 재고 이동 폼 표시 |
| T-002 | 기능 | 출발 창고 선택 | 출발 창고 선택, 재고 표시 |
| T-003 | 기능 | 도착 창고 선택 | 도착 창고 선택 |
| T-004 | 기능 | 품목 선택 | 이동할 품목 선택 |
| T-005 | 기능 | 수량 입력 | 이동 수량 입력 |
| T-006 | 비즈 | 동일 창고 이동 | 같은 창고로 이동 불가 |
| T-007 | 비즈 | 재고 초과 이동 | 재고 부족 에러 메시지 |
| T-008 | 기능 | 이동 저장 | 출발창고 감소, 도착창고 증가 |
| T-009 | 비즈 | 이동 이력 생성 | 출고/입고 이력 자동 생성 |
---
## 6. 재고 상세 페이지
### 6.1 조회 모드
| TC# | 구분 | 테스트 항목 | 기대 결과 |
|-----|------|------------|-----------|
| D-001 | 기본 | 페이지 로딩 | 품목별 재고 상세 정보 표시 |
| D-002 | UI | 품목 정보 | 품목코드, 품목명, 카테고리, 규격, 단위 |
| D-003 | UI | 재고 정보 | 현재고, 안전재고, 최대재고, 가용재고 |
| D-004 | UI | 창고별 재고 | 창고별 재고 분포 표시 |
| D-005 | UI | 재고 차트 | 재고 추이 그래프 |
### 6.2 입출고 이력
| TC# | 구분 | 테스트 항목 | 기대 결과 |
|-----|------|------------|-----------|
| D-010 | 기능 | 이력 목록 | 입출고 이력 시간순 표시 |
| D-011 | UI | 이력 정보 | 일자, 유형, 수량, 잔량, 창고, 담당자 |
| D-012 | UI | 입고 표시 | 입고=파란색 + 양수 |
| D-013 | UI | 출고 표시 | 출고=빨간색 - 음수 |
| D-014 | 기능 | 기간 필터 | 조회 기간 설정 |
| D-015 | 기능 | 유형 필터 | 입고/출고/조정/이동 필터 |
| D-016 | 기능 | 이력 상세 | 클릭 시 상세 정보 모달 |
### 6.3 연관 정보
| TC# | 구분 | 테스트 항목 | 기대 결과 |
|-----|------|------------|-----------|
| D-020 | 기능 | 미처리 발주 | 입고 대기 발주 목록 |
| D-021 | 기능 | 미처리 주문 | 출고 대기 주문 목록 |
| D-022 | 기능 | 공급업체 | 해당 품목 공급업체 정보 |
---
## 7. 재고 실사
### 7.1 실사 프로세스
| TC# | 구분 | 테스트 항목 | 기대 결과 |
|-----|------|------------|-----------|
| S-001 | 기능 | 실사 시작 | 재고 실사 시작 (재고 동결) |
| S-002 | 기능 | 실사 대상 선택 | 전체/카테고리별/창고별 선택 |
| S-003 | 기능 | 실사 목록 생성 | 실사 대상 품목 목록 생성 |
| S-004 | 기능 | 실사 수량 입력 | 실제 수량 입력 |
| S-005 | 기능 | 바코드 스캔 입력 | 바코드 스캔으로 수량 입력 |
| S-006 | UI | 차이 표시 | 장부재고 vs 실사재고 차이 표시 |
| S-007 | 기능 | 실사 완료 | 실사 결과 확정 |
| S-008 | 비즈 | 자동 조정 | 차이분 자동 재고 조정 |
| S-009 | 기능 | 실사 보고서 | 실사 결과 보고서 출력 |
---
## 8. 창고 관리
### 8.1 창고 CRUD
| TC# | 구분 | 테스트 항목 | 기대 결과 |
|-----|------|------------|-----------|
| W-001 | 기능 | 창고 목록 | 등록된 창고 목록 표시 |
| W-002 | 기능 | 창고 등록 | 신규 창고 생성 |
| W-003 | 기능 | 창고명 입력 | 창고명 입력 (필수) |
| W-004 | 기능 | 창고코드 입력 | 창고 식별 코드 |
| W-005 | 기능 | 위치 입력 | 창고 위치/주소 입력 |
| W-006 | 기능 | 담당자 설정 | 창고 담당자 지정 |
| W-007 | 기능 | 기본창고 설정 | 기본 창고 지정 |
| W-008 | 기능 | 창고 수정 | 창고 정보 수정 |
| W-009 | 기능 | 창고 비활성화 | 사용 중지 (삭제 대신) |
| W-010 | 비즈 | 재고 있는 창고 삭제 | 삭제 불가, 비활성화만 가능 |
---
## 9. 보고서
### 9.1 재고 보고서
| TC# | 구분 | 테스트 항목 | 기대 결과 |
|-----|------|------------|-----------|
| R-001 | 기능 | 현재 재고 보고서 | 현재 재고 현황 리포트 |
| R-002 | 기능 | 재고 가치 보고서 | 재고 금액 현황 리포트 |
| R-003 | 기능 | 입출고 보고서 | 기간별 입출고 내역 리포트 |
| R-004 | 기능 | 창고별 보고서 | 창고별 재고 현황 |
| R-005 | 기능 | 카테고리별 보고서 | 카테고리별 재고 현황 |
| R-006 | 기능 | 안전재고 보고서 | 안전재고 미만 품목 |
| R-007 | 기능 | 재고 회전율 보고서 | 품목별 재고 회전율 |
| R-008 | 기능 | ABC 분석 보고서 | 품목 ABC 분류 분석 |
| R-009 | 기능 | PDF 출력 | 보고서 PDF 다운로드 |
| R-010 | 기능 | Excel 출력 | 보고서 Excel 다운로드 |
---
## 10. 모바일 반응형
| TC# | 구분 | 테스트 항목 | 기대 결과 |
|-----|------|------------|-----------|
| M-001 | UI | 목록 모바일 뷰 | 카드 형태로 재고 표시 |
| M-002 | UI | 카드 핵심 정보 | 품목명, 현재고, 상태 표시 |
| M-003 | UI | 바코드 스캔 | 모바일 카메라 바코드 스캔 |
| M-004 | UI | 빠른 입출고 | 모바일에서 간편 입출고 |
| M-005 | UI | 재고 실사 모바일 | 모바일 실사 입력 |
---
## 11. API 응답 검증
| TC# | 구분 | 테스트 항목 | 기대 결과 |
|-----|------|------------|-----------|
| API-001 | API | GET /stocks 응답 | `{ success: true, data: { data: [...], total } }` |
| API-002 | API | GET /stocks/{productId} 응답 | 품목별 재고 상세 |
| API-003 | API | POST /stocks/inbound 응답 | 입고 처리 결과 |
| API-004 | API | POST /stocks/outbound 응답 | 출고 처리 결과 |
| API-005 | API | POST /stocks/adjust 응답 | 조정 처리 결과 |
| API-006 | API | POST /stocks/transfer 응답 | 이동 처리 결과 |
| API-007 | API | GET /stocks/history 응답 | 입출고 이력 |
| API-008 | API | 멀티테넌트 격리 | 다른 tenant 데이터 접근 불가 |
---
## 12. 데이터 정합성
| TC# | 구분 | 테스트 항목 | 기대 결과 |
|-----|------|------------|-----------|
| I-001 | 비즈 | 재고 계산 정확성 | 입고합계 - 출고합계 = 현재고 |
| I-002 | 비즈 | 창고별 합계 | 창고별 재고 합 = 총 재고 |
| I-003 | 비즈 | 이동 후 합계 | 이동 전후 총 재고 동일 |
| I-004 | 비즈 | 조정 이력 | 조정 전/후 재고 차이 = 조정 수량 |
| I-005 | 비즈 | 실사 정합성 | 실사 후 재고 = 실사 수량 |
| I-006 | 비즈 | 동시성 처리 | 동시 입출고 시 데이터 무결성 |
---
## TC 요약
| 카테고리 | 건수 |
|----------|------|
| 재고 현황 페이지 | 50건 |
| 입고 관리 | 20건 |
| 출고 관리 | 16건 |
| 재고 조정 | 8건 |
| 재고 이동 | 9건 |
| 재고 상세 페이지 | 12건 |
| 재고 실사 | 9건 |
| 창고 관리 | 10건 |
| 보고서 | 10건 |
| 모바일 반응형 | 5건 |
| API 응답 검증 | 8건 |
| 데이터 정합성 | 6건 |
| **합계** | **163건** |
---
## 참고: 구분 체계
- **기본**: 페이지 로딩, 기본 표시
- **기능**: 사용자 인터랙션, CRUD 동작
- **UI**: 색상, 레이아웃, 아이콘 등 시각 요소
- **검증**: 입력값 유효성 검사
- **경계**: 경계값, 예외 케이스
- **비즈**: 비즈니스 로직 (재고 계산, 동시성 등)
- **API**: API 레벨 검증