Tracciamento bug: Che cos’è, caratteristiche e tool di Defect management

Tracciamento bug: Che cos’è, caratteristiche e tool di Defect management

Bug software e Defect management

Un tool di Defect management o Bug tracking system (in italiano strumento per la gestione e analisi dei bug o sistema di tracciamento dei bug) è un strumento software che lavorando congiuntamente a quanto previsto nel processo di defect management, permette di gestire i difetti o bug rilevati nel software, stabilirne il ciclo di vita e definire il workflow per scandirne le varie fasi dalla rilevazione fino al fixing del difetto.

Le caratteristiche generali che questi strumenti devono presentare sono:

  • Fornire un repository centralizzato in cui tenere traccia dei bug riscontrati nei vari progetti
  • Fornire automaticamente delle notifiche inseguito all’assegnazione di risorse
  • Possibilità di fornire lo stato di risoluzione del difetto al fine di utilizzarlo come feedback per il processo di Management Reporting.
  • Possibilità di raggruppare i bug per vari criteri, severità e priorità.

Altre caratteristiche che possiamo considerare opzionali, ma che comunque incidono sulla scelta dello strumento sono:

  • capacità del tool di riuscire a ricevere suggerimenti dai clienti sui questioni relative ai progetti.
  • capacità di supportare team interni e esterni all’organizzazione
  • apertura e interoperabilità
  • facilità d’uso
  • costo licenze, lingua in cui è disponibile

Viene ora proposta un confronto di alcuni dei principali tool di defect management presenti sul mercato. Verranno dunque presentati sia tool open source e tool proprietari.

Tracciamento bug: Che cos'è, caratteristiche e tool di Defect management

Atalassian JIRA

Atalassian JIRA è un sistema di issue tracker proprietario di Atlassian che nasce nel 2003. Implementato in java, supporta diversi DBMS come MySQL, PostgreSQL, Oracle, SQL Server. Questo software è semplice da installare ed essendo l’amministrazione web based, evita la necessità di modificare innumerevoli file di configurazione o di apportare modifiche al codice sorgente.

Questo dispone di interfacce chiare e user-friendly che permettono una rapida consultazione e consentono di lavorare in maniera rapida ed intuitiva. Jira prevede dashboard completi con supporto alla segnalazione tramite widget e tramite word, excel e grafici personalizzabili, permettendo l’integrazione dei piani di test. E’ prevista, inoltre, la personalizzazione dei campi e del workflow e il supporto alla codifica UNICODE. Il prodotto rispetta i requisiti di SLA, è possibile estenderlo tramite plug-in e dispone di una serie di API messe a disposizioni di utenti utilizzatori/amministratori appunto per poter apportare delle personalizzazioni. Jira consente la gestione multi-progetto e offre la possibilità di effettuare ricerche completamente testuali o indicizzate nei vari progetti/file. Svariate sono le interfacce previste per l’input: Web, E-mail, CLI, GUI, REST, SOAP, Visual Studio, Eclipse. I meccanismi di notifica previsti sono: e-mail, RSS (Rich Site Summary) o XMPP. Per quanto riguarda l’autenticazione è previsto un meccanismo form-based basato su OpenId o su Oauth (complementare a openId).

Infine per quanto riguarda l’aspetto relativo al controllo di revisione distribuito, vengono adottati i software GIT (è un software di controllo di revisione distribuita del sistema di gestione del codice sorgente) e Mercurial (strumento di controllo cross-platform per il controllo di revisione distribuita). Jira viene utilizzato da team di sviluppo e sistemi di help-desk. La sua applicazione dai team di sviluppo per finalità di QA è ampiamente motivata dal fatto che ha ottime potenzialità in termini di bug tracking e offre un completo monitoraggio in termini di documentazione in termini di progetto. Jira si basa su tre elementi fondamentali: Issue, Project (component e version), Workflow.

Mantis Bug Tracker

