Thomas Kramer

IT-COW | Juli 2010

Beschäftigung mit Bugzilla

By Administrator at Juli 30, 2010 17:07
Filed Under: Administration, Anleitungen, Linux

Mittlerweile habe ich mich einige Zeit mit dem Fehlerverwaltungssystem Bugzilla beschäftigt. Einen direkten privaten Einsatzzweck dafür habe ich eigentlich nicht, aber ich war der Meinung ein Programmierer sollte sich mit seinem Handwerkszeug auskennen, und dazu gehört auch ein Fehlerverwaltungs- als auch ein Quellcodeverwaltungssystem.

 

Rational ClearQuest & ClearCase kenne ich, aber für kleinere Teams macht diese Werkzeuge eigentlich keinen Sinn, weil sie zu aufwendig zu administrieren sind. Bugzilla scheint sich dagegen immer mehr zu verbreiten, wie auch Subversion als Komplement.

 

Die Geschichte von Bugzilla kann natürlich bei Wikipedia nachgelesen werden - gemäß der Seite kann als grundlegendes RDBMS zwischen MySQL, PostgreSQL und Oracle gewählt werden. Da MySQL bereits am längsten unterstützt wird habe ich mich dafür entschieden, auch wenn PostgreSQL für eGroupWare bereits auf diesem Rechner installiert ist.

 

Installation & Konfiguration

 

Daher habe ich zuerst diese Befehle ausgeführt, um MySQL nachzuinstallieren:

 

apt-get install mysql-common

apt-get install mysql-server

 

Danach wurde dann die Installation von Bugzilla durchgeführt:

 

apt-get install bugzilla3

 

Alternativ kann aber auch eine VM mit vorinstalliertem Bugzilla heruntergeladen werden: Link.

 

Die danach installierte Version von Bugzilla war 3.2.0.1-1, der Befehl ruft auch direkt einen Konfigurationsdialog auf. Bugzilla erstellt im Laufe der Konfiguration einen virtuellen Host für Apache im Verzeichnis /etc/apache2/conf.d/, die URL für den Aufruf des Webinterfaces von Bugzilla lautet anschließend  

 

http://$IP-Adresse$/cgi-bin/bugzilla3/.

 

Mit der eMail-Adresse, die bei der Installation angegeben wurde, kann sich anschließend als Administrator eingeloggt werden - eMail-Adressen stellen in Bugzilla demnach die Benutzer-IDs dar. Anschließend sollten die grundlegenden Einstellungen vorgenommen werden, dazu gehören die folgenden Einstellungen:

 

  • maintainer (Person, die für die Installation verantwortlich ist)
  • urlbase (URL-Adresse der Bugzilla-Installation)
  • requierelogin (anonymer Zugriff ist per default aktiviert)
  • createemailregexp (standardmäßig kann sich jeder selbst ein Benutzerkonto anlegen)
  • mail_delivery_method (Methode für den eMail-Versand)

 

Solange der Parameter urlbase nicht eingestellt wurde, wird weiterhin die Erinnerungs-Seite für die grundlegenden Einstellungen vorgeblendet.

 

Etwas seltsam ist das dieser Parameter nicht standardmäßig vorgegeben wird, wird doch schließlich während der Konfiguration auch automatisch ein virtueller Host für Apache eingerichtet - und irgendeinen Wert anzugeben reicht nicht, da dann die Namensauflösung über den Webbrowser (ohne händische DNS|Apache-Anpassung) nicht funktionieren würde - zumindest würden dann die in eMails verschickten Links nicht mehr ausführbar sein. Jedenfalls gibt man dafür einfach die erwähnte http-Adresse ein.

 

Über Systemparameter/E-Mail wird die Konfiguration des verwendeten SMTP-Servers vorgenommen, damit Bugzilla eMails verschicken kann. Ich musste nur die Parameter mail_delivery_method (SMTP für Postfix), mailfrom (Absender-Adresse) und smtpserver (localhost) einstellen, weil ich bereits einen lokalen Postfix-Server auf dem System installiert habe. Wenn es Probleme beim eMail-Versand gibt wird übrigens kein Fehler in der Weboberfläche angezeigt, sondern dann muss das Log-File von Postfix durchsucht werden, welches in /var/log/mail.log liegt.

 

