Garbage in, garbage out (GIGO) è un'espressione comunemente usata nel campo della programmazione informatica e della sicurezza informatica. Si usa per descrivere il concetto che un computer elabora solo informazioni di qualità; se i dati in ingresso sono di scarsa qualità, è probabile che l'output generato dal computer sia difettoso.
GIGO è un adagio dell'industria informatica coniato per la prima volta negli anni '60 da Walter Shewhart. L'espressione è usata per sottolineare l'importanza di convalidare i dati prima di tentare di elaborarli, poiché i dati non validi porteranno a risultati imprecisi.
Il GIGO moderno inizia sempre con la raccolta di dati, spesso provenienti da diverse fonti. Questi dati devono poi essere controllati per verificarne l'accuratezza e la completezza. Senza un'adeguata pulizia, i dati spazzatura possono essere elaborati in un database utilizzando uno script automatico o l'inserimento manuale. Questo può portare a dati corrotti, che possono causare risultati imprecisi.
Nel campo della sicurezza informatica, il GIGO si applica anche agli input e agli output dannosi. Gli sviluppatori di malware individuano le vulnerabilità nei sistemi informatici e le sfruttano per accedere a informazioni riservate. Se in questo caso i dati di input sono corrotti o dannosi, i dati di output possono essere alterati e sfruttati dagli hacker a proprio vantaggio.
Le best practice GIGO comprendono la verifica della composizione e dell'accuratezza dei dati e l'utilizzo di protocolli di sicurezza adeguati per proteggere i sistemi informatici da input dannosi. I team di garanzia della qualità possono verificare l'accuratezza e l'affidabilità dei dati prima che vengano elaborati e prodotti. In questo modo si garantisce che il sistema informatico venga utilizzato correttamente e che l'output sia accurato.
In conclusione, GIGO è un concetto importante nel campo della programmazione informatica e della sicurezza informatica. Dati di qualità in ingresso producono risultati di qualità, quindi è fondamentale che i dati siano puliti e verificati prima di essere forniti a un sistema informatico. In questo modo si garantisce che l'output sia accurato e affidabile.