Che cosa è il processo di verifica e validazione (V&V) del software

Che cosa è il processo di verifica e validazione (V&V) del software

Verifica e Validazione (V&V)

Il collaudo è un insieme di attività che ha come obiettivo l’individuazione di errori che sono stati commessi inavvertitamente durante la progettazione e realizzazione del software. Esso fa parte di una fase più vasta chiamata verifica e validazione (V&V).
La validazione è un processo che, partendo dai requisiti d’utente, punta a dimostrare il soddisfacimento dei reali bisogni dell’utente da parte del sistema software. Data l’informalità dei requisiti d’utente, la sola validazione non garantisce la correttezza del software.
La verifica è un processo che, partendo dalle specifiche formali prodotte dall’analista, punta a dimostrare il soddisfacimento della specifica dei requisiti da parte del sistema software.
Esistono due approcci fondamentali alla fase di verifica: sperimentale e analitico. Il primo consiste nello sperimentare il comportamento di un software per analizzare se questo si comporti secondo le aspettative (test del prodotto). L’altro consiste nell’analizzare il prodotto e tutta la documentazione di progetto ad esso relativa per ricavare indicazioni circa la correttezza del suo operare come risultato delle decisioni progettuali effettuate.
Le due categorie di tecniche di verifica vengono anche classificate come dinamiche e statiche, in quanto la prima, per definizione, richiede l’esecuzione del sistema sotto verifica, mentre l’altra è basata sull’analisi di modelli statici del prodotto.

Che cosa è il processo di verifica e validazione (V&V) del software

Test software

Il metodo più naturale e tradizionale per verificare un prodotto è quello di provarlo in un certo numero di situazioni rappresentative, accertando che si comporti come previsto. In generale, è impossibile testare un software in tutte le sue possibili condizioni operative; pertanto risulta necessario trovare alcuni casi di test che forniscano con una sufficiente evidenza che il prodotto avrà un comportamento accettabile anche nelle situazioni in cui non è stato testato.
Il test è un’attività critica nell’ingegneria del software e dovrebbe essere eseguita nel modo più sistematico possibile, definendo in maniera chiara i risultati che si attendono e il modo in cui si vuole ottenerli. Nella pratica, invece, il test viene eseguito in maniera non sistematica e senza applicare criteri predeterminati.
Infatti, il test può essere usato per dimostrare la presenza di malfunzionamenti, non per dimostrare la loro assenza (tesi di Dijkstra, 1972). Il test dunque dovrebbe aiutare a localizzare gli errori e non solo a rilevarne la presenza. Per tutti questi motivi, prima di rilasciare il software finale gli ingegneri devono testare assolutamente sia i requisiti funzionali che quelli non funzionali, utilizzando eventualmente più di una tecnica di test.

Pubblicato da Vito Lavecchia

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

Lascia un commento

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