Monitoraggio dei bug

Migliora la verifica software grazie al tracciamento di errori e difetti

Working Late at Night in the Office: Businesswoman Uses Desktop Computer, Analyzing, Using Documents, Solving Problems, Finishing Important Project. Diligent Ambitious Young Worker. Side View

Che cos'è il monitoraggio dei bug?

Il monitoraggio dei bug è il processo di registrazione e monitoraggio dei bug o degli errori durante un test di software. Viene anche chiamato monitoraggio delle anomalie o dei problemi. Grandi sistemi possono avere centinaia o migliaia di anomalie. Ognuno di essi deve essere valutato, monitorato e messo in ordine di priorità per eseguire la funzione di debug. In alcuni casi, può essere necessario monitorare i bug per un periodo lungo di tempo.

"Il tracciamento delle anomalie è un processo importante nell'ingegneria del software, poiché i sistemi complessi e critici per il business ne hanno centinaia", dice Tutorials Point. "Uno dei fattori più impegnativi è la gestione, la valutazione e la classificazione per priorità di queste anomalie. Il numero di anomalie si moltiplica con il passare del tempo e per gestirle efficacemente si utilizza un sistema di tracciamento delle anomalie che facilita il lavoro". 1


Come funziona il monitoraggio dei bug

Un bug del software si verifica quando un'applicazione o un programma non funziona esattamente come dovrebbe. La maggior parte degli errori consistono in imperfezioni o errori commessi da architetti, progettisti o sviluppatori del sistema. I team di test utilizzano il monitoraggio dei bug per controllare e segnalare gli errori che si verificano mentre un'applicazione viene sviluppata e testata.

"Uno dei componenti principali di un sistema di monitoraggio dei bug è un database in cui sono memorizzate delle informazioni sui bug conosciuti", dice Wikipedia. "Queste informazioni possono includere il momento in cui un bug è stato segnalato, la sua gravità, il comportamento errato del programma e dettagli su come riprodurre il bug, così come l'identità della persona che l'ha segnalato e di qualsiasi programmatore che potrebbe risolverlo. " 2

Durante la sua vita, un singolo difetto può attraversare diverse fasi o stati. Essi includono:

  • Attivo: l'indagine è ancora in corso
  • Test: corretto e pronto per il test
  • Verificato: testato nuovamente e verificato dal controllo di qualità (QA - quality assurance)
  • Chiuso: può essere chiuso dopo essere stato testato nuovamente dal QA oppure se non è considerato un'anomalia
  • Riaperto: non risolto e reso nuovamente attivo 3

I bug sono gestiti in base alla priorità e alla gravità. I livelli di gravità aiutano a identificare l'impatto di un problema relativamente al rilascio di un prodotto. Queste classificazioni possono variare in numero, ma generalmente includono alcune forme delle seguenti:

  • Catastrofico: causa il malfunzionamento totale del software o una perdita di dati irrecuperabile. Non esiste una soluzione temporanea e il prodotto non può essere rilasciato.
  • Funzionalità compromessa: esiste una soluzione temporanea, ma non è soddisfacente. Il software non può essere rilasciato.
  • Malfunzionamento di sistemi non critici: esiste una soluzione temporanea soddisfacente. Il prodotto può essere rilasciato se il bug è documentato.
  • Di scarsa importanza: esiste una soluzione temporanea o il problema può essere ignorato. Non ha impatto sul rilascio del prodotto.

Nella maggior parte dei casi, stati e livelli di gravità sono monitorati in un database di monitoraggio dei bug. Una buona piattaforma di monitoraggio si collega anche a sistemi di gestione e sviluppo del software più grandi per meglio valutare lo stato degli errori e il potenziale impatto sulla produzione generale e sulle scadenze.


Perché è importante il monitoraggio dei bug

Si stima che gli sviluppatori di software fanno dai 100 ai 150 errori per ogni mille righe di codice.4  Secondo un rapporto del CISQ (Consortium for IT Software Quality): "Anche se solo una piccola frazione, diciamo il 10%, di questi errori sono gravi, allora un'applicazione relativamente piccola di 20.000 linee di codice avrà circa 200 errori di codifica gravi." 5

Il test del software è essenziale per isolare e mitigare gli errori. Un buon processo di assicurazione di qualità può rilevare centinaia o anche migliaia di difetti, e i team di test devono gestirli tutti. L'integrazione del monitoraggio dei bug nel flusso di lavoro dei test migliora l'efficienza aiutando i tester a dare priorità, monitorare e documentare lo stato di ogni errore.

