Gestione della Qualità Software: Metodologie di Test, Audit e Manutenzione
Classificato in Informatica
Scritto il in italiano con una dimensione di 5,04 KB
Obiettivi della Validazione e Verifica del Software
La validazione e la verifica del software mirano a:
- Individuare e correggere i difetti il prima possibile.
- Ridurre il rischio di deviazioni dal budget e dal calendario.
- Migliorare la qualità e l'affidabilità del software.
- Migliorare la visibilità della gestione del processo di sviluppo.
- Valutare rapidamente le modifiche proposte.
Filosofia del Test del Software: Raccomandazioni di G.J. Myers
Le raccomandazioni di G.J. Myers per il test del software includono:
- Ogni test dovrebbe definire l'output atteso.
- Il programmatore deve evitare di testare i propri programmi.
- I risultati di ciascuna prova devono essere ispezionati a fondo per individuare possibili sintomi di effetti collaterali.
- Per generare casi di test, dovrebbero essere inclusi sia dati validi che non validi e inaspettati.
- Dimostrare che il software fa ciò che deve e non fa ciò che non dovrebbe.
- Nessun piano di test dovrebbe essere redatto assumendo l'assenza di difetti, per evitare di sprecare risorse nella loro ricerca.
- La fase di test richiede tanta creatività quanto lo sviluppo del software.
Differenza tra Test Black Box e White Box
L'approccio Black Box (scatola nera) si concentra sullo studio delle funzioni del programma, testando tutti i possibili ingressi e le uscite. Non considera la struttura interna del codice.
L'approccio White Box (scatola bianca) si concentra sulla struttura interna del programma per selezionare i casi di test e verificare tutti i percorsi di esecuzione possibili.
Test Strutturale (White Box): Criteri di Copertura
I criteri di copertura nel test strutturale (White Box) includono:
- Copertura delle istruzioni: Ogni istruzione viene eseguita almeno una volta.
- Copertura delle decisioni: Ogni decisione deve essere valutata come vera e falsa almeno una volta.
- Copertura delle condizioni: Ogni condizione all'interno di una decisione deve essere valutata come vera e falsa almeno una volta.
- Criteri di decisione/condizione: Combina i criteri di decisione e condizione.
- Criteri di condizione multipla.
Ciclo di Test del Software
Il ciclo di test del software comprende diverse fasi:
- Il Test delle Unità si concentra sulle attività del modulo logico e sui vari aspetti delle funzioni che il modulo dovrà svolgere.
- Il Test di Integrazione dovrebbe tener conto dei meccanismi di raggruppamento dei moduli stabiliti nella struttura del programma.
- Il Test di Sistema si concentra sulla verifica che il sistema soddisfi gli obiettivi prefissati.
- Il Test di Accettazione è utilizzato per consentire all'utente di verificare il prodotto finale.
Audit del Software
L'obiettivo dell'audit è confermare oggettivamente che i prodotti e/o i processi di sviluppo rispettino le specifiche, le norme e le procedure utilizzate nel progetto. È quindi normale che venga condotto da persone esterne all'azienda.
Revisione Dettagliata del Prodotto
L'obiettivo della revisione dettagliata è la valutazione di un prodotto per individuare difetti, migliorare la conformità del prodotto alle norme e proporre possibili soluzioni ai problemi.
Manutenzione del Software
La manutenzione è il processo di modifica di un sistema software o di un componente dopo la consegna per correggere errori, migliorare le prestazioni o altri attributi, o per adattarsi a un ambiente che cambia. Esistono diverse tipologie:
- Manutenzione Perfettiva (60%): mira a migliorare o aggiungere nuove funzionalità richieste dagli utilizzatori.
- Manutenzione Adattiva (18%): è l'insieme delle attività intraprese per adattare il sistema ai cambiamenti nel suo ambiente tecnologico.
- Manutenzione Correttiva (17%): corregge i difetti nell'hardware o nel software rilevati dagli utenti.
- Manutenzione Preventiva (5%): mira a prevenire futuri problemi nel sistema.
Revisione (Meeting)
Una revisione consiste in un incontro di un gruppo di persone per leggere un prodotto (es. codice, documentazione) e cercare qualsiasi tipo di difetto o area di miglioramento.