Uno schroedinbug (detto anche schrödinbug) è un bug insolito del software che si manifesta soltanto quando un programmatore o uno sviluppatore lo nota. Si tratta di uno dei bug software più difficili da identificare, semplicemente a causa della sua natura intrinseca: il “bug” rimane latente e non danneggia il software (è usuale che il software funzioni senza problemi per anni), ma dal momento in cui una persona legge il codice del software, il programma non funzionerà più.
È una situazione difficile perché, in termini logici, il bug non avrebbe dovuto causare l’esecuzione del programma. Tuttavia, si manifesta solo quando un programmatore lo scopre. Una volta notato, il programma funzionerà male finché il bug non sarà stato risolto.
💻 Proteggi i tuoi endpoint remoti e ibridi con la solida gestione delle patch multipiattaforma di NinjaOne.
Perché si chiama schroedinbug?
Il nome è stato ispirato dall’esperimento di pensiero del gatto di Schrödinger, una popolare sovrapposizione quantistica nella meccanica quantistica. Erwin Schrödinger, un fisico austriaco, ha proposto l’idea che un gatto possa essere contemporaneamente vivo e morto in una scatola.
Ha messo in discussione l’interpretazione di Copenaghen della meccanica quantistica, che rimane uno dei quadri più influenti nella comprensione di questa teoria fisica. In sostanza, l’interpretazione di Copenaghen si basa su diversi principi fondamentali, non ultimo quello del dualismo onda-particella. In questo caso, i fisici sostengono che le entità possono comportarsi sia come particelle che come onde, a seconda della configurazione sperimentale. Si presuppone che le particelle quantistiche abbiano valori di osservabili (o dati misurabili come la posizione o il momento) solo una volta effettuata un’osservazione. Pertanto, le entità esistono in una fascia di potenzialità, o in quella che viene chiamata “sovrapposizione”.
Schrödinger ha proposto un esperimento mentale per mettere in discussione tale interpretazione. Non entreremo nello specifico in questo articolo, ma consigliamo di leggere l’esperimento del gatto di Schrödinger nell’ articolo di Sciencing.
La cosa importante da considerare, tuttavia, è il modo in cui l’esperimento di pensiero ha influenzato la programmazione dei computer e l’esistenza di vari bug del software.
Che cos’è uno schroedinbug?
Nel campo della programmazione informatica, schroedinbug segue tipicamente il seguente schema.
- Il sistema o l’applicazione funzionano perfettamente, spesso per anni.
- Successivamente, viene segnalato un errore non correlato e spesso minore, oppure il programmatore decide di controllare a caso il codice sorgente.
- Lo sviluppatore indaga sull’errore, legge il codice sorgente e scopre che il codice è difettoso e non avrebbe dovuto consentire il funzionamento del sistema o dell’applicazione.
Questo, naturalmente, porta a discussioni accese tra gli ingegneri del software. Da un lato, un codice che non potrebbe mai funzionare, non potrebbe mai funzionare. Se ha funzionato o funziona, significa che il codice è corretto. D’altra parte, gli schroedinbug vengono segnalati e sperimentati ancora oggi.
Allora, come fa ad esistere uno schroedinbug?
Ci sono alcune teorie da considerare.
Il codice di errore era relativo a un problema non grave
Alcuni sviluppatori di software ritengono che a volte uno schroedinbug venga segnalato perché un programmatore o uno sviluppatore non comprende appieno il codice sorgente. In questo caso, il codice di errore si trova in una funzionalità o funzione non principale che non viene utilizzata regolarmente. Una condizione esterna viene alterata (ad esempio, un nuovo aggiornamento) e provoca inavvertitamente la rottura del codice.
Lo sviluppatore esamina quindi il codice sorgente e, avendo bisogno di più tempo per tracciare ogni scenario o dipendenza, afferma che il software non avrebbe mai potuto funzionare e lo riscrive semplicemente.
Il software non ha mai funzionato e nessuno se n’è accorto
Ciò si riferisce al primo argomento. In questo caso, un nuovo utente esamina un codice sorgente e nota un errore che nessuno ha ancora scoperto. Gli sviluppatori più anziani lo guarderebbero e direbbero che è “impossibile” perché lo usano da anni. Ma la verità è che non se ne sono mai accorti perché era irrilevante o, se sono stati loro stessi a farlo, non hanno sentito il bisogno di risolverlo subito finché qualcun altro non lo ha scoperto.
Pertanto, gli sviluppatori hanno ragione nel dire che il codice sorgente non avrebbe mai potuto funzionare perché non l’ha mai fatto.
In ogni caso, gli schroedinbug sono controversi perché presuppongono che un codice sorgente possa essere un gatto di Schrödinger, cosa che gli ingegneri sostengono non possa mai accadere. Se un codice non funziona, non funziona e non funzionerà mai.
Riduci le vulnerabilità di sicurezza fino al 75% con lo strumento di gestione delle patch numero 1 di NinjaOne, secondo G2.
Evita la presenza di schroedinbug nella tua rete IT
A prescindere dall’esistenza o meno degli schroedinbug, è importante proteggere il tuo ambiente IT con un sistema di gestione delle patch robusto e automatizzato. Il patch management di NinjaOne ti consente di identificare, valutare e distribuire automaticamente le patch su sistema operativi Windows, Mac, Linux e su applicazioni di terze parti.
Se sei pronto, richiedi un preventivo gratuito, iscriviti a una prova gratuita di 14 giorni, oppure guarda una demo.