Bug & Issue Tracker - UOS-Open-Source-Softwareentwicklung/oss1314 GitHub Wiki
Kurzbeschreibung eines Open-Source-Tools
Universität Osnabrück
Artem Petrov - [email protected]
Definition
Bug-Tracker sind Fallbearbeitungssysteme für die Softwareentwicklung, die eingesetzt werden, um Programmfehler zu erfassen und zu dokumentieren. Der Begriff Bugtracking bezeichnet zum einen den Vorgang der Fehlersuche an sich (durch Methoden des Debuggings), zum anderen den Vorgang, einen Fehler samt seiner Dokumentation über die Zeit zu verfolgen. Außer Programmfehlern können auch Verbesserungsvorschläge und Wünsche der Nutzer mittels Bug-Tracker aufgenommen werden [1]. In dieser Hinsicht spricht man von Issue-Tracking. Issue-Tracker (auch Helpdesk-, Serviceticket-, Ticketing-, Task-Tracking-, Support-Ticketing-, Trouble-Ticket- oder Request-Tracking-System genannt) ist also eine Art von Software, die die Handhabung von Empfang, Bestätigung, Klassifizierung und Bearbeitung von Kundenanfragen (auch Tickets oder Fälle genannt) ermöglicht [2].
Motivation
Anstatt Bug- und Issue-Tracker einzusetzen, könnten Bugs und Tickets in einer anderen Form (zum Beispiel als einfache Textdokumente oder Emails) angelegt werden. Bei großen Projekten führt es jedoch zu gewissen Komplikationen. Zum einen erweisen sich Organisation, Erstellung und Pflege von solchen Dokumenten als sehr mühselig. Bereits erfasste Probleme und Tickets können vergessen werden. Zum anderen kann eine Sammlung von diesen Dokumenten nur mittels simplen Suchanfragen durchsucht werden [1]. Daher kommen in der Softwareentwicklung Fallbearbeitungssysteme in Einsatz, die oft Schnittstellen zu anderen Systemen haben (Kundendatenbanken, Versionsverwaltungssysteme, Dokumentierungswerkzeuge oder Wikis) [1].
Grundfunktionalität
Zu grundlegenden Funktionen von Fallbearbeitungssystemen zählen [2]:
- Erfassung von Störungen, Fehlern und Anfragen;
- Überwachung der Bearbeitung, der Bearbeitungsdauer und -qualität von Tickets;
- Zuordnung und Verteilung der Bearbeiter;
- Systematisches Sammeln von Fragen und Antworten für FAQs;
- Garantieren des Einhaltens interner Abläufe durch Zwangssteuerung über Workflows;
- Statistische Auswertung über das Ticketaufkommen;
- Automatisches Generieren von Tickets Durch Alarm-Systeme.
Ticket
Unter einem Ticket versteht man die elektronische Form eines Anliegens, das meist vom Nutzer gemeldet wird [2]. Ein Ticket kann entweder eine Störungs- oder eine andere Anfrage (einen Änderungswunsch, eine informative Anfrage oder eine Anfrage auf Funktionserweiterung) enthalten [2]. Ein Ticket kann zum Beispiel folgende Daten enthalten [2]:
- Ticketnummer und Ticketersteller;
- Zeitpunkt der Erstellung;
- Prioritätsstufe;
- Dringlichkeit;
- Kategorie;
- Problembeschreibung und Problemlösung;
- Übersicht der bisherigen Bearbeiter mit Zeitangaben;
- Bearbeitungsstatus.
Workflows
Die Abarbeitung eines Tickets geschieht nach einem im Fallbearbeitungssystem definiertem Ablauf (Workflow). Auf der nachfolgenden Abbildung ist das Default-Workflow des Bug-Tracking-Systems Bugzilla dargestellt [3].
Nachfolgend werden einige Bug- und Issue-Tracking-Systeme dargestellt.
Bugzilla
Bugzilla ist ein Webbasiertes und unter Mozilla-Public-Lizenz stehendes Bug-Tracking-System [3]. Es wurde von Terry Wiessman 1998 veröffentlicht und wurde ursprünglich für das Mozilla.org-Projekt verwendet. Obwohl das Werkzeug das Potential besitzt zu einem Projektmanagementtool zu wachsen, wird Bugzilla als Bug-Tracking-System weiterentwickelt. Die Erhaltung von Geschwindigkeit und Effizienz stehen dabei im Vordergrund [4].
Redmine
Redmine ist ein webbasiertes Projektmanagement-Tool. Es kann für Benutzer- und Projektverwaltung, Diskussionsforen, Wikis, zur Ticketverwaltung oder Dokumentenablage genutzt werden [5]. Redmine wird bei vielen großen Projekten eingesetzt, unter anderem für Ruby (als Issue-Tracker), TYPO3 oder Lighttpd [6]. Redmine wurde von Jean-Philippe Lang 2006 veröffentlicht und steht unter GPLv2 Lizenz. Redmine ist in Ruby implementiert.
JIRA
Ein weiteres webbasiertes Bug- und Issue-Tracking-System namens JIRA wird von vielen großen Unternehmen weltweit eingesetzt [7]. Deswegen wird JIRA hier erwähnt, obwohl es sich um ein proprietäres Produkt handelt. Dieses Werkzeug ist in JavaEE implementiert und ist durch seine Funktionen zur Ablauforganisation („Workflow-Management“) auch für Prozessmanagement und Prozessverbesserung verwendbar [8].
Schlusswort
Bug- und Issue-Tracker erleichten den Alltag sowohl von Nutzern als auch von den Softwareentwicklern. Es ist allerdings zu beachten, dass das Einsetzen von diesen Systemen einige Nebeneffekte hat, die je nach Position des Betrachters entweder als positiv oder als negativ eingestuft werden können. Zum einen kann die Arbeitsleistung von Mitarbeitern und Teams kontrolliert werden. Zum anderen entsteht durch die gegenseitige Beobachtung von Mitarbeitern ein so genannter „Gruppendruck“-Effekt [2].
Weitere Systeme
Es gibt eine Reihe von weiteren Open-Source-Fallbearbeitungssystemen, auf die hiernicht näher eingegangen wird [9]:
- Trac
- Mantis
- Issue-Tracker von Github
- WebIssues
- eTraxis
- BugNet
- The Bug Genie
- Collaborative
Referenzen
[1] Bugtracker – Wikipedia, http://de.wikipedia.org/wiki/Bugtracker, 28.03.2014
[2] Issue-Tracking-System – Wikipedia, http://de.wikipedia.org/wiki/Issue-Tracking-System, 28.03.2014
[3] Bugzilla – Wikipedia, http://en.wikipedia.org/wiki/Bugzilla, 28.03.2014
[4] Design Principles, http://www.bugzilla.org/status/roadmap.html#design, 28.03.2014
[5] Redmine – Wikipedia, http://de.wikipedia.org/wiki/Redmine, 28.03.2014
[6] Redmine – Who uses Redmine, http://www.redmine.org/projects/redmine/wiki/WeAreUsingRedmine, 28.03.2014
[7] Customers – JIRA, https://www.atlassian.com/company/customers, 28.03.2014
[8] JIRA – Wikipedia, http://de.wikipedia.org/wiki/Jira_%28Software%29, 28.03.2014
[9] Top 10 Open Source Bug Tracking Systems, http://www.softwaretestingclass.com/top-10-free-open-source-bug-tracking-systems, 28.03.2014