"Il monitoraggio delle anomalie aiuta a garantire che i bug trovati nel sistema vengano effettivamente risolti", dice il consulente agile Yvette Francino. "Gli strumenti di monitoraggio non solo forniscono un modo per assicurare il follow-through, ma forniscono anche delle metriche preziose. A seconda del tool utilizzato, il team può associare le anomalie alle modifiche del codice, ai test o ad altri dati che permetteranno la tracciabilità o l'analisi degli andamenti delle anomalie. Se un dato modulo presenta troppi difetti, potrebbe essere il momento di rivedere e riscrivere quel modulo." 6

Idealmente, i test dovrebbero essere fatti il prima possibile - quando i bug sono più facili e molto meno costosi da risolvere. Uno studio precedente di IBM ha constatato che correggere dei difetti trovati dopo la produzione o dopo il rilascio può costare 15 volte in più rispetto agli errori risolti nella fase iniziale dello sviluppo.

Molti team utilizzano oggi una metodologia noto come verifica continua. In questo caso, i test di qualità e il feedback sono svolti in tutte le fasi dello sviluppo, dalla progettazione e la codifica fino alla distribuzione. Anche tecnologie moderne quali l'intelligenza artificiale (IA) possono facilitare il processo di test rilevando e analizzando i bug all'inizio del ciclo di vita.


Qualità dell'applicazione e test

Scopri come distribuire sul mercato più rapidamente applicazioni sempre più complesse, con meno difetti e a costi più bassi.


Caratteristiche principali del monitoraggio dei bug

Il controllo della qualità è fondamentale per sviluppare applicazioni robuste. I test del software, la gestione dei cambiamenti e gli strumenti di monitoraggio dei bug permettono ai team di individuare le anomalie e misurarne la portata e l'impatto - e risolverli.

Nella Harvard Business Review, Nicholas Bowen delinea un processo per la gestione delle anomalie. Il primo passo è classificare e dare priorità: "Generalmente, i team daranno priorità a due tipi di bug: quelli che causano il crash di un sistema e quelli che sono meno gravi ma potrebbero essere pervasivi...Successivamente, decidi il tuo tempo di risposta per ogni livello di gravità. Se il sistema di gestione della qualità è nuovo, allora l'obiettivo iniziale dovrebbe essere quello di risolvere i bug più gravi in poche ore o giorni. Man mano che si usa il sistema, si possono raccogliere dati su due parametri fondamentali, i tassi di bug in ingresso e la produttività dei correttori di bug, e adeguare gli obiettivi in base alle proprie esigenze". Inoltre aggiunge che le organizzazioni devono creare un sistema in cui i difetti e il tempo necessario per risolverli possono essere valutati a tutti i livelli, dall'amministratore delegato in giù.7

Un buon sistema di monitoraggio dei bug può agevolare questo processo fornendo un unico flusso di lavoro per il monitoraggio dei difetti, la segnalazione e la tracciabilità del ciclo di vita. Dovrebbe inoltre collegarsi con altri sistemi di gestione per una visibilità condivisa e un feedback sia durante lo sviluppo del software che nell'organizzazione più grande. IBM Rational ClearQuest, ad esempio, fornisce una piattaforma centralizzata per il monitoraggio e la segnalazione degli errori. Si integra con altri sistemi di sviluppo e gestione dei cambiamenti di IBM e aiuta a migliorare la comunicazione e la collaborazione tra sviluppatori, operazioni e team più ampi.

Inoltre ricerca dei sistemi di test e tracciamento che usino l'intelligenza artificiale per rilevare gli errori all'inizio del processo di sviluppo. Può ottimizzare il numero e i tipi di test che i team eseguono, automatizzare il processo di collaudo e utilizzare l'IA per analizzare le anomalie passate e prevenirle in futuro.


Soluzioni correlate

IBM Rational ClearQuest

Un software di gestione dei cambiamenti che aiuta a migliorare la produttività degli sviluppatori pur rispettando le metodologie, i processi e gli strumenti che meglio si adattano al progetto e al team.


Test del software

Restituisci i risultati allo Sviluppo con maggior rapidità. Riduci i rischi e i costi correggendo gli errori in anticipo.


DevOps Insights

Ottieni approfondimenti completi dai popolari strumenti di integrazione e consegna continua per aumentare la velocità, la qualità e il controllo delle tue applicazioni.