È uscito il Corso Java Completo — usa il coupon JAVA2026 (fino al 30 giugno)
Torna al blog

Cos'è il debugging e come si fa

Cos'è il debugging spiegato semplice: come trovare e correggere i bug nel codice con print, breakpoint e metodo. Guida pratica per chi inizia a programmare.

Edoardo Midali

Edoardo Midali

Developer · Content Creator

4 min di lettura

Scrivere codice che funziona al primo colpo è raro. La maggior parte del tempo di un programmatore non passa a scrivere codice nuovo, ma a capire perché quello esistente non fa quello che dovrebbe. Questo lavoro investigativo si chiama debugging.

In questo articolo ti spiego cos'è il debugging, da dove arriva il termine "bug" e come si fa nella pratica con metodo invece che a caso.

Cos'è il debugging in parole semplici

Il debugging è il processo di individuare, analizzare e correggere gli errori (bug) presenti in un programma, in modo che il codice si comporti come previsto. In sostanza è il lavoro detective della programmazione: cerchi l'indizio che spiega il malfunzionamento.

Il termine "bug" (insetto) ha origini curiose: negli anni '40 un vero insetto finì dentro un computer causando un guasto. Da allora chiamiamo "bug" ogni errore nel software, e "debugging" l'atto di rimuoverli.

I tipi di errori che incontri

Non tutti i bug sono uguali. Conviene distinguere tre famiglie:

  • Errori di sintassi: hai scritto codice che il linguaggio non capisce (una parentesi mancante, una virgola di troppo). Il programma non parte proprio.
  • Errori a runtime: il codice parte ma si blocca durante l'esecuzione, ad esempio dividendo per zero.
  • Errori logici: il programma gira senza crashare, ma il risultato è sbagliato. Sono i più insidiosi, perché niente segnala il problema.

Il metodo, non il panico

Davanti a un bug la tentazione è cambiare codice a caso finché funziona. È l'approccio peggiore. Meglio seguire un metodo:

  1. Riproduci il bug: trova i passi esatti che lo fanno comparire.
  2. Leggi il messaggio di errore: spesso dice già file e riga del problema.
  3. Isola la causa: restringi la zona di codice sospetta.
  4. Forma un'ipotesi su cosa stia andando storto.
  5. Verifica e correggi, poi controlla di non aver rotto altro.

Lo strumento più semplice: il print

La tecnica più immediata è stampare i valori delle variabili per vedere cosa succede davvero.

def media(numeri):
    print("Input ricevuto:", numeri)   # debug
    totale = sum(numeri)
    print("Totale:", totale)           # debug
    return totale / len(numeri)

media([10, 20, 30])

Vedendo i valori reali scopri subito se il problema è nei dati in ingresso o nel calcolo. È rozzo ma efficacissimo, e tutti i programmatori lo usano.

Il debugger e i breakpoint

Gli editor moderni offrono un debugger vero e proprio. Ti permette di mettere un breakpoint, cioè un punto in cui il programma si ferma, e di ispezionare lo stato riga per riga: quali variabili esistono, che valore hanno, dove sta andando l'esecuzione. È molto più potente del print quando il bug è complesso.

function totale(prezzi) {
  let somma = 0;
  for (const p of prezzi) {
    somma += p;   // metti qui un breakpoint per ispezionare 'somma'
  }
  return somma;
}

Consigli che fanno la differenza

  • Cambia una cosa alla volta, così sai cosa ha avuto effetto.
  • Spiega il problema ad alta voce, anche a un oggetto: spesso la soluzione emerge mentre parli.
  • Fai pause: con la mente fresca i bug si trovano in metà tempo.
  • Usa Git per tornare a una versione funzionante; se non sai come, leggi la guida a Git e GitHub.

Le regex, ad esempio, sono una fonte tipica di bug sottili: se le usi, ti torna utile capire bene cosa sono le espressioni regolari.

In sintesi

Il debugging è l'arte di trovare e correggere gli errori nel codice con metodo, non a caso. Distingui i tipi di errore, leggi i messaggi, isola la causa e usa print o breakpoint per vedere cosa succede davvero. È una competenza che migliora con la pratica e che vale quanto saper scrivere codice.

Imparare a fare debugging fa parte del percorso per programmare da zero. Se vuoi allenarti con esercizi e bug reali da risolvere, dai un'occhiata ai corsi di CodeGrind.