Criteri necessari per un buon piano di testing software

Criteri necessari per un buon piano di testing software

L’obiettivo di questo articolo sul testing è quello di presentare le varie attività di testing da attuare, con gli specifici vincoli e processi pianificati.
Essendo quasi impossibile sviluppare un’applicazione software priva di errori, è indispensabile dedicare tempo a trovarli e correggerli attraverso un adeguato processo di testing. Il costo dei test è in realtà un investimento perchè consente di ridurre i costi nelle successive fasi di rilascio in produzione e di esercizio.

Criteri necessari per un buon piano di testing software

L’obiettivo della fase di testing dovrebbe essere quello di trovare il maggior numero di errori con il minimo numero di casi di prova. Il piano di testing quindi ha lo scopo principale di stabilire la gerarchia con cui i test vanno eseguiti, i metodi di esecuzione, i criteri di accettazione.
Il testing viene effettuato tramite un approccio bottom-up: prima si verificano i singoli moduli per poi testare l’intero progetto, valutandone la complessiva efficienza. Detto ciò, un buon piano di test deve prevedere almeno le seguenti tipologie di test:

  1. Unit test
  2. Integration Test
  3. System Test
  4. User Acceptance Test
  5. Alpha test e Beta test
  6. Regression Test
  7. Stress test

Buon piano di testing software

Fase e gerarchia di Test

Unit test (Test di unità o di modulo)

Ha l’obiettivo di individuare gli errori nel singolo modulo software. Si verifica che il software esegua correttamente le operazioni. Viene effettuato dal programmatore che ha sviluppato il modulo e documentato riportando i requisiti funzionali da soddisfare. (peso sul piano di testing 15%)

Integration Test (Test di integrazione)

Ha l’obiettivo di individuare gli errori nel software quando tutti i moduli che compongono un sottosistema o l’intero sistema vengono fatti lavorare assieme. Viene effettuato congiuntamente dal gruppo dei programmatori che hanno sviluppato i vari moduli. (peso sul piano di testing 20%)

System Test (Test di sistema)

Ha l’obiettivo di garantire che il prodotto software nel suo complesso soddisfi completamente i requisiti iniziali, è un collaudo interno. (peso sul piano di testing 45%)

User Acceptance Test (Test di accettazione)

Ha l’obiettivo di valutare la rispondenza dell’applicazione software rispetto ai requisiti espressi inizialmente nel contratto e di ottenere l’accettazione formale del cliente di quanto realizzato. Il test viene effettuato dal cliente nel suo ambiente di test, e da un gruppo di utenti. (peso sul piano di testing 20%)

Alpha test e Beta test

Un alpha test è un test preliminare di un’applicazione software anche non ancora completa, eseguito da alcuni potenziali utenti rappresentati da un team. Un beta test ha l’obiettivo di far valutare al cliente, prima del roll-out ufficiale del sistema, la reale funzionalità, completezza ed operatività dell’applicazione. I dettagli sulla raccolta dati da parte dell’utente di questa parte verranno aggiornati su questo documento appena la versione stabile dell’app verrà completata, in modo da rendere la raccolta dei dati pi`u adatta alle funzionalità finali e dettagli per completare e rendere pi`u funzionale il frontend.

Regression Test (test di non regressione)

Ha l’obiettivo di verificare a valle di una manutenzione correttiva, dopo che il bug è stato individuato e corretto e sono stati eseguiti esattamente gli stessi test che erano stati effettuati quando era stato individuato il problema.

Stress test (test di carico)

Lo stress test fa parte dei test di sistema e ha l’obiettivo di determinare il punto di rottura di un sistema software, oltre il quale si verificano instabilità del sistema, perdita dei dati o interruzione del servizio.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *