Debugging: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Annullate le modifiche di 94.167.102.241 (discussione), riportata alla versione precedente di Sentruper |
Annullata la modifica 89618967 di Vituzzu (discussione) Salve, io sono Folto 82, non Nycolinux e mi ero dimenticato di loggarmi, stavo solo formattando alcune voci che ora risistemo...saluti |
||
Riga 2:
[[File:Coding Shots Annual Plan high res-5.jpg|thumb|Uno [[sviluppatore software]] esegue un debugging]]
Il '''debugging''' (o semplicemente '''debug'''), in [[informatica]], indica l'attività che consiste nell'individuazione da parte del [[programmatore]] di uno o più errori ([[bug]]) rilevati nel [[software]] in fase di [[programmazione (informatica)|programmazione]] oppure a seguito dell'utilizzo del [[programma (informatica)|programma]].
L'attività di debug è una delle operazioni più importanti e difficili per la messa a punto di un [[programma (informatica)|programma]], spesso estremamente difficile per la complessità dei software oggi in uso e delicata per il pericolo di introdurre nuovi errori o comportamenti difformi da quelli desiderati nel tentativo di correggere quelli per cui si è svolta l'attività di ''debug''.
== Operazioni di base ==
Riga 16:
=== Rilevazione dell'errore ===
Alla fine della stesura del codice il programmatore opera una prima fase di test valutando se l'output del programma è quello atteso compilando/interpretando ed eseguendo il codice. All'eventuale rilevazione dell'errore segue la fase di ''debugging'', ossia di individuazione della parte di [[software]], a volte molto complesso, nella quale si annida l'errore. Spesso tale operazione viene svolta dal programmatore di pari passo con la stesura del codice stesso, testando continuamente il codice ed evitando così l'accumulo degli errori.
Questa attività è oggi supportata da programmi specifici ([[debugger]]) messi a disposizione dall'[[Integrated development environment|IDE]] grazie anche all'uso di [[breakpoint]] su linee di codice e dai messaggi di [[standard error]] emessi nei [[file]] di [[log]] (es. rilevamento [[eccezione (informatica)|eccezioni]] nelle console dell'IDE), che indicano e mostrano allo [[programmatore|sviluppatore]] l'esecuzione, [[istruzione (informatica)|istruzione]] per istruzione, del programma, permettendo nel contempo l'analisi dei dati trattati dal programma stesso. In assenza di tali strumenti per le attività di ''debugging'', si ricorre alla più semplice, ma anche meno efficace tecnica di stampare a [[monitor (video)|video]] o su [[file]] le istruzioni che il programma sta eseguendo, inserendo a tal scopo nel codice delle istruzioni di ''debug'' che evidenzino il punto di arrivo dell'esecuzione del programma fino all'errore. Una volta individuato l'errore nel codice il programmatore corregge l'errore in maniera iterativa finché il programma non fa ciò che è desiderato.
Una seconda fase di debug è quella che il programmatore deve risolvere quando il software prodotto è stato mandato in fase di ''testing'' o [[collaudo]] al rispettivo team ed è stato rimandato indietro con la lista dei difetti riscontrati. In genere in questo casi molto spesso sono presenti errori nella stesura o interpretazione delle specifiche rispetto a ciò che è realmente desiderato senza andare in errore.
Un terza fase di debug può succedere quando in fase di utilizzo del programma da parte dell'utente finale questi riscontra delle anomalie.
== Accorgimenti per accelerare il processo di debug ==
===
È necessario fare autocritica, e accettare il fatto che il programma non si comporta come dovrebbe e che si è fatto un errore, cosa del tutto normale e frequente in fase di sviluppo; se tutto fosse stato previsto e non ci fossero errori, il programma funzionerebbe correttamente, ma spesso questo risultato non si ottiene quasi mai alla prima stesura del codice, ma solo per successive modifiche e correzioni. Tale atteggiamento mentale incrementa significativamente la possibilità di trovare e risolvere dei bug.
=== Usare
Creare uno o più [[log|file di log]] può risultare molto utile per verificare se il programma funziona come previsto, e cosa succede prima, dopo e durante il verificarsi del malfunzionamento.
|