Bug tracking system
# Bug tracking system

Un bug tracking system (BTS) è un applicativo software usato generalmente dai programmatori per tenere traccia delle segnalazioni di bug all'interno dei software, in modo che questi errori siano mantenuti sotto controllo, con una descrizione della riproducibilità e dei dettagli ad essi correlati, dunque più facilmente risolvibili.

Molti bug tracking system, come ad esempio quelli adottati da numerosi progetti open source, permettono agli utenti di riportare direttamente gli errori contribuendo di fatto al perfezionamento del prodotto in oggetto. Altri sistemi sono utilizzati internamente alle aziende che si occupano di sviluppo software. Spesso un sistema di questo genere è integrato con altre applicazioni destinate al project management.

## Componenti

Un bug tracking system è composto essenzialmente da un database in cui sono registrati elementi descrittivi di un bug. Essi possono essere la data in cui il bug stesso viene riportato, la sua gravità, il comportamento errato del programma che ne è afflitto, e l'identità sia di colui che avanza la segnalazione sia del programmatore che sta lavorando alla sua risoluzione.

Solitamente un bug tracking system è strutturato per rappresentare lo stato del bug, quale ad esempio "nuovo" se nessuno ne ha ancora preso in carico la verifica o "risolto" se al contrario è stato rimosso e se ne vuole comunque tenere traccia per consultazioni future qualora l'imperfezione dovesse ripresentarsi, e supporta una gerarchia di utenza per cui solo un amministratore della piattaforma può variare lo stato di ogni elemento ed operare particolari azioni.

## Utilizzo

In molte condizioni un bug tracking system è usato non solo per mantenere le informazioni relative ai bug, ma anche su possibili miglioramenti e funzionalità da aggiungere ad un programma e i diversi elementi ivi elencati possono fungere da riferimento per la stesura di una roadmap o per gli obiettivi da raggiungere per il rilascio di una release successiva.

Local bug tracker (LBT) è un termine usato per identificare l'utilizzo di un bug tracking system da parte degli addetti al supporto tecnico di una azienda, come per esempio un help desk, che in questo modo agiscono da intermediari tra gli utilizzatori finali del software ed i programmatori.

## Bug tracking distribuito

Esistono bug tracking system studiati per operare parallelamente alle piattaforme di controllo versione distribuito, quali git: secondo lo stesso schema funzionale, questi strumenti permettono di leggere e scrivere report anche quando non si è direttamente connessi al database centrale per poi sincronizzarsi quando possibile.

