Bug

Als Bugs (deutsch: Käfer) werden Fehler in Computerprogrammen bezeichnet, die dazu führen, dass die Software nicht so funktioniert, wie sie es sollte. Meist gehen Bugs auf einen Fehler im Programmcode zurück, der oft erst von Endanwendern entdeckt wird, wenn sie das Programm ausführen.

Allgemeine Informationen

Die Bezeichnung Bug stammt aus der Zeit, in der die ersten Computer entwickelt wurden. Die riesigen Rechenmaschinen arbeiteten mit großen Schaltkreisen, Relais und teilweise mechanischen Elementen. Des öfteren kam es vor, dass Insekten in das Computergehäuse krabbelten und einen Kurzschluss oder eine ähnliche Fehlfunktion verursachten. Zeugnis eines solchen Fundes ist ein Logbucheintrag mit einem eingeklebten Käfer, der 1947 im 'Mark II Aiken Relay Calculator' gefunden wurde, nachdem dieser eine Fehlfunktion aufwies.[1]

Die Verwendung des Begriffs Bugs für einen Fehler in einem mechanischen und/oder elektrischen System ist indes noch älter: Thomas Edison soll schon 1878 von Bugs gesprochen haben, als er einem Freund von Schwierigkeiten bei seinen Erfindungen berichtete.[2]

Funktionsarten

Bugs kommen in den verschiedensten Varianten vor. Da Programme von Menschen erstellt werden, sind statistische Häufigkeiten von Fehlern im Quellcode zu erwarten. Je größer ein Programm ist, desto höher die Wahrscheinlichkeit, dass Bugs entweder im Beta-Test oder beim Enduser entdeckt werden. Die Fehler können verschiedener Art sein.

1.) Lexikalische Fehler sind falsch geschriebene oder unbekannte Eingabewörter. Je nach verwendetem Programmierparadigma sind nur bestimmte, korrekt geschriebene Befehle einer bestimmten Sprache (meist Englisch) möglich. Schon eine Kleinschreibung oder eine falsche Übersetzung können einen Programmfehler nach sich ziehen.

2.) Syntax-Fehler sind dadurch gekennzeichnet, dass die zur Verfügung stehenden Zeichen der jeweiligen Programmiersprache nicht richtig verwendet wurden. Fehlt ein Semikolon oder Anführungszeichen, kann das Programm an diesen Stellen abbrechen.

3.) Semantische Fehler treten auf, wenn Programmteile wie ein Parameter oder ein Argument falsch definiert werden. Die Syntax kann völlig korrekt sein, aber ein Fehler in der Deklaration kann zum Abbruch oder zu unerwünschten Ergebnissen führen.

4.) Sind oben genannte Fehlerarten auszuschließen, aber das Programm enthält dennoch einen Fehler, der erst beim Testlauf auffällt, wird von Laufzeitfehlern gesprochen. Der Compiler übersetzt das Programm in binären Code, sodass der Computer das Programm ausführen kann. Treten unerwartete Werte für bestimmte Variablen auf, kann es abbrechen, obwohl rein formal alles in Ordnung scheint.

5.) Laufzeitfehler hängen eng mit logischen Fehlern zusammen. Insbesondere große Programme können unerwünschte Ergebnisse ausgeben, die auf logische Fehler im Quellcode zurückzuführen sind. Zwar bricht das Programm nicht ab, aber es gibt Daten aus, die es nicht ausgeben soll. Oder begibt sich in Schleifen, hängt sich auf. Logische Fehler können auch Sicherheitslücken produzieren.

Praxisbezug

Die Vermeidung von Bugs fängt bei der Planung eines Programmierprojektes an. Hier wird von Softwareengineering gesprochen. Die Phasen eines Projektes werden anhand der Ziele des Programms definiert. Strukturelle Abläufe sorgen dafür, dass das Programm genau das ausgibt, was es ausgeben soll. Damit geht auch eine Dokumentation des Entstehungsprozesses einher, um im Nachhinein einfacher Änderungen durchführen zu können.

Da manche Fehler jedoch erst entdeckt werden, wenn viele Anwender das Programm nutzen, werden vor der Veröffentlichung sogenannte Alpha- und Betatests durchgeführt. Selbst nach der Veröffentlichung eines Programms können Fehler durch Updates, Bugfixes oder Patches behoben werden. Ein bekanntes Bug ist beispielsweise Heartbleed.

Bedeutung für SEO

Mit Bezug zur Auszeichnungssprache HTML und Skriptsprachen wie JavaScript oder JScript sind Bugs Fehler in Dokumenten oder Skripten, die direkte Auswirkungen auf die Suchmaschinenoptimierung haben können. Insbesondere der Zugang für Suchmaschinen spielt hier eine Rolle, aber auch andere On-Page und Off-Page Faktoren können Bugs beinhalten und zu erwünschten Ergebnissen führen.

Mitunter werden Bugs von SEO's auch ausgenutzt, um das Ranking durch sogenannte Black-Hat-Methoden zu beeinflussen. Die Best Practise für die Suchmaschinenoptimierung ist zu beachten, wenn langfristig positive Effekte erreicht werden sollen.

Einzelnachweise

  1. Rear Admiral Grace Murray Hopper. ei.cs.vt.edu. Abgerufen am 04. Dezember 2013.
  2. Did you know Edison coined the term bug. theinstitute.ieee.org. Abgerufen am 19.07.2017.

Weblinks