Differisce dal testing (lo complementa) perchè è qualcosa di statico: non si esegue il software.
Anche l'obiettivo è diverso: viene svolta per trovare difetti, non malfunzionamenti (che sono solo il sintomo di un difetto)
Il principale vantaggio è che può essere fatta su qualunque tipo di documento (non solo sul codice), e per via della staticità permette di trovare difetti molto prima rispetto al testing.
Viene svolta in diversi modi: tramite review, ispezioni, analisi statica, .... Ovviamente dipende dal tipo di documenti, organizzazione etc...
E' quindi un modo poco costoso di trovare e correggere difetti ancora prima che si manifestino, focalizzandosi sulle loro cause prime (root causes).
Può anche rilevare delle omissioni, ovvero delle funzionalità che non sono state implementate ma che invece sono richieste dalle specifiche.
La responsabilità degli errori non è più solo in chi ha scritto il sw, ma anche in chi l'ha rivisto.
Anche qui si lavora in modo disciplinato e definito. Ci sono due tipi di tecniche:
Tecniche manuali:
Tecniche automatizzate: