CodeGym /Corsi /Frontend SELF IT /Debugging del programma

Debugging del programma

Frontend SELF IT
Livello 38 , Lezione 2
Disponibile

9.1 Comparsa dei bug

Il debugging del software è il processo di ricerca e correzione di errori o bug in un programma. È la parte più interessante dello sviluppo del software che aiuta a garantire il corretto funzionamento dei programmi.

Storia del termine "bug"

Il termine "bug" (errore) nel contesto dei programmi per computer è stato utilizzato per la prima volta negli anni '40. Anche se la stessa idea di "bug" esisteva già prima dell'apparizione dei computer, indicando guasti meccanici in vari dispositivi.

Il primo caso documentato dell'uso del termine "bug" nella tecnica informatica fu con un team che lavorava sul computer Mark II alla Harvard University nel 1947(!). Il team scoprì che uno dei relè della macchina non funzionava perché una falena vi era entrata. Rimossero l'insetto e lo registrarono nel diario come il "primo vero caso di scoperta di un insetto" (literal bug).

Anche se questo non fu il primo caso di utilizzo del termine "bug" per indicare un errore, questo incidente divenne famoso e contribuì a rendere popolare il termine "bug".

bug

Debugging del programma

Il debugging è il processo di ricerca, diagnostica e correzione dei bug nel software. Il processo di debugging include diverse fasi:

  1. Individuazione dell'errore: identificare i sintomi che indicano la presenza di un errore nel programma.
  2. Riproduzione dell'errore: creare le condizioni in cui l'errore si ripresenta per capire meglio la sua natura.
  3. Diagnosi del problema: utilizzare vari strumenti e metodi per analizzare il codice e trovare la causa dell'errore.
  4. Correzione dell'errore: apportare modifiche al codice per risolvere l'errore.
  5. Test: verificare la correzione e testare il programma per assicurarsi che l'errore sia stato risolto e non siano apparsi nuovi problemi.

Quindi un bug è un termine generico per qualsiasi errore nei programmi, mentre il de-bugging è il processo di individuazione e risoluzione di questi errori.

9.2 Strumenti e metodi di debugging

Logging

Aggiungere log al codice del programma consente di monitorarne l'esecuzione e ottenere informazioni sullo stato delle variabili e delle operazioni in vari punti di esecuzione del programma. Per il logging in JavaScript c'è un'ottima libreria — winston.

Ecco un esempio di utilizzo del logging:

JavaScript
    
      const { createLogger, format, transports } = require('winston');

      // Creiamo un logger con livello di debug
      const logger = createLogger({  level: 'debug' });

      // Funzione di divisione
      function divide(a, b) {
        logger.debug(`Divisione di ${a} per ${b}`);
        if (b === 0) {
          logger.error("Tentativo di divisione per zero!");
          return null;
        }
        return a / b;
      }

      // Esempio di utilizzo della funzione
      const result = divide(10, 2);
      console.log(result); // Stampare: 5
    
  

Uso dei debugger

I debugger sono strumenti che permettono agli sviluppatori di eseguire il programma passo dopo passo, impostare punti di interruzione (breakpoints), controllare i valori delle variabili e modificarli durante l'esecuzione del programma.

Debugger popolari per JavaScript:

  • Chrome DevTools: debugger integrato nel browser Google Chrome
  • Firefox Developer Tools: debugger integrato nel browser Mozilla Firefox
  • Node.js Debugger: debugger integrato per JavaScript lato server in Node.js
  • Visual Studio Code Debugger: debugger integrato nell'editor Visual Studio Code

Esempio di utilizzo del debugger in Node.js:

JavaScript
    
      // Import del modulo di debug integrato
      const { inspect } = require('util');

      // Esempio di funzione con errore
      function faultyFunction(a, b) {
        debugger; // Impostazione del punto di interruzione
        let result = a / b;
        return result;
      }

      // Chiamata alla funzione con errore
      console.log(faultyFunction(10, 0));
    
  

Quando il programma raggiunge il debugger, si interrompe, e puoi utilizzare i comandi del debugger, come procedere passo passo (step over), entrare (step into), uscire (step out), controllare i valori delle variabili e altro ancora.

Studieremo il debug dei programmi usando il debugger integrato in Intellij IDEA (è necessaria la versione Ultimate Edition).

9.3 Uso del debug

In generale, il debug include l'uso attivo di strumenti di debugging e pratiche per individuare e correggere gli errori.

Fasi del debugging:

  1. Impostazione dei punti di interruzione: imposta punti di interruzione nel codice per fermare l'esecuzione del programma nei punti di interesse.
  2. Esecuzione passo dopo passo: esegui il programma passo dopo passo, osservando i cambiamenti nello stato del programma e nei valori delle variabili.
  3. Analisi delle variabili: studia i valori delle variabili e delle espressioni in varie fasi dell'esecuzione del programma per identificare dati errati o errori logici.
  4. Correzione degli errori: apporta modifiche al codice per correggere gli errori trovati.
  5. Nuovo test: dopo aver corretto gli errori, esegui un test del programma per assicurarti che l'errore sia stato risolto e non siano emersi nuovi problemi.

Sembra facile, vero? Bene, nella prossima lezione affronteremo tutti questi passaggi in dettaglio :)

Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION