# Fehlerbericht

Ein Fehlerbericht, oder englisch bug report, ist ein Bericht über einen Programmfehler von Software, der an den oder die zuständigen Programmierer des jeweiligen Programms mit dem Ziel geschickt wird, den oder die darin beschriebenen Fehler zu beheben. Dabei werden meist Bugtracker oder Issuetracker verwendet, es kann jedoch auch z. B. ein E-Mail verschickt werden.

## Zweck

Da ein Entwickler von Software sein Programm nicht auf jeder Hardware testen kann, ist es unmöglich, jeden Fehler im Voraus zu beseitigen. Oft sind auf unterschiedlicher Hardware auch sog. Workarounds (der Linux-Kernel z. B. nennt dies auch Quirks) nötig, damit ein Programm auch auf dieser Hardware funktioniert. Aber auch allgemeine Fehler, die unabhängig von der Hardware auftreten, können gemeldet und korrigiert werden.
Für Softwareentwickler ermöglicht ein Fehlerbericht die Korrektur von Fehlern, die sie nicht selbst bemerkt haben. Bei größeren Softwareprojekten gibt es für verschiedene Softwarebereiche zuständige Programmierer, genannt Maintainer. In einem solchen Fall ist es wichtig, den Fehlerbericht dem korrekten Bereich zuzuordnen, damit ihn der zuständige Maintainer auch erhält. Wird die Entwicklung durch einen Programmierer aufgegeben, findet sich meist ein neuer zuständiger Programmierer, der sich um das Programm (oder den Softwarebereich) weiterhin kümmert und die Aufgabe der Softwarewartung bzw. -pflege übernimmt. Ist dies nicht der Fall, gilt ein Programm als unmaintained – und es werden keine Fehlerberichte bearbeitet, solange sich nicht ein neuer Maintainer findet.
Für Benutzer ist ein Fehlerbericht oft die einzige Möglichkeit von Feedback an die Entwickler. Daher werden manchmal nicht nur Fehler, sondern auch Vorschläge oder Feature-Requests oder einfach nur Kommentare – und somit keine Programmfehler, englisch bugs – als Bug Reports verschickt.

## Inhalt

Ein guter Fehlerbericht muss wesentliche, für die Korrektur des Fehlers wichtige Informationen enthalten. Diese sind bei Vorhandensein eines englisch Bug Tracking System oder in der Dokumentation zur jeweiligen Software meist angegeben. Typischerweise beinhaltet ein Fehlerbericht folgende Informationen:
* Art des Fehlers – z. B. eine Fehlermeldung oder ein Programmabbruch
* Vorgang, der zum Fehler geführt hat; es ist für einen Entwickler wichtig, wie er den Fehler auf seinem System nachstellen kann
* System, auf dem der Fehler auftrat
** Hardware – auf welchem Computersystem (Rechnerarchitektur)
** Betriebssystem – auf welchem Betriebssystem, und in welcher Version desselben
* das Programm selbst, die Software – auf welchen Versionen und mit welchen Konfigurationen trat der Fehler auf?
* Daten über den Zustand, in dem das Programm war, als es abgestürzt ist – dies ist meist optional, da private bzw. sensible Informationen enthalten sein können
** Daten eines Debuggers bzw. einen Stacktrace
** ein Dokument, das geöffnet (geladen) wurde
Zusätzlich sollte der Benutzer, der den Fehler gemeldet hat, erreichbar sein, um Rückfragen zu beantworten oder eventuell einen Patch ausprobieren zu können.

## Beispiele

* Auf der Webseite zum Windows-Programm Rufus, rufus.ie, heißt es: Um Feedback, einen Fehlerbericht oder Verbesserungsvorschläge zu senden, nutzen Sie bitte den issue tracker von GitHub. Alternativ können Sie auch eine E-Mail senden.
* In macOS gibt es die ins Betriebssystem integrierte Funktion „Fehlerbericht an Apple senden“. Das Programm CrashReporter.app sendet nach Programmabstürzen Crash Logs, inklusive Debugger-Informationen und einem optionalen Kommentar des Benutzers, an Apple. In Mac OS X Snow Leopard wurde die Funktion automatisiert und kann mit der globalen Einstellung „Diagnoseberichte“ kontrolliert werden.
* Der Mozilla-Absturzmelder sendet nach Bestätigung Fehlerberichte u. a. nach Programmabstürzen von Firefox und Thunderbird an die Mozilla Foundation.
* Die Linux-Distribution Debian GNU/Linux nutzt als Bug Track System (BTS) effektiv Mailinglisten. Über das Programm reportbug wird ein Benutzer dabei unterstützt, einen Bug als E-Mail in die entsprechende Liste zu melden.