Als weitere grundlegende Konfigurationselemente sehe ich das Produkt, die enthaltenen Komponenten, die Versionsnummern und die Ziel-Meilensteine an, die ebenfalls direkt in Bugzilla angelegt werden sollten. Für weitergehendes Customizing kann man benutzerdefinierte Eingabefelder (sogenannte Zusatzfelder) definieren, sowie die Auswahl-Werte (Feldwerte) für Felder erweitern - bei Priorität fehlte mir bspw. das altbekannte "Showstopper".

 

Anschließend sollten natürlich die Gruppen und Benutzer angelegt bzw. gepflegt werden. LDAP-Integration ist mit Bugzilla auch möglich, aber die Zusammenarbeit mit meinem OpenLDAP habe ich noch nicht getestet.

 

Die Datenbank kann mit der Systemzustandsüberprüfung auf referenzielle Integrität, also verwaiste Datensätze, überprüft werden. Menüpunkte für das Zurücksetzen der Datenbank oder das Einrichten eines Backups habe ich nicht gefunden, das muss wahrscheinlich über das Terminal bzw. Cronjobs geregelt werden.

 

Benutzung

 

Jeder Benutzer sieht auf der Startseite zunächst die grundlegenden Aktions-Möglichkeiten. Sehr schön ist das auf der Hauptseite auch ein Schnellsuch-Plugin für Firefox | Internet Explorer heruntergeladen und installiert werden kann, dieses fügt einen weiteren Eintrag für das Suchen-Feld oben rechts in Firefox hinzu.

 

Generell ist die Webseite sehr übersichtlich und klar strukturiert; etwas irritierend fand ich zunächst nur das auf der Startseite nicht direkt durch die gesamte Liste geblättert werden kann - ein Eingabe-Feld mit Finden-Button ist natürlich schon oben eingeblendet, für den Fall das ein bestimmter Eintrag gesucht wird.

 

Ergänzung 03.08.2010: die üblichen Wildcards * und ? scheinen im Finden-Feld nicht zu funktionieren. Bei der erweiterten Suche habe ich gesehen das Bugzilla reguläre Ausdrücke unterstützt, im Internet gibt es auch eine Datenbank für häufig benutzte reguläre Ausdrücke: Link.

 

Standardmäßig gibt es unten eine vordefinierte Suche namens Meine Bugs (sobald man sich eingeloggt hat), aber diese listet eben nicht alle sondern nur die dem eingeloggten Benutzer zugeordneten Einträge auf. Über einen kleinen (einmaligen) Umweg lässt sich aber auch eine Auflistung aller Einträge erreichen, dazu klickt man auf das Suche-Item (oben links), wechselt auf den Karteireiter Fortgeschrittene Suche und führt die Suche aus und speichert diese benutzerdefinierte Suche unter einem Namen ab.

 

Alle benutzerdefinierten Suchen inklusive "Meine Bugs" werden im Webbrowser unten nebeneinander aufgelistet, man muss also danach nur noch auf den eben vergebenen Namen klicken, um direkt alle Einträge aufgelistet zu bekommen.

 

Bei der Neuanlage von Bugs (dafür gibt es das Neu-Item oben links) werden customizbare Felder blau hervorgehoben, durch einen Klick darauf gelangt man in die Konfigurationseinstellungen dieses Elements. Seltsam, das Schlüsselwörter in ein Freitextfeld eingegeben werden müssen, können doch nur die vorgegebenen Werte angenommen werden (gibt ja programmiertechnisch die Möglichkeit eine Leerzeile in eine Combobox einzutragen, damit es kein Pflichtfeld wird). Diese Schlüsselwörter können später bei der Suche nach bestimmten Einträgen helfen.

 

Der Neuaufnahme-Dialog ist auf zwei Seiten aufgeteilt, auf der ersten erscheinen Standard-Eingabefelder wie Produkt, Version und Komponente, Zuweisen an, Geschätzter Aufwand und Fälligkeit. Auf der zweiten Seite, durch die man mit dem Klick auf Bug anlegen gelangt, erscheinen dann u. a. die selbstdefinierten Eingabefelder.

 

Für jeden Benutzer steht über das Item Persönliche Einstellungen die Möglichkeit zur Verfügung, die benutzerabhängigen Einstellungen abweichend von den Administrator-Vorgaben zu konfigurieren. Dazu zählen allgemeine Einstellungen wie Aussehen und Feldtrennzeichen (für Export), aber auch diese eMail-Einstellungen:

 

Wenn meine Rolle im jeweiligen Bug diese ist...                  

  • Zuständiger, Berichterstatter oder CC-Listen-Mitglied

 

