You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
173 lines
4.6 KiB
Markdown
173 lines
4.6 KiB
Markdown
# Stock Oracle 테스트 스위트
|
|
|
|
이 폴더에는 Stock Oracle 시스템의 다양한 기능을 테스트하는 스크립트들이 포함되어 있습니다.
|
|
|
|
## 📁 테스트 파일 목록
|
|
|
|
### 1. `test_yfinance_fallback.py`
|
|
**목적**: YFinance Plus 연결 테스트
|
|
- yfinance_plus 모듈이 정상적으로 작동하는지 확인
|
|
- 기본적인 주식 데이터 가져오기 테스트
|
|
- API 수동 호출 테스트
|
|
|
|
**실행 방법**:
|
|
```bash
|
|
python tests/test_yfinance_fallback.py
|
|
```
|
|
|
|
### 2. `test_simple_real_data.py`
|
|
**목적**: 실제 SEC 데이터 기본 테스트
|
|
- Stock Oracle API에서 실제 SEC 재무 데이터를 정상적으로 가져오는지 확인
|
|
- 데이터 품질 검증 (실제 데이터 vs 추정 데이터)
|
|
- YFinance Plus와의 기본 비교
|
|
|
|
**실행 방법**:
|
|
```bash
|
|
python tests/test_simple_real_data.py
|
|
```
|
|
|
|
### 3. `test_real_sec_vs_yfinance_plus.py`
|
|
**목적**: Stock Oracle vs YFinance Plus 상세 비교
|
|
- 두 시스템에서 가져온 재무 데이터의 정확도 비교
|
|
- 주요 재무 지표들의 차이점 분석
|
|
- 여러 종목(AAPL, MSFT)에 대한 비교 테스트
|
|
|
|
**실행 방법**:
|
|
```bash
|
|
python tests/test_real_sec_vs_yfinance_plus.py
|
|
```
|
|
|
|
### 4. `test_5year_comparison.py`
|
|
**목적**: 5년 분기별 정확도 테스트
|
|
- 동일한 분기 데이터의 정확도를 5년간 비교 검증
|
|
- 분기별 매칭된 데이터만 비교하여 정확도 측정
|
|
- 시계열 데이터의 일관성 검증
|
|
|
|
**실행 방법**:
|
|
```bash
|
|
python tests/test_5year_comparison.py
|
|
```
|
|
|
|
### 5. `run_all_tests.py` (통합 테스트 스위트)
|
|
**목적**: 모든 테스트를 한번에 실행
|
|
- 위의 모든 테스트를 순차적으로 실행
|
|
- 각 테스트의 성공/실패 결과 요약
|
|
- 실행 시간 측정 및 리포트 생성
|
|
|
|
**실행 방법**:
|
|
```bash
|
|
python tests/run_all_tests.py
|
|
```
|
|
|
|
## 🚀 빠른 시작
|
|
|
|
### 전체 테스트 실행
|
|
```bash
|
|
# 모든 테스트를 한번에 실행
|
|
python tests/run_all_tests.py
|
|
```
|
|
|
|
### 개별 테스트 실행
|
|
```bash
|
|
# 기본적인 연결 테스트만
|
|
python tests/test_yfinance_fallback.py
|
|
|
|
# 실제 데이터 테스트만
|
|
python tests/test_simple_real_data.py
|
|
|
|
# 정확도 비교 테스트만
|
|
python tests/test_real_sec_vs_yfinance_plus.py
|
|
|
|
# 5년 정확도 검증만
|
|
python tests/test_5year_comparison.py
|
|
```
|
|
|
|
## 📋 사전 요구사항
|
|
|
|
테스트 실행 전에 다음 조건들이 만족되어야 합니다:
|
|
|
|
### 1. Docker 서비스 실행
|
|
```bash
|
|
docker-compose up -d
|
|
```
|
|
|
|
### 2. 필수 Python 패키지
|
|
- `requests`
|
|
- `yfinance_plus`
|
|
- `pandas`
|
|
- `json`
|
|
|
|
### 3. API 서버 확인
|
|
Stock Oracle API가 `http://localhost:18001`에서 실행 중이어야 합니다.
|
|
|
|
```bash
|
|
# 서버 상태 확인
|
|
curl http://localhost:18001/health
|
|
```
|
|
|
|
## 📊 예상 결과
|
|
|
|
### 성공적인 테스트 결과
|
|
- **YFinance Plus 연결**: ✅ 정상 연결 및 데이터 가져오기
|
|
- **실제 SEC 데이터**: ✅ 실제 데이터 (is_estimated: false) 반환
|
|
- **데이터 비교**: ✅ 합리적인 차이 범위 내 (동일 분기 대비)
|
|
- **5년 정확도**: ✅ 동일 분기 데이터 100% 일치
|
|
|
|
### 문제 해결
|
|
|
|
#### API 서버 연결 실패
|
|
```bash
|
|
# Docker 컨테이너 상태 확인
|
|
docker-compose ps
|
|
|
|
# 서비스 재시작
|
|
docker-compose restart
|
|
```
|
|
|
|
#### yfinance_plus 모듈 오류
|
|
```bash
|
|
# 모듈 재설치
|
|
pip install yfinance_plus
|
|
|
|
# Docker 내부에서 재설치
|
|
docker-compose exec api pip install yfinance_plus
|
|
```
|
|
|
|
#### 데이터베이스 연결 오류
|
|
```bash
|
|
# PostgreSQL 컨테이너 재시작
|
|
docker-compose restart postgres
|
|
|
|
# 로그 확인
|
|
docker-compose logs postgres
|
|
```
|
|
|
|
## 🎯 테스트 목표
|
|
|
|
이 테스트 스위트의 목표는 다음과 같습니다:
|
|
|
|
1. **기능 검증**: 모든 핵심 기능이 정상 작동하는지 확인
|
|
2. **데이터 정확성**: 실제 SEC 데이터가 정확하게 가져와지는지 검증
|
|
3. **일관성 확인**: 시스템 간 데이터 일관성 보장
|
|
4. **성능 측정**: 각 테스트의 실행 시간 측정
|
|
5. **회귀 방지**: 향후 코드 변경 시 기존 기능 보호
|
|
|
|
## 📝 테스트 결과 해석
|
|
|
|
### 성공 지표
|
|
- 모든 API 호출이 200 상태 코드 반환
|
|
- 실제 재무 데이터 (`is_estimated: false`) 반환
|
|
- 동일 분기 데이터의 정확한 일치
|
|
- 합리적인 실행 시간 (각 테스트 < 5분)
|
|
|
|
### 주의사항
|
|
- 서로 다른 분기 데이터 비교 시 차이는 정상
|
|
- 네트워크 상태에 따라 실행 시간 변동 가능
|
|
- 일부 종목의 경우 특정 분기 데이터가 없을 수 있음
|
|
|
|
## 🔄 정기 테스트 권장
|
|
|
|
- **개발 후**: 코드 변경 후 전체 테스트 실행
|
|
- **배포 전**: 프로덕션 배포 전 필수 검증
|
|
- **주기적**: 주 1회 데이터 정확성 검증
|
|
- **문제 발생 시**: 즉시 해당 영역 테스트 실행 |