Certamente. Seguendo le linee guida di TESTING-GUIDELINES.md, ecco il piano di test per validare il refactoring di MainWindow.
Poiché abbiamo toccato il “cuore” del sistema, questo è un test critico che deve coprire diverse aree funzionali.
Piano di Test: Validazione Refactoring MainWindow (Logic Handlers)
Asse 1: Contratto del Test
Obiettivo Generale: Verificare che la delega della logica ai nuovi handler (Forecast, Chart, Export) non abbia interrotto le funzionalità principali e che l’orchestrazione dei segnali funzioni correttamente.
Prerequisiti:
- Avviare l’applicazione FIRE.
- Caricare un ticker valido (es.
AAPL) con dati storici sufficienti.
Asse 2: Categorie di Test
1. Test Charting (ChartHandler)
Scopo: Verificare che il cambio grafico e il rendering funzionino ancora.
- Cambio Tipo Grafico
- Azione: Dal menu a tendina “Chart Type”, cambiare da “Candlestick” a “Line”.
- Risultato Atteso: Il grafico si aggiorna immediatamente mostrando una linea.
- Grafico Avanzato (Worker)
- Azione: Cambiare da “Line” a “Heikin Ashi” (o un altro tipo che richiede ricalcolo).
- Risultato Atteso: Appare brevemente la progress bar (o log di calcolo) e il grafico si aggiorna correttamente.
2. Test Export (ExportHandler)
Scopo: Verificare che l’esportazione dati funzioni ancora.
- Export Dati Storici
- Azione: Cliccare sull’icona/pulsante di esportazione dati (solitamente nella toolbar o menu). Salvare come
test_export.csv. - Risultato Atteso: Appare un messaggio di successo “Esportazione completata”. Il file CSV contiene i dati corretti.
- Azione: Cliccare sull’icona/pulsante di esportazione dati (solitamente nella toolbar o menu). Salvare come
3. Test Forecast Lab (ForecastHandler)
Scopo: Verificare che la logica complessa dei worker AI sia intatta.
-
Run Model Backtest
- Azione:
- Aprire “Forecast Lab”.
- Configurare un backtest rapido (es. Horizon 10, Model TimesFM/Prophet).
- Cliccare “Run Backtest”.
- Risultato Atteso:
- La progress bar avanza.
- Appare la dock “Forecast Backtest: [TICKER]“.
- I grafici dei risultati vengono renderizzati.
- Azione:
-
Live Forecast
- Azione: Cliccare “Run Forecast” (Live).
- Risultato Atteso: Viene disegnato l’overlay di previsione sul grafico principale.
4. Test Regressione Generale
Scopo: Verificare che non ci siano crash “silenziosi” o zombie thread.
- Chiusura Applicazione
- Azione: Chiudere la finestra principale.
- Risultato Atteso: L’applicazione si chiude pulitamente. Controllare i log (o la console) per assicurarsi che non ci siano errori di “QThread destroyed while still running”.
Asse 3: Riepilogo dei Test
- Il cambio grafico (Standard e Avanzato) funziona.
- L’esportazione dati produce file validi.
- Il Backtest AI completa il ciclo e mostra i risultati.
- Il Forecast Live disegna l’overlay.
- L’applicazione si chiude senza errori di thread.
Blocco Copiabile per Obsidian
# Test Plan: Refactoring MainWindow (Handlers)
- [ ] **Chart Type**: Cambiare grafico (Candle -> Line). Verifica aggiornamento.
- [ ] **Advanced Chart**: Cambiare grafico (Line -> Heikin Ashi). Verifica calcolo.
- [ ] **Export Data**: Esportare CSV storico. Verifica file creato.
- [ ] **Forecast Backtest**: Eseguire un backtest AI. Verifica dock risultati.
- [ ] **Live Forecast**: Eseguire forecast live. Verifica overlay grafico.
- [ ] **Shutdown**: Chiudere app. Verifica assenza errori thread.