Testing
Per verificare il corretto comportamento del sistema e l’efficacia del prodotto realizzato si è proceduto a testare le diverse componenti del sistema sia tramite test manuali, che mediante test automatici. Nelle seguenti sezioni verranno definiti con maggiore dettaglio i test realizzati.
Testing del Server
Durante la progettazione Server sono stati effettuati test automatici tramite la libreria Vitest per verificare la qualità del codice e tutte le funzionalità.
Vitest ha permesso di effettuare test sulle API implementate ed esposte dai vari microservizi, verificando che i vari endpoint rispondessero correttamente alle richieste e restituissero i dati attesi. Inoltre, è stato possibile testare la gestione degli errori e la validazione dei dati in input.
Si è cercato di testare la maggior parte dei componenti in tutti i microservizi, ottenendo una coverage complessiva di:
Stmts | Branch | Funcs | Lines |
---|---|---|---|
80.40 | 78.48 | 97.475 | 80.40 |
Di seguito verrà rappresentata la coverage per ogni singolo servizio:
Microservices coverage
Servizio | Stmts | Branch | Funcs | Lines |
---|---|---|---|---|
Activity | 97.02 | 88.23 | 100 | 97.02 |
Bills | 65.15 | 87.5 | 87.5 | 65.15 |
Buildings | 67.85 | 58.13 | 100 | 67.85 |
Gateway | 96.29 | 87.5 | 100 | 96.29 |
Organization | 74.01 | 72.41 | 100 | 74.01 |
Preferences | 89.92 | 87.09 | 100 | 89.92 |
Renewable | 86.79 | 81.08 | 100 | 86.79 |
Users | 66.18 | 65.9 | 92.3 | 66.18 |
Testing del Client
Anche per il Client sono stati realizzati dei test automatici per verificare il corretto funzionamento dell’applicazione utilizzato sempre Vitest per testare sia la logica che le interfacce.
Tuttavia, siccome il sistema è distribuito, non è stato possibile testare tutte le funzionalità dell’applicazione in quanto richiede che i micro-servizi siano attivi e in esecuzione. La coverage finale ottenuta (con 250 test) è la seguente:
Stmts | Branch | Funcs | Lines |
---|---|---|---|
89.33 | 84.04 | 70.77 | 89.33 |
In conclusione, sono stati eseguiti test manuali su piattaforme MacOS e Windows al fine di verificare il corretto funzionamento dell’applicazione. Inizialmente, sono stati eseguiti test sulle singole pagine per accertarsi che le richieste al server fossero gestite correttamente e che tutte le informazioni necessarie venissero visualizzate all’utente. Inoltre, è stato verificato che l’aggiornamento dei dati funzionasse correttamente. Successivamente, sono state integrate le diverse schermate per garantire che il comportamento complessivo dell’applicazione rimanesse invariato. Infine, è stato verificato che l’interfaccia fosse responsive alle azioni dell’utente, mantenendo tutte le altre funzionalità.
Coverage ottenuta per il Client