# Testing Checklist ## 목적 이 체크리스트는 Phase 4 백테스터의 **정확성, 재현성, 보수성**을 검증하기 위한 것입니다. 테스트는 아래 5개 계층으로 나눕니다. 1. 단위 테스트 2. 통합 테스트 3. 리플레이 / 재현성 테스트 4. 통계/리포트 검증 5. 운영 전 수동 검토 --- ## P0 — 반드시 통과해야 하는 테스트 ### 1. 날짜/시간 정렬 - [ ] 장전 event가 같은 날 reaction session으로 매핑되는지 - [ ] 장후 event가 다음 거래일 reaction session으로 매핑되는지 - [ ] 장중 event가 availability timestamp 규칙에 맞게 처리되는지 - [ ] 휴장일 다음 거래일 계산이 정확한지 - [ ] timezone aware datetime만 사용되는지 ### 2. snapshot 무결성 - [ ] snapshot reader가 future rows를 읽지 않는지 - [ ] feature availability timestamp 이후의 값만 사용되는지 - [ ] 결측 critical field가 있으면 skip되는지 - [ ] dataset snapshot id가 결과 metadata에 기록되는지 ### 3. deterministic 실행 - [ ] 동일 manifest 재실행 시 blotter row 수가 같은지 - [ ] 동일 manifest 재실행 시 metrics summary가 같은지 - [ ] tie-break가 deterministic한지 - [ ] floating rounding 정책이 고정되어 있는지 ### 4. 체결/청산 규칙 - [ ] next-open entry가 정확히 open price 기반으로 계산되는지 - [ ] stop breach 시 보수적 우선순위가 적용되는지 - [ ] target + stop same-bar 충돌 시 기본 우선순위가 테스트되는지 - [ ] time exit가 holding day close에 실행되는지 - [ ] partial exit 후 잔여수량이 정확히 업데이트되는지 ### 5. 포트폴리오 제약 - [ ] max positions 초과 진입이 차단되는지 - [ ] sector gate가 적용되는지 - [ ] daily risk budget이 초과되면 나머지 종목이 reject되는지 - [ ] duplicate symbol / issuer 진입이 차단되는지 - [ ] cash/exposure ledger가 음수로 깨지지 않는지 --- ## P1 — 강하게 권장되는 테스트 ### 6. 비용/슬리피지 - [ ] slippage bps가 fill price에 반영되는지 - [ ] commission model on/off가 결과에 반영되는지 - [ ] 저유동성 penalty가 sizing 또는 fill에 반영되는지 ### 7. 리포트/산출물 - [ ] trade blotter 필수 컬럼이 모두 채워지는지 - [ ] equity curve와 blotter realized pnl이 일치하는지 - [ ] attribution report 합계가 전체 결과와 일치하는지 - [ ] metrics summary JSON schema 검증이 통과하는지 - [ ] plots 생성 실패가 run 전체를 깨지 않는지 ### 8. split / walk-forward - [ ] year split이 정상 생성되는지 - [ ] regime split이 정상 생성되는지 - [ ] walk-forward window가 누수 없이 생성되는지 - [ ] test 구간이 train 구간과 겹치지 않는지 --- ## P2 — 리플레이 / 회귀 테스트 ### 9. 회귀 스냅샷 - [ ] 소형 고정 데이터셋으로 golden run 결과를 저장했는지 - [ ] 코드 변경 후 golden run 결과가 의도치 않게 바뀌지 않는지 - [ ] 의도적 변경일 때는 run notes에 차이를 기록하는지 ### 10. 에러 처리 - [ ] missing bar 데이터가 있을 때 no-trade로 안전하게 떨어지는지 - [ ] unknown config key가 에러 처리되는지 - [ ] schema invalid manifest가 실행 전에 차단되는지 - [ ] corrupted artifact write가 적절히 에러를 내는지 --- ## 수동 검토 체크리스트 - [ ] 샘플 20개 거래를 사람이 손으로 계산해 엔진 결과와 대조했는지 - [ ] 장후 발표 실적 5개 케이스를 수동 검증했는지 - [ ] same-bar stop/target 충돌 케이스를 수동 검증했는지 - [ ] 섹터 제한 때문에 reject된 거래가 합리적인지 검토했는지 - [ ] drawdown curve가 trade blotter와 정합적인지 확인했는지 - [ ] 기대보다 너무 좋은 성과가 나올 때 leakage audit를 수행했는지 --- ## 통과 기준 - P0 전항목 통과 - P1 항목 중 치명적 실패 없음 - 수동 검토 샘플에서 명백한 timestamp/price 오류 없음 - regression snapshot 재현 성공