Mantis Bug Tracker è un sistema di bug tracking free, web-based di tipo client-server che ha iniziato a diffondersi nell’anno 2000. Nel corso degli anni ha maturato e guadagnato grande consenso, divenendo così uno dei tool più popolari per la gestione dei difetti. E’ un sistema rilasciato sotto i termini della GNU General Public Licence e può essere modificato e ridistribuito a patto che si rispettino i termini della GPL.

Il concetto fondamentale in Mantis è la Issue, un ticket che permette di monitorare e tracciare il ciclo di vita di un bug segnalato. Al momento della creazione di un ticket un reporter compila in una pagina appositamente predisposta i seguenti campi:

  • Categoria. Informazione personalizzata da progetto a progetto che può
    indicare un modulo in cui un reporter ritiene sia localizzato il bug. Questo campo potrebbe anche fornire un’indicazione circa la fase del processo in cui è stato riportato il bug, ad esempio in fase di Integration Testing.
  • Riproducibilità. Fornisce un’indicazione sulla complessità di attivazione di un bug che prima poi scatena un fallimento.
  • Severità. Rappresenta una scala di valori che indica il tipo di impatto che l’anomalia avrebbe sul sistema.
  • Priorità. Scala di valori assegnati da un reporter in base alle scadenze fissate o a eventuali rallentamenti sul testing che l’anomalia comporterebbe nel caso non venisse risolta.
  • Riassunto. Una breve stringa che identifica il problema.
  • Descrizione. Una spiegazione dettagliata del bug sollevato.
  • Passi per la riproduzione dell’anomalia. Indica l’elenco di azioni compiute dal reporter che hanno messo in luce il bug.
  • Versione. Indica la release del software in cui è stato rilevato il bug.

All’atto della creazione, il sistema associa ad una nuova issue un ID univoco e una data (il tempo del server). Una funzionalità che non è stata ancora implementata in Mantis è l’inserimento manuale della data di detection da parte del reporter. Questo permetterebbe di inserire guasti rilevati e non inseriti nel sistema a causa di una momentanea indisponibilità del server. A causa di questo problema, i tempi di apertura dei ticket sono da considerarsi approssimazioni dei tempi veri e propri di detection. Ogni difetto possiede due variabili di stato, Status e Resolution che permettono di tenere traccia del suo ciclo di vita. Status permette di monitorare l’effettivo stato in cui la issue si trova (new, assigned, feedback, acknowledged, confirmed, resolved, closed) e Resolution indica il punto in cui si trova il processo di Fixing (può assumere i valori open, closed, reopened, unable to reproduce, not fixable, duplicate, no change required, won’t fix). Mantis Bug Tracker è sviluppato in PHP, con il supporto a molteplici database tra cui MySQL, MS SQL, PostgreSQL e DB2.

Bugzilla

Bugzilla è un “Defect Tracking System” o anche “Bug-Tracking System” web-based client-server sviluppato dalla Bugzilla.org ovvero gli stessi sviluppatori di Mozilla lanciato nel 1998. Il tool è stato sviluppato inizialmente in TLC successivamente si è fatto un porting in Perl in quanto essendo più popolare avrebbe permesso a più sviluppatori di avvicinarsi ad esso e a fornire il loro contributo. Offre il supporto a diversi back-end di database come MySQL, Oracle, PostgreSQL, SQLite. La rapida diffusione di Bugzilla ha richiesto una maggiore semplicità in termini di installazione e interoperabilità con diverse piattaforme e database in modo tale da riuscire ad abilitare e disabilitare funzionalità al momento opportuno e quindi renderlo personalizzabile. L’idea di base su cui è stato concepito lo sviluppo di Bugzilla è quella di realizzare un sistema di bug tracking anche se vi è un trend che cerca di trasformare Bugzilla in un sistema di ticket di supporto tecnico, strumento di gestione delle attività del progetto quindi un vero e proprio sistema di project management. Per quanto riguarda gli utenti che vogliono cercare di estenderne le funzionalità, si dovrebbero seguire in fase di sviluppo alcuni principi di progettazione.

