Ein Bug ist ein Fehler in einer Software, durch den sie sich anders verhält als vorgesehen. Er kann im Code stecken, in der Konfiguration oder im Zusammenspiel zweier Bausteine, die jeder für sich fehlerfrei arbeiten.
- Bug
Ein Fehler in einer Software, durch den sie sich anders verhält als vorgesehen.
Beispiel: „Der Bug zeigte sich nur in Safari, wo das Formular beim Absenden die Eingaben verlor.“Auch: Programmfehler. Englisch bug heißt Käfer oder Wanze; als Wort für einen technischen Fehler steht es schon 1878 in Briefen von Thomas Edison.
Abgrenzung zum Feature Request: Dieser wünscht sich ein Verhalten, das nie vorgesehen war. Ein Bug weicht von einem vorgesehenen Verhalten ab.
Woher das Wort Bug in der Informatik kommt
Aus einem Logbuch von 1947. Am 9. September fand das Team am Rechner Harvard Mark II eine Motte, die ein Relais blockierte, klebte sie ins Logbuch und schrieb dazu: „First actual case of bug being found“. Die Seite liegt heute in der Smithsonian Institution, so fasst es der Wikipedia-Artikel Programmfehler zusammen.
Der Eintrag ist ein Scherz unter Leuten, die das Wort längst kannten: der erste echte Käfer unter lauter sprichwörtlichen. Bekannt gemacht hat die Geschichte die Computerpionierin Grace Hopper, die sie später oft erzählte.
Welche Arten von Bugs es gibt
Drei Gruppen sind geläufig. Ein Syntaxfehler verstößt gegen die Regeln der Sprache und hält das Programm meist schon beim Start an; ein Laufzeitfehler tritt erst während der Ausführung auf, etwa bei einer leeren Eingabe.
Am tückischsten ist der logische Fehler. Das Programm läuft, liefert aber ein falsches Ergebnis, weil an einer Stelle kleiner statt kleiner oder gleich steht. Auf Websites kommen Fehler dazu, die nur ein Browser oder eine Bildschirmbreite zeigt.
Wie ein Bug gemeldet und behoben wird
Mit einer Beschreibung, die ihn nachstellbar macht: die Schritte dorthin, das erwartete und das tatsächliche Ergebnis, Browser und Gerät, dazu ein Bildschirmfoto. Ein Bug, den das Team nicht auslösen kann, bleibt lange liegen.
Behoben wird er im Code, gesucht oft mit dem Debugger. Ausgeliefert wird die Korrektur als Patch oder, wenn es eilt, als Hotfix. Ein Regressionstest stellt danach sicher, dass derselbe Bug nicht wiederkommt.