Passa ai contenuti principali

Statistiche per Mantis bug tracker

Di recente ho pubblicato in Google code un progetto che ha lo scopo di elaborare delle statistiche riguardanti i bug inseriti nell'istanza del bug tracker Mantis che usiamo in ufficio.

Il progetto si trova qui:

https://code.google.com/p/mantis-statistics

E' composto da due parti:

  1. l'applicazione principale scritta in Python;
  2. una form PHP che può essere integrata nella GUI di Mantis.
L'applicazione utilizza la tabella contenente la history dei bug per controllare quali bug non sono stati risolti da un utente nei tempi prefissati. Per "tempi prefissati" intendo una durata in giorni che può essere impostata nell'applicazione utilizzando i parametri da riga di comando. Possono esserci tre diverse durate associate a tre diversi gradi di priorità di un bug: normale, alta e urgente. Utilizzo il termine "scaduto" per indicare un bug che non sia stato elaborato nei tempi previsti in funzione della sua priorità.

C'è anche un altro concetto che deve essere spiegato per capire il funzionamento dell'applicazione, ed è quello di "transizione". Una transizione è quando un bug passa da uno stato iniziale a uno stato finale; per esempio una transizione è quando un bug da "assegnato" diventa "risolto". Si può dire all'applicazione quale transizione controllare. Per esempio si possono controllare i bug che non sono passati da assegnato a risolto nei tempi concordati, o da risolto a chiuso, o si può controllare una transizione tra due stati personalizzati che avete definito in Mantis.

Per impostare i tempi, la transizione, l'utente da controllare, ecc. si utilizzano dei parametri da riga di comando. Trovate il dettaglio qui:


Una volta stabilito l'utente, i tempi e la transizione i possibili output sono:
  1. una lista dei bug scaduti raggruppati per progetto;
  2. le statistiche sul numero di bug scaduti raggruppati per progetto, anno e mese.
La lista dei bug scaduti mostra per ciascun bug l'id, l'oggetto, la priorità e i giorni trascorsi da quando è stato impostato lo stato iniziale della transizione da controllare.


La pagina delle statistiche contiene delle tabelle con una cella per ogni progetto, anno e mese; ogni cella contiene due numeri: il numero dei bug scaduti e il totale dei bug in quel periodo.


Entrambi i report possono essere prodotti in vari formati:

  1. ascii: adatto per un output su terminale;
  2. html: questo formato è utilizzato per visualizzare l'output integrato nella GUI di Mantis;
  3. html standalone: è simile al precedente, ma contiene anche i CSS, e i link verso la pagina di dettaglio dei bug in Mantis sono assoluti. Questo formato è stato pensato per essere allegato alle mail come report;
  4. csv: è un formato CSV adatto a essere importato negli spreadsheet.
Nel progetto fornisco anche una form in PHP fatta per essere integrata nella GUI di Mantis e collegata a un menù custom da aggiungere nella toolbar superiore. La form utilizza l'applicazione Python mediante gli stessi parametri da riga di comando che si usano in un terminale. Ovviamente la form può essere personalizzata come si vuole.

Commenti

Post popolari in questo blog

Nuovo sito "Creare programmando" con una sezione per la didattica

Ho organizzato i miei tutorial, fatti con Scratch o altri linguaggi, in un nuovo sito che si chiama "Creare programmando" e che dovrebbe rendere più agevole lo scarico degli stessi. Questo sito contiene anche una sezione dedicata alla didattica tramite il computer in cui voglio raccogliere idee e tutorial che possono trovare applicazione nelle scuole oltre che nei CoderDojo, magari semplicemente perché forniscono degli spunti agli insegnanti sugli argomenti che si possono sviluppare (nel vero senso della parola) tramite il computer. Ho inaugurato la sezione didattica con un nuovo tutorial in Scratch dedicato alle regioni italiane. Cliccate qui per andarlo a vedere.

Un tutorial software per allenarsi all'uso dei sensori hardware

Durante l'ultima sessione di CoderDojo MXP abbiamo proposto ai ragazzi un tutorial che ha lo scopo di impratichirli nei ragionamenti che si rendono necessari quanto ci si trova a dover impostare la traiettoria di una macchinina utilizzando solo un sensore in grado di rilevare il colore della traccia visibile sul pavimento (in scala di grigi). Non avendo (ancora) a disposizione macchinine e sensori "reali" abbiamo iniziato a simulare la situazione disegnando una pista con Scratch utilizzando quattro diversi colori. Il compito dei ragazzi era di riuscire a fare in modo che lo sprite dell'automobilina seguisse la pista senza uscire di strada: le correzioni alla traiettoria avvenivano utilizzando il blocco "sta toccando il colore..." come se ci fosse un sensore in grado di vedere il colore della traccia sotto all'automobile. E se ne sono viste di tutti i colori perché il compito non era facile. Alla fine, per stimolare un po' di competizione tr

Sed: caratteri speciali che si possono usare nel lato destro delle sostituzioni

Il titolo è lungo, ma serve semplicemente per dire che nelle sostituzioni tramite la sed , ovvero quelle realizzate con il comando s/// , è possibile utilizzare alcune sequenze di escape oltre ai soliti backreference dei gruppi "catturati" con le parentesi nell'espressione regolare di sinistra. Nella parte destra dell'espressione (cioè quella dopo la seconda barra /) si possono usare: - \L per trasformare in minuscolo tutto  quello che segue (la L sta per "lowercase"); - \l (è una elle minuscola) per trasformare in minuscolo solo il carattere seguente; - \U per trasformare in maiuscolo tutto  quello che segue (la U sta per "uppercase"); - \u per traformare in maiuscolo solo il carattere seguente; - \E per marcare la fine della trasformazione dei caratteri. Gli "operatori" \L e \U agiscono fino alla fine dell'espressione (delimitata dalla barra / finale) oppure fino alla \E successiva. Quindi, per esempio, per trasformare sol