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.
3. Test Forecast Lab (ForecastHandler)

Scopo: Verificare che la logica complessa dei worker AI sia intatta.

  • Run Model Backtest

    • Azione:
      1. Aprire “Forecast Lab”.
      2. Configurare un backtest rapido (es. Horizon 10, Model TimesFM/Prophet).
      3. Cliccare “Run Backtest”.
    • Risultato Atteso:
      1. La progress bar avanza.
      2. Appare la dock “Forecast Backtest: [TICKER]“.
      3. I grafici dei risultati vengono renderizzati.
  • 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.