# Phase 5 Testing Checklist

## A. Unit Tests
- [ ] RSS parser가 malformed item을 건너뛴다.
- [ ] URL canonicalizer가 tracking query를 제거한다.
- [ ] YouTube matcher가 approved alias만 매칭한다.
- [ ] Wikimedia page map lookup이 없는 symbol을 안전하게 skip 한다.
- [ ] Google Trends adapter가 disabled flag에서 no-op 한다.
- [ ] robust z-score 계산이 constant series에서 안전하다.
- [ ] overlay scorer가 missing source를 허용한다.

## B. Entity Resolution Tests
- [ ] ambiguous ticker가 잘못 매칭되지 않는다.
- [ ] company alias override가 적용된다.
- [ ] manual denylist가 강제된다.
- [ ] wiki page redirect 처리 후 canonical title이 저장된다.
- [ ] video title과 description의 conflicting match를 review queue로 보낸다.

## C. Integration Tests
- [ ] raw → normalized → feature → score 전체 체인이 동작한다.
- [ ] trade candidate가 없을 때 overlay pipeline이 정상 종료된다.
- [ ] 특정 source 실패 시 나머지 source로 partial score 생성 가능하다.
- [ ] overlay score가 backtester config에 따라 반영된다.
- [ ] live rerank job이 stale source를 탐지하고 degraded mode로 전환한다.

## D. Replay Tests
- [ ] historical snapshot cutoff 이후 데이터가 사용되지 않는다.
- [ ] 동일 cutoff로 재실행 시 동일 overlay score가 재생성된다.
- [ ] source update 지연 시 fallback 결과가 일관적이다.

## E. Quality Tests
- [ ] random sample 100건에서 symbol match precision 측정
- [ ] YouTube whitelist 외 채널이 잘못 포함되지 않는다.
- [ ] duplicated Yahoo headlines가 burst를 과대추정하지 않는다.
- [ ] wiki attention shock가 명백한 비종목 이벤트에서 과도하게 오르지 않는다.

## F. Strategy Impact Tests
- [ ] overlay on/off ablation 리포트 생성
- [ ] tie-breaker only와 weighted-rank 결과 비교
- [ ] hold-extension only 결과 비교
- [ ] source별 incremental value 리포트 생성

## G. Ops Tests
- [ ] API quota exhaustion 시 경고 및 soft-fail
- [ ] source freshness SLA 위반 알림 발송
- [ ] registry update 후 캐시 무효화 정상 동작
- [ ] feature store write retry가 idempotent 하다.
