Pro e contro

Finito di descrivere il processo di ispezione del software possiamo chiederci: funziona? Prove empiriche parrebbero suggerire che la risposta sia 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.