A. 리뷰 수신(API Ingress)
| ID | 구분 | 테스트 목적 | 사전 조건 | 테스트 절차 | 기대 결과 | 검증 포인트 | 우선순위 |
|---|
| TS-A01 | API | 리뷰 정상 수신 검증 | AI 서버, Redis 정상 기동 | 리뷰 N건 POST 요청 | HTTP 200 반환 | 서버 에러 없음 | P0 |
| TS-A02 | API | 요청 스키마 검증 | 동일 | 필수 필드 누락 요청 | HTTP 4xx 반환 | 500 발생 금지 | P0 |
| TS-A03 | API | 빈 리뷰 처리 | 동일 | reviews=[] 전송 | 명확한 에러 응답 | 무한 대기 없음 | P0 |
| TS-A04 | API | 타입 불일치 방어 | 동일 | reviews를 객체로 전송 | 4xx 반환 | 예외 로그 | P1 |
| TS-A05 | API | 장문 리뷰 처리 | 동일 | 10k+ chars 리뷰 | 정상 처리 또는 명확 실패 | 타임아웃 여부 | P1 |
| TS-A06 | API | 특수문자·이모지 처리 | 동일 | 이모지 포함 리뷰 | 정상 파이프라인 | 깨짐 없음 | P2 |
| TS-A07 | API | 중복 요청 처리 | 동일 | 동일 리뷰 재전송 | 정책대로 처리 | 중복 집계 여부 | P1 |
| TS-A08 | API | 동시 요청 안정성 | 동일 | 다중 요청 동시 전송 | 정상 응답 유지 | race condition | P0 |
B. 전처리 / 키워드 추출
| ID | 구분 | 테스트 목적 | 사전 조건 | 테스트 절차 | 기대 결과 | 검증 포인트 | 우선순위 |
|---|
| TS-B01 | NLP | 키워드 추출 정확성 | 샘플 데이터 | 리뷰 입력 | 의도된 키워드 반환 | 품질 기준 | P0 |
| TS-B02 | NLP | 불용어 제거 | 동일 | 조사·부사 다수 입력 | 불용어 제외 | 상위 노출 방지 | P1 |
| TS-B03 | NLP | 고유명사 처리 | 동일 | 공연명 포함 | 보존/제거 정책 일치 | 토큰 분리 | P1 |
| TS-B04 | NLP | 부정 표현 처리 | 동일 | “안 좋다” 입력 | 부정 키워드 분류 | 감성 반전 | P0 |
| TS-B05 | NLP | 키워드 정규화 | 동일 | 유사어 반복 | 하나로 집계 | 중복 방지 | P1 |
| TS-B06 | NLP | Top-K 제한 | 동일 | 다량 키워드 입력 | K개만 반환 | 정렬 정확성 | P2 |
| TS-B07 | NLP | 무의미 텍스트 처리 | 동일 | “ㅋㅋㅋ” 입력 | 빈 결과 | 에러 금지 | P0 |
C. 감성 분류 (긍/부정)
| ID | 구분 | 테스트 목적 | 사전 조건 | 테스트 절차 | 기대 결과 | 검증 포인트 | 우선순위 |
|---|
| TS-C01 | Model | 긍/부정 분리 정확성 | 모델 로드 완료 | 긍/부정 리뷰 입력 | 올바른 분리 | 분류 정확도 | P0 |
| TS-C02 | Model | 중립 문장 처리 | 동일 | 애매한 리뷰 | 정책대로 분류 | 중립 처리 | P1 |
| TS-C03 | Model | 반전 문장 처리 | 동일 | “좋긴 한데…” | 일관된 분류 | 오분류율 | P1 |
| TS-C04 | Model | 모델 로드 실패 | 모델 파일 제거 | 서버 기동 | 명확한 실패 | silent fail 금지 | P0 |
D. Redis 집계 / 저장
| ID | 구분 | 테스트 목적 | 사전 조건 | 테스트 절차 | 기대 결과 | 검증 포인트 | 우선순위 |
|---|
| TS-D01 | Redis | 키워드 카운트 누적 | Redis 정상 | 동일 키워드 반복 | score 증가 | ZINCRBY 정확성 | P0 |
| TS-D02 | Redis | 파이프라인 성능 | 동일 | 대량 키워드 저장 | 성능 개선 | RTT 감소 | P1 |
| TS-D03 | Redis | 빈 키워드 방어 | 동일 | 빈 문자열 포함 | 저장 안 됨 | 데이터 정합성 | P0 |
| TS-D04 | Redis | TTL 정책 | TTL 설정 | 시간 경과 대기 | 만료됨 | 데이터 유지 | P2 |
| TS-D05 | Redis | Redis 장애 대응 | Redis 중단 | 리뷰 처리 요청 | 5xx + 로그 | 재시도 정책 | P0 |
| TS-D06 | Redis | 키 네임스페이스 | 동일 | concert_id 분리 | 충돌 없음 | 집계 단위 | P1 |
E. 응답 반환
| ID | 구분 | 테스트 목적 | 사전 조건 | 테스트 절차 | 기대 결과 | 검증 포인트 | 우선순위 |
|---|
| TS-E01 | Response | 응답 포맷 검증 | 처리 완료 | 정상 요청 | 계약 스키마 준수 | 필드/타입 | P0 |
| TS-E02 | Response | 빈 결과 응답 | 동일 | 무의미 리뷰 | 정상 JSON | 500 금지 | P0 |
| TS-E03 | Response | 정렬 기준 | 동일 | 다수 키워드 | score 기준 정렬 | 일관성 | P1 |
| TS-E04 | Response | 부분 실패 처리 | Redis 오류 | 요청 수행 | 정책대로 응답 | fail 전략 | P1 |
F. 운영 / 배포 / 인프라
| ID | 구분 | 테스트 목적 | 사전 조건 | 테스트 절차 | 기대 결과 | 검증 포인트 | 우선순위 |
|---|
| TS-F01 | Ops | 헬스체크 | 컨테이너 기동 | /health 호출 | HTTP 200 | LB 통과 | P0 |
| TS-F02 | Ops | Nginx 라우팅 | 동일 | 외부 포트 접근 | 내부 전달 | 헤더 유지 | P0 |
| TS-F03 | Ops | 환경변수 누락 | env 제거 | 서버 기동 | 즉시 실패 | fail-fast | P0 |
| TS-F04 | Ops | 재시작 정책 | 서버 종료 | 자동 재기동 | 정상 복구 | restart 옵션 | P1 |
| TS-F05 | Ops | 로그 관측성 | 정상 요청 | 요청 처리 | 로그 기록 | 디버깅 가능 | P1 |
G. 보안 / 안정성
| ID | 구분 | 테스트 목적 | 사전 조건 | 테스트 절차 | 기대 결과 | 검증 포인트 | 우선순위 |
|---|
| TS-G01 | Sec | 대량 요청 방어 | 동일 | 연속 요청 | 서비스 유지 | 타임아웃 | P1 |
| TS-G02 | Sec | 이상 문자열 처리 | 동일 | 깨진 JSON | 4xx 응답 | 500 금지 | P0 |
| TS-G03 | Sec | 민감정보 로그 | 동일 | 요청 수행 | 로그 미노출 | 개인정보 | P1 |
권장 활용 방법 (중요)
- 발표용 → P0 시나리오만 발췌
- 배포 전 체크리스트 → A/B/C/D/F의 P0
- QA 자동화 후보 → A01, B01, C01, D01, F01