Ad esempio Bugzilla deve essere eseguito facilmente su strumenti open source. Il supporto alla integrazione di Bugzilla dovrebbe essere ampliato per supportare i database commerciali, strumenti e sistemi operativi ma non a scapito di quelli open source. Uno dei principali motivi di attrazione verso Bugzilla è la sua attenzione alla leggerezza e velocità. Ridurre al minimo le chiamate al database quando possibile, non prendere più dati del necessario ecc. rendono il prodotto molto snello e particolarmente efficiente.

Buzgero

Bugzero è un’applicazione software di bug tracking web-based client-server, proprietario di websina la cui prima versione è stata rilasciata nel 2001. E’ un sistema facile, intuitivo la cui semplicità ne ha permesso l’adozione anche in ambienti professionali. Questo prodotto può essere utilizzato dagli sviluppatori software e tester per il bug tracking ma anche come strumento di monitoraggio delle vendite e come sistema di help-desk. Si può dire che esso rappresenta più di un semplice bug-tracker in quanto consente la gestione dei requisiti, dei casi d’uso e dei casi di test. La sua realizzazione è basata su tecnologie standard, web-based, robuste, leggere e scalabili. E’ scritto interamente in Java e questo gli conferisce la caratteristica di essere cross-platform. Supporta SQL standard. Non soffre di problematiche di accessibilità legate a firewall e infatti esso può essere fruibile da qualsiasi parte attraverso HTTP, HTTPs o SMTP. La configurazione di Bugzero non richiede particolari skills di programmazione così come anche i meccanismi di aggiunta di dati, infatti è previsto il supporto a circa 100 tipi differenti di dati inclusi: data time, URL, cross-project link ecc. Permette come altri bug-tracker la possibilità di definire regole di accesso e controllo di permessi e un flusso di lavoro flessibile in maniera tale da poter essere adattato con semplicità al proprio progetto. Supporta relazioni bidirezionali tra i progetti, per esempio è possibile collegare un bug report ad un test case e offre meccanismi di notifica basati su e-mail e su interfaccia web. Bugzero é stato oggetto di revisioni di sicurezza effettuate da varie aziende, alle quali ha risposto egregiamente e ciò ha permesso di etichettarlo come un prodotto sicuro. E’ conforme alle norme ISO/IEC 2000 standard per la gestione dei servizi IT.

Dopo questa descrizione possiamo elencare altre caratteristiche di questo prodotto:

  • Layout di pagina personalizzabile.
  • Supporto multilingue. In particolare sono supportate tutte le lingue che usano UTF -8, tra cui cinese, giapponese e coreano.
  • Supporto multi-progetto, controllo di accesso configurabili e auto-registrazione.
  • Configurazione bug-assegnazione automatica e manuale.
  • Allegati (può allegare più file e qualsiasi tipo di file alla volta).
  • Assegnamento del bug a gruppi di utenti.
  • Supporto cattura dello schermo.
  • E-mail di notifica, conferma e posta cc.
  • Trigger configurabili. Mail di notifica (per progetto, per utente).
  • L’integrazione del controllo di versione sorgente CVS, Subversion e Perforce tramite e-mail.
  • Rapporti e Metriche. Ricerca avanzata e le query memorizzate sono riutilizzabili.
  • Calendario per la selezione della data. File di esportazione CSV e supporto lingue asiatiche in Unicode.
  • Supporto LDAP / autenticazione dell’utente Active Directory (disponibile come add–on).
  • E-mail promemoria personalizzati, escalation e possibilità di attivare azioni (disponibile come add-on).
  • Facilità di backup e ripristino in caso di crash hardware o software

Redmine

Redmine è un software di project management e bug tracking open-source e web based. La sua prima versione è stata rilasciata nel 2006 , implementato utilizzando il framework Ruby on Rails offre, dunque, la possibilità di essere cross-platform e cross-browser. E’ disponibile in trentaquattro lingue e può supportare DBMS come MySQL, PostgreSQL e Sqlite. Essendo un software di project-management offre la possibilità di gestire progetti in relazione ai permessi concessi ai vari utenti e vari meccanismi relativi all’archiviazione, copia e cancellazione. In questo modo ogni utente avrà accesso a determinati progetti in cui rivestirà un determinato ruolo. Ogni progetto può essere dichiarato pubblico o privato a seconda della visibilità che si intende conferire. Per quanto riguarda la gestione utenti è prevista la presenza di una user-list che permette di visualizzare tutte le informazioni (Login, First name, Last name, Administrator, Created, Last Connection) relative agli utenti e il loro stato (active, locked e registred). Ogni progetto è organizzato in moduli (ad esempio: wiki, repository, issues tracking) che possono essere abilitati o disabilitati. Focalizziamo ora l’attenzione sull’oggetto di nostro interesse, ovvero il sistema di issue tracking. Può essere definito tracker in questo sistema una qualsiasi issue o bug che sarà oggetto di analisi. Per ogni tracker si dovrà definire il nome e specificare se i problemi legati al quel bug dovranno essere mostrati durante l’analisi o se devono essere “merged” qualora appartengano a differenti workflows.

Trackstudio

Trackstudio è un sistema di issue-tracking, proprietario e web-based. Supporta un workflow engine e un sistema di gestione dei documenti che può essere utilizzato per tenere traccia dei bug rilevati e della loro gestione, dei requisiti raccolti, della gestione ed organizzazione di progetti. Implementato in java è un issue tracking generico il quale è stato progettato per la gestione di un elevato numero di tasks, difetti e cambiamenti di requisiti.

Il suo servizio si basa su cinque aspetti fondamentali:

  1. Possibilità di gestire e/o organizzare gerarchicamente un grande numero di attività. Questo permette di organizzare in maniera più efficiente la complessità crescente dei tasks dividendoli in sottotask così da permetterne un’analisi semplice e al tempo stesso più accurata. Questa caratteristica non viene offerta da tutti i sistemi perchè comporta dei meccanismi di gestione piuttosto onerosi.
  2. Possibilità di gestire in maniera gerarchica grandi gruppi di utenti, compreso staff e client.
  3. Permette di mantenere gli standard di project management unificati pur tenendo conto delle peculiarità dei singoli progetti. Consente ereditarietà di strutture di progetto e offre la possibilità di personalizzarle per soddisfare le esigenze particolari dei singoli gruppi e dipartimenti.
  4. Consente di ridurre i costi di manutenzione e di ridurre al minimo i rischi per la sicurezza.
  5. Interoperabilità e possibilità di lavorare con diverse piattaforme hardware.

Polarion

Polarion rappresenta una piattaforma collaborativa web based in grado di rispondere alle diverse esigenze di gestione applicativa . La sua offerta si differenzia in tre prodotti: Polarion Requirement, Polarion QA, Polarion ALM. Adotta un sistema nativo basato su clustering utilizzando server multipli (fisici e virtuali) per garantire load balancing e implementare strategie di fail-over.

Polarion Requirement

Polarion Requirement è una soluzione browser-web progettata al fine di supportare in maniera altamente efficiente la collaborazione tra contesti differenti (interni ed esterni) tra team diversi team di sviluppo. Le caratteristiche più importanti di questa soluzione sono:

  1. Completa possibilità di personalizzazione del workflow in modo da poterlo adattare a processi esistenti (supporta metodologie agile, Waterfall, Regulatory e Hybrid) e ambienti personalizzati come ad esempio RUP, Scrum, FDD, Kanban ecc. Dispone di project-templates pre-configurati e comunque personalizzabili in modo da poter rispettare a pieno di tutti i componenti del progetto. Infine automatizza il workflow in modo tale da ridurre gli errori.
  2. Permette l’import di file word, excel, pdf che contengono casi di test, difetti ecc. disponendo della possibilità di visualizzare un’anteprima per essere certi del file che si vuole importare e se confermato importare il documento in modo esattamente corrispondente al documento originale. Polarion permette anche l’operazione inversa, ossia modifiche apportate all’esterno di Polarion possono essere importate mantenendo la formattazione originale.
  3. Diversi formati per esprimere i requisiti e possibilità di creare ogni genere di diagramma.
  4. Supporto di UML-Flow-charting e BPMN (Business Processing Modeling e Notation) e possibilità di esportare i diagrammi grazie a LiveDocs in Word e Documenti PDF.
  5. Collaborazione real-time tra tool e team grazie alla possibilità di un servizio di sincronizzazione delle informazioni scambiate tra i vari team; questo viene reso possibile grazie al fatto che Polarion è una soluzione 100% web based.
    In modo automatico viene costruita una history di come sono state prese le decisioni. E’ prevista elettronic sign-off, dove le firme elettroniche sono conformi a CFR 21 Part 11.
  6. Supporto Nativo alla ReqIf (Requirements Interchange Format) e garantita Tracciabilità tra molti tools e documenti.
  7. Test Management centralizzato possibilità di gestire diversi casi di test su di un unica piattaforma. Si possono importare casi di test da diversi Third-party, gestirli con qualsiasi tipo di browser. Vengono creati automaticamente report su bug e task per agli sviluppatori basati sui fallimenti.

Polarion QA

Polarion QA rappresenta una soluzione nata per gestire il rispetto delle norme vigenti sulla Quality Assurance e fornire supporto all’attività di testing. Condivide gran parte degli aspetti di Polarion Requirement introducendo piccole differenze per quanto riguarda il reporting che in questo caso prevede la possibilità di controllare lo stato attuale del progetto anche con dispositivi mobili. Infine molto importante è possibilità di integrare Polarion con differenti soluzioni third-party proposte per la QA e altro come per esempio: HP Quality Center (software testing and test management), Atlassian JIRA (defect tracking and Agile project management), MATLAB Simulink (hardware design and modeling), Sparx Enterprise Architect (UML modeling, model-driven design) Etc. Si possono creare le proprie estensioni utilizzando java e Web Service APIs oppure rivolgersi a Polarion per poter creare, su richiesta un “connettore” a qualsiasi tipo di servizio esterno.

Serena – Issue and Defect Management

Serena “Issue and defect Management” è una piattaforma che nasce al fine di fornire un servizio automatizzato a supporto dei team di sviluppo IT per quanto riguarda la cattura, il routing, la collaborazione e la risoluzione nella gestione dei difetti. Questa piattaforma, ampiamente diffusa, si prefigge di gestire le issues in maniera rapida ed efficiente così da contenere costi e tempi, supportare le attività di sviluppo tra i vari team in maniera automatica e sicura ed assicurare che tutti gli attori coinvolti nel processo di sviluppo abbiamo le informazioni di cui necessitano al tempo giusto. Serena è altamente configurabile, cosa che permette di adattare la piattaforma alle nostre esigenze di progetto. Offre un interfaccia utente web-based, user-friendly che permette di gestire e monitorare il processo di sviluppo sia con team interni all’organizzazione e sia con team dislocati in altri luoghi. Dispone di servizi di reporting, notifica, supporti grafici e gode di ottima interoperabilità con altri sistemi.

IBM Rational Quality Manager

IBM Rational Quality Manager è un tool che appartiene alla categoria di soluzioni ALM (Application lifecycle management) la quale permette di gestire il flusso di utenti, processi, informazioni in un ciclo iterativo di attività di rilascio del software offrendo le basi per un miglioramento in termini di scalabilità, reporting, automazione e collaborazione tra i team. L’offerta ALM di IBM è molto ampia, infatti sono previste soluzioni che forniscono supporto per: Architettura e Progettazione, Gestione dei Requisiti, Gestione dell’erogazione e dei requisiti del portfolio, Gestione dei test e della qualità, Software change & Configuration Management, Sviluppo Applicativo, Sviluppo e Implementazione. Le soluzioni Rational di IBM permettono la riduzione dei costi e dei rischi che caratterizzano il processo di sviluppo del software, grazie alla possibilità di unificare l’infrastruttura con un’unica piattaforma Jazz, aperta, aggiornabile ed integrabile con l’intero ciclo di vita di fornitura del software offrendo la possibilità agli stakeholder di poter beneficiare di trasparenza e collaborazione in tempo reale.

I vantaggi offerti da questo tipo di soluzioni sono di seguito elencati:

  1. Rispondere alle esigenze specifiche dei domini dei professionisti competenti, consentendo un flusso di idee e informazioni in tempo reale all’interno del team.
  2. Migliorare la collaborazione tra i team, geograficamente distribuiti, sistemi, discipline e organizzazioni.
  3. Ridurre il TCO attraverso gestione, sicurezza e implementazione semplificate e pronte per le aziende.
  4. Ridurre i costi globali, unificando l’infrastruttura in un’unica piattaforma.
  5. Rispettare i requisiti di conformità tramite workflow approvati e tracciabilità degli asset.
  6. Fornire un’infrastruttura per un miglioramento continuo delle funzionalità tramite l’applicazione di processi flessibili, basati sulle regole, reporting in tempo reale e best practice integrate.
  7. Ottenere “l’agility at scale”, scalando le procedure consolidate ai team di qualsiasi dimensione o configurazione

RQM è uno strumento collaborativo, web-based che offre la possibilità di pianificazione, creazione di test e gestione di asset di test durante l’intero ciclo di sviluppo software. Questa soluzione, sostituisce IBM Rational Manual Tester, IBM Rational ClearQuest Test Manager e Rational Test Manager. Rational Quality Manager si basa sulla piattaforma Jazz, da cui ne eredita molte caratteristiche. E’ stato progettato per poter essere utilizzato da team di test di diverse dimensioni ed offre la possibilità di diversi ruoli utente (amministratore di repository e server, amministratore progetto, test manager, architetto di test, test leader, tester e test lab manager) con il supporto altresì di ruoli esterni all’organizzazione.

Tabelle comparative dei Bug tracking system

Vengono di seguito riportate tre tabella comparative dei tools analizzati, che riportano in sintesi le caratteristiche dei vari tools, permettendone di evidenziarne le differenze. Quasi tutti i tools presentati, eccetto qualcuno, presentano le stesse caratteristiche in termini di personalizzazione e gestione delle attività (divisibile in progetti, sotto-progetti, permessi e gruppi). Tra questi quelli che sono stati provati sono: Mantis, Jira, Bugzilla, ReadMine e RQM che risultano essere molto user-friendly ed offrono un alto grado di customizzazione. Questo fa si che si hanno delle differenze proprio per quanto riguarda gli aspetti cardini della gestione delle issue come ad esempio wokflow, ciclo di vita prodotto/progetto e comprensione da parte degli utenti.

Ad esempio Bugzilla presenta delle restrizioni per quanto riguarda la possibilità di personalizzare il workflow e non offre tutte le funzionalità di cui dispongono gli altri tre che sono stati provati (in termini di gestione di progetti, sotto-progetti e utenti). Presenta per altro, problemi per quanto riguarda l’integrazione con altri sistemi e componenti cosa che ne penalizza un pò l’adozione in ambiti industriali. Naturalmente prodotti come Jira, Polarion, Serena, TrackStudio rappresentano soluzione altamente efficienti e personalizzabili che offrono un supporto completo in termini di project management ma sono a pagamento. Per quanto riguarda le soluzioni open-source un buon compromesso è offerto da Mantis e da Redmine.

Confronto strumenti per la gestione e analisi dei bug - tabella 1
Confronto strumenti per la gestione e analisi dei bug – tabella 1
Confronto strumenti per la gestione e analisi dei bug - tabella 2
Confronto strumenti per la gestione e analisi dei bug – tabella 2

Confronto strumenti per la gestione e analisi dei bug - tabella 3
Confronto strumenti per la gestione e analisi dei bug – tabella 3

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *