Bug Tracking ist bei der Entwicklung von webbasierten Applikationen ein wichtiges Thema. Der Einsatz eines Exception- oder Bug Trackers wie Sentry bietet eine Reihe von Vorteilen bei der Überwachung von Fehlermeldungen einer Anwendung.
Natürlich sollten die meisten Bugs einer Software schon während der Entwicklung bzw. dem Testen der Applikation auffallen und behoben werden. Ein kleiner Teil an Fehlern bleibt dennoch übrig. Das ist ganz normal und betrifft generell jede Software, egal ob von kleinen freiberuflichen Entwicklern oder von großen Softwareherstellern.
Man kann sich allerdings nicht darauf verlassen, dass die Benutzer einer Software Fehler auch deren Entwicklern melden. Viele denken sich, dass der Fehler sicher schon von jemand anderem gemeldet wurde. Durch Bugs steigt gleichermaßen die Frustrate der Benutzer, wie die Akzeptanz der Software sinkt. An diesem Punkt kommen die Vorteile von webbasierten Applikationen ins Spiel: Diese sind dauerhaft mit dem Hersteller verbunden und bieten eine einfache Möglichkeit Updates auszuliefern, da keine Dateien an die Benutzer verteilt werden müssen.
Exceptions und wie diese zum Bug werden
Die dauerhafte Verbindung mit dem Hersteller bietet die Möglichkeit, Fehler automatisch an den Entwickler zu melden, ohne dass der User dazu aktiv werden muss. Dies funktioniert natürlich nur bei Programmierfehlern und nicht bei konzeptionellen Fehlern, da die Software ja selbstständig erkennen muss, dass ein Fehler aufgetreten ist. Dies ist zum Beispiel der Fall, wenn in einer Berechnung durch Null geteilt werden soll oder wenn bei einer Eingabe benötigte Daten fehlen. In solchen Fällen werden in Programmen sogenannte „Exceptions“ oder auf deutsch „Ausnahmen“ ausgelöst (bekannt vom „Schweren Ausnahmefehler“).
Exceptions sind generell zunächst nichts Schlimmes und kommen in jedem Programmcode vor. Die Frage ist, wie die Software mit aufgetretenen Exceptions umgeht. So kann zum Beispiel eine Exception ausgelöst werden, wenn in einem Formular ein Pflichtfeld nicht ausgefüllt wurde. Normalerweise würde die Software eine Exception abfangen und angemessen mit ihr umgehen: Zum Beispiel eine Fehlermeldung ausgeben, die auf das nicht ausgefüllte Pflichtfeld hinweist. Wirkliche Fehler treten erst auf, wenn Exceptions nicht abgefangen und behandelt werden.
Nicht abgefangene Exceptions an Entwickler weiterleiten
Um auf Fehler bzw. Bugs zu reagieren, bieten Programmiersprachen die Möglichkeit, eine Funktion zu definieren, die im Falle einer nicht abgefangenen Exception aufgerufen wird. Hier kann der Programmierer definieren, wie auf einen bestimmten Fehler reagiert werden soll . Eine sinnvolle Behandlung von Ausnahmefehlern ist zum Beispiel das Weiterleiten an den entsprechenden Entwickler.
Problematisch wird es, wenn einzelne Fehler gehäuft auftreten und der Entwickler dadurch sehr viele Mails erhält. Dabei können Benachrichtigungen zu anderen Fehlern dann in den Mails untergehen.
An dieser Stelle kommt ein Bug Tracker wie „Sentry“ ins Spiel, der u.a. von Disqus, Pinterest, Rdio und Path eingesetzt wird.
Mit Bug Tracker Sentry arbeiten
Um Sentry nutzen zu können, muss die Software zunächst auf einem Server installiert werden und über Port 80 erreichbar sein. Zur Administration steht den Entwicklern eine komfortable Weboberfläche zur Verfügung. Außerdem werden die Fehler aus den Applikationen über einen HTTP-Request auf diesem Port gemeldet. Dazu bietet Sentry für diverse Programmiersprachen Exception-Handler an, die dafür sorgen, dass Fehler nicht mehr direkt an den Entwickler, sondern an das eigene Sentry-System gemeldet werden. Der Vorteil hierbei ist, dass gleiche Fehler zusammengefasst werden und der Entwickler nur beim ersten Vorkommen eines Fehlers benachrichtigt wird. In der Weboberfläche von Sentry bekommt man dann eine Übersicht über die bisher aufgetretenen Fehler und wie oft diese bereits vorkamen. So behält der Entwickler den Überblick und kann sich schneller um die aufgetretenen Fehler kümmern.
In der Detailansicht eines Fehlers stellt Sentry alle gesammelten Informationen strukturiert dar:
- die eigentliche Fehlermeldung,
- der Zeitpunkt, wann der Fehler aufgetreten ist,
- die Anzahl der Vorkommen,
- der Server-Name,
- Daten zu der Anfrage am Server (URL, Cookies etc.)
- sowie ein Stacktrace bzw. eine Auflistung der Funktionsaufrufe, die zu dem Fehler geführt haben.
Mit diesen Informationen kann der Entwickler dann komfortabel auf Bugsuche gehen und den Fehler zeitnah beheben.
Einsatz von Sentry bietet ADACOR auschließlich Vorteile
Der Weg hin zu einem Exception- und Bug Tracker wie Sentry stand bei der ADACOR am Ende eines langen Prozesses. Zunächst hatten wir keinerlei Bug-Reporting im Einsatz, darauf folgte dann die Erfassung von Fehlern per E-Mail an unser OTRS-Ticketing-System und abschließend die Nutzung des Bug Trackers von Sentry.
Mittlerweile setzen wir Senty standardmäßig in der Softwareentwicklung ein, damit Fehler möglichst schnell und effektiv nach ihrem Auftreten behoben werden.