Questa issue definisce l'architettura di testing per SkyReserve seguendo il pattern MVVM. Si concentra sui test unitari, di integrazione, end-to-end (E2E) e manuali. Include anche sezioni specifiche per i componenti di autenticazione e gestione degli utenti.
Pianificazione e Documentazione
Pianificazione Generale dei Test:
I test principali sono suddivisi in quattro categorie:
Test Unitari: Verificare che le singole unità di codice funzionino correttamente in isolamento.
Test di Integrazione: Testare l'interazione tra unità di codice per garantire il loro funzionamento corretto.
Test End-to-End (E2E): Verificare che l'applicazione funzioni correttamente come un sistema completo.
Test Manuali: Interazione manuale con l'applicazione per rilevare problemi che potrebbero sfuggire ai test automatizzati.
Documentazione sui Test:
Ogni tipo di test deve essere documentato con linee guida chiare su come implementarli ed eseguirli. La documentazione deve includere:
Obiettivi del Test: Cosa si intende verificare con il test.
Setup: Passaggi per preparare l'ambiente di test.
Esecuzione: Modalità di esecuzione del test.
Verifica: Criteri per determinare se il test è superato o fallito.
Documento di Risoluzione dei Problemi di SkyReserve:
Requisiti per i Test Unitari.
Requisiti per i Test di Integrazione.
Requisiti per i Test End-to-End (E2E).
Linee Guida per i Test di Regressione:
Test Automatizzati.
Test Manuali.
Copertura di Testing Pianificata (Prima Iterazione)
Test Unitari:
ViewModel:
AuthViewModel: Garantire che la logica di autenticazione e la gestione dello stato siano implementate correttamente.
UserAccountViewModel: Verificare la funzionalità di gestione dell'account utente.
Repository:
AuthRepository: Testare i metodi di autenticazione per la corretta gestione dei dati e l'interazione con le API.
UserAccountRepository: Garantire la corretta gestione dell'account utente.
Utility:
Classi e Metodi di Utilità: Testare le funzioni di utilità e le classi helper utilizzate nell'app.
Test di Integrazione:
Data Access Objects (DAO):
UserAccountDao e Room: Verificare che il DAO interagisca correttamente con il database.
UserAccountDao e AuthRepository: Garantire che il DAO interagisca correttamente con AuthRepository per le operazioni di autenticazione.
Interazione tra ViewModel e Repository:
AuthViewModel e AuthRepository: Assicurarsi che il ViewModel interagisca correttamente con il Repository per i flussi di autenticazione.
UserAccountViewModel e UserAccountRepository: Verificare l'interazione tra il ViewModel e il Repository per la gestione dell'account utente.
Interazione tra ViewModel e LocalSessionManager:
AuthViewModel e LocalSessionManager: Verificare la corretta gestione dei dati di sessione.
UserAccountViewModel e LocalSessionManager: Garantire l'interazione corretta tra gestione utente e sessione.
Interazione tra Activities/Fragments e ViewModels:
SignUpActivity e AuthViewModel: Verificare il flusso di registrazione dell'utente.
SignInActivity e AuthViewModel: Garantire che il flusso di login funzioni correttamente.
HomeActivity e UserAccountViewModel: Verificare la gestione dei dati dell'account utente.
WelcomeActivity, WelcomeFragment e WelcomeViewPageAdapter: Garantire il corretto flusso di onboarding.
Test End-to-End (E2E):
Activities e Fragments:
WelcomeActivity: Testare il processo di onboarding per nuovi utenti.
SignUpActivity: Verificare il processo di registrazione.
SignInActivity: Garantire il corretto funzionamento del flusso di login.
HomeActivity: Testare la schermata principale.
AccountActivity (logout): Verificare il corretto logout e la gestione dei dati di sessione.
Commenti:
Sto creando test principalmente per l'autenticazione e la gestione degli utenti.
AppModule: Dovrei testare componenti come AppModule? Al momento gestisce solo dipendenze relative all'autenticazione.
Database Room: La pianificazione avverrà più tardi quando sarà aggiunto un server online.
Impostazioni Account: Al momento c'è solo la funzione di logout; i test verranno creati quando quest'area sarà completata.
Riferimenti:
Android Testing Codelab di Google offre una guida completa su come configurare diversi tipi di test in un'applicazione Android.
Android Testing Guide degli sviluppatori Android fornisce informazioni dettagliate sulle diverse strategie e pratiche di testing.
Descrizione:
Questa issue definisce l'architettura di testing per SkyReserve seguendo il pattern MVVM. Si concentra sui test unitari, di integrazione, end-to-end (E2E) e manuali. Include anche sezioni specifiche per i componenti di autenticazione e gestione degli utenti.
Pianificazione e Documentazione
Pianificazione Generale dei Test:
I test principali sono suddivisi in quattro categorie:
Documentazione sui Test:
Ogni tipo di test deve essere documentato con linee guida chiare su come implementarli ed eseguirli. La documentazione deve includere:
Documento di Risoluzione dei Problemi di SkyReserve:
Copertura di Testing Pianificata (Prima Iterazione)
Test Unitari:
Test di Integrazione:
Test End-to-End (E2E):
Commenti:
AppModule
? Al momento gestisce solo dipendenze relative all'autenticazione.Riferimenti: