L’arte del Debugging

Il Debugging è l’arma migliore per rendere il software aziendale sempre più performante e privo di errori
Uno degli ambiti informatici più delicati, importanti e direttamente collegati con la diagnosi digitale è sicuramente il Debugging. L’attività di debugging consiste nella individuazione di una problematica in un software e si conclude con la sua soluzione.
Per quanto ogni processo di debugging sia unico e imprescindibile possiamo per grandi linee individuare cinque fasi principali del processo:
- Scoperta di un problema nel software
- Isolamento del componente scatenante la problematica
- Scoperta della causa della problematica nel componente
- Sviluppo di una soluzione alla problematica
- Rilascio e testing della soluzione
In questo specifico articolo parleremo di un caso concreto di debugging. Un caso atipico dove senza un metodo di diagnosi digitale sarebbe stato difficile se non impossibile trovare una soluzione alla problematica in tempi ragionevolmente brevi.
SCOPERTA DI UN PROBLEMA NEL SOFTWARE
Improvvisamente e senza un ragionevole motivo il servizio reCaptcha di Google smette di funzionare nel software. Al click sulla spunta “non sono un robot”, il reCaptcha manda in loop l’icona di caricamento e il software inevitabilmente va in blocco non essendo più possibile superare il blocco anti Spam impostato.

Il reCaptcha va in loop mostrando costamente icona di caricamento
La problematica non genera “errori” in console lato client sul browser né tantomeno genera log sul server in cui il software è installato.
ISOLAMENTO DEL COMPONENTE SCATENANTE LA PROBLEMATICA
La prima cosa da capire è dove cercare il problema.
Le domande da porsi sono sempre le stesse e vanno sempre poste in un preciso ordine. Per dare poi risposta alla domanda non si deve fare altro che provare a replicare la problematica rimuovendo dalle costanti la domanda stessa.
La problematica è nata successivamente ad un aggiornamento del software che ha introdotto la regressione?
Per rispondere a questa domanda bisogna controllare quando è stato l’ultimo aggiornamento software e se da quella data la problematica è comparsa. In questo specifico caso no nessun aggiornamento era stato introdotto e la regressione non poteva essere dovuta ad un aggiornamento del software.
La problematica è nata successivamente ad un aggiornamento sistemistico sul server che ospita il software?
Per rispondere a questa domanda se non si ha “controllo” sul servizio hosting o sulle macchine che ospitano il software (con log di debug o possibilità di verifica direttamente sui server che ospitano il software) può essere eseguito controllando se su altri ambienti il medesimo problema si replica (ad esempio provando in locale).
Nel nostro caso NO il problema non poteva essere dovuto ad un problema sistemistico in quanto anche in locale il medesimo problema era presente.
La problematica può essere scatenata da un aggiornamento di una libreria esterna utilizzata nel software?
Nel nostro caso la risposta è assolutamente SI. le librerie reCaptcha sono state aggiornate e questo cambiamento ha in qualche modo introdotto la problematica nel software.
In questo specifico caso per “isolare” la componente scatenante della problematica è stato necessario “spegnere” ad una ad una tutte le librerie javascript in utilizzo e una volta spente riprovare il reCaptcha sino alla individuazione delle librerie javascript che generano conflitto.
Si raggiunge quindi il colpevole: mootools .
SCOPERTA DELLA CAUSA DELLA PROBLEMATICA NEL COMPONENTE
Rimuovendo mootools il servizio ReCaptcha tornava a funzionare, ma le librerie mootools sono parte integrante del software in questione e non potevano essere semplicemente rimosse.
Le possibili strade erano due:
- ricerca di aggiornamento per la libreria con relativa implementazione
- ricerca dei metodi che andavano in conflitto con il reCaptcha e relativo fix degli stessi
Nel nostro caso fortunatamente è stato necessario semplicemente aggiornare la libreria.
SVILUPPO DI UNA SOLUZIONE ALLA PROBLEMATICA
Aggiorniamo mootools all’ultima versione: 1.6.0 è vediamo con nostra gioia che finalmente il reCaptcha è tornato a funzionare correttamente interrompendo il fastidioso loop.

Risolto il bug del reCaptcha ovvero la sua incompatibilità con una vecchia versione di mootools
Ovviamente previo TESTING approfondito e RILASCIO DELL’AGGIORNAMENTO
Applicando le 5 fasi del debugging, conoscendo e ponendo le giuste domande nella corretta sequenza, ed avendo alle spalle anni di know-how e conoscenza dei principali framework del software web la Y-B è in grado di analizzare e risolvere qualsiasi problematica software di progetti esterni, minimizzando i tempi, seppur necessari, di studio e scouting della situazione. Spesso e volentieri problematiche bloccanti per un cliente per noi consistono in una semplice vite da “stringere” e gli anni di esperienza fanno si che sappiamo prima di altri quale sia la vite problematica.
