Pro e contro
Finito di descrivere il processo di ispezione del software possiamo chiederci: funziona? Prove empiriche parrebbero suggerire che la risposta sia sì e evidenziano anche che tale tecnica è particolarmente cost-effective.
I vantaggi dell’uso di questa tecnica di verifica e convalida sono infatti numerosi:
- Esiste un processo rigoroso e dettagliato;
- Si basa sull’accumulo dell’esperienza, auto-migliorandosi con il tempo (vd. checklist);
- Il processo integra una serie di incentivi sociali che spingono l’autore del codice ad analizzarlo in modo critico;
- A differenza del testing è possibile per la mente umana astrarre il dominio completo dei dati, considerando quindi in un certo senso tutti i casi di test;
- È applicabile anche a programmi incompleti.
La software inspection funziona così bene che è spesso utilizzata come baseline per valutare altre tecniche di verifica e convalida.
Questo non significa però che essa sia esente da limiti.
Innanzitutto il test può essere fatto solo a livello di unità in quanto la mente umana ha difficoltà a lavorare in situazioni in cui sono presenti molte informazioni contemporaneamente in assenza di astrazioni e indirettezze.
Inoltre la software inspection non è incrementale: spesso infatti la fase di follow-up non è così efficace, in quanto il codice è cambiato talmente tanto che è necessario ricominciare l’ispezione da capo.
Ciò non toglie però che, come afferma la Legge di Fagan (L17):
Le ispezioni aumentano in maniera significativa la produttività, qualità e la stabilità del progetto.