... dann möchte ich eine eMail bekommen, wenn folgendes zutrifft:

  • Ich bekomme oder verliere diese Rolle
  • Der Bug wird gelöst oder wiedergeöffnet
  • Jemand ändert Priorität, Status, Schwere, oder Ziel-Meilenstein
  • Jemand fügt einen Kommentar hinzu
  • Jemand fügt einen Anhang hinzu
  • Jemand ändert Anhangsinformationen
  • Jemand ändert das Schlüsselwortfeld
  • Die CC-Liste ändert sich
  • Der Abhängigkeitsbaum ändert sich
  • Jemand ändert ein oben nicht aufgeführtes Feld

 

... allerdings dann nicht, wenn folgendes zutrifft:

  • Der Bug ist unbestätigt
  • Ich selbst habe die Änderung vorgenommen

 

Außerdem können dort die gespeicherten Suchen, welche benutzerabhängig gespeichert werden, bearbeitet und "vergessen" werden - bis auf die standardmäßig vorgegebene Suche "Meine Bugs", diese kann nur ausgeblendet werden. Eigene Suchen können aber auch der Gruppe zugänglich gemacht werden. 

 

Weiterhin können dort natürlich auch Benutzername und Passwort geändert, sowie die Systemberechtigungen dieses Kontos eingesehen werden.

 

Einsicht in die Datenbank

 

Da phpmyadmin bei mir bereits installiert war, habe ich natürlich auch einen kurzen Einblick in die Datenbank genommen. Wenn es fehlt kann es über

 

apt-get install phpmyadmin

 

nachinstalliert werden. Danach steht das Webinterface von phpmyadmin, aber es kann sich noch nicht in die Datenbank eingeloggt werden. Für phpmyadmin gibt es zwei grundlegende Dateien:

 

/etc/phpmyadmin/config.inc.php

 

diese stellt das "Debian local Configuration File" dar. Wenn man sich diese anschaut fällt einem auf, das sie die Datei /etc/phpmyadmin/config-db.php inkludiert und von dort bestimmte Variablen bezieht. Konkret müssen in der config-db.php die Variablen $dbuser='root' und $dbserver='localhost' gesetzt werden, damit das Einloggen über das Webinterface funktioniert.

 

In phpmyadmin kommt man anschließend über die Adresse http://$IP-Adresse$/phpmyadmin hinein. Wer SQL-Programme schon einmal benutzt hat, wird sich sofort damit zurecht finden. Weiteres zu der Konfiguration von phpmyadmin hier: Link.

 

Alternativ kann sich aber natürlich auch über das Terminal in mysql eingeloggt werden:

 

mysql -u root -p $Passwort$

 

Die Datenbank heisst naheliegenderweise Bugzilla3 und beinhaltet 56 Tabellen...

 

Fazit

 

Mir gefällt das System sehr gut, schön übersichtlich und klar strukturiert aufgebaut. Für große Firmen ist der Funktionsumfang aber möglicherweise doch zu gering, dafür ist es aber natürlich auch kostenfrei zu haben - so ein Entwickler-Arbeitsplatz kann teuer werden, wenn man alles zusammenrechnet. Vorteilhaft ist auf jeden Fall auch, das keine dedizierte Anwendung auf den Clients installiert werden muss.

 

Ich habe nun gar nichts von einer Plugin-Schnittstelle gesehen (kann es ja auch bei einer Webanwendung in Form von Scripten geben, siehe z. B. Icinga), muss ich mich noch informieren ob man es erweitern kann. Immerhin hat es auch ein paar gute Export-Funktionen über XML und CSV und man kann einen RSS-Feed auf eine Suche abonnieren sowie automatisch Bug-Reports zuschicken lassen.

 

Gut gefällt mir auch die deutsche Übersetzung und Lokalisation, sowie das jede Konfigurationseinstellung einzeln zurückgesetzt werden kann. Etwas irritierend war, das nach Bearbeiten eines Bugs direkt der nächste eingeblendet wird, aber das kann in den persönlichen Einstellungen geändert werden.

 

eMail-Versand funktioniert einwandfrei bei mir, jedoch werden die Mails von SpamAssassin noch als Spam markiert und in den Spam-Ordner (IMAP) vorsortiert...

 

Weitere Links:

 

  • Beitrag im Linux-Magazin zu Bugzilla: Link
  • Überblick über Bugzilla: Link
  • Mittlerweile kann offenbar auch Oracle benutzt werden: Link
  • Bugtracking mit Bugzilla: Link
  • Grundfunktionen von Bugzilla: Link

 

Monats-Liste