Suchen

Definition „Software-Fehler“ Was ist ein Bug?

| Autor / Redakteur: zeroshope / Stephan Augsten

Ein Bug ist ein logischer Fehler im Code der Software, der dazu führt, dass das Programm nicht wie gewünscht oder überhaupt nicht funktioniert. Der Fehler kann nicht durch eine Syntaxprüfung entdeckt werden.

Firmen zum Thema

Softwarefehler oder Bugs lassen sich allein aufgrund der schieren Anzahl von Codezeilen nicht so einfach ausfindig machen.
Softwarefehler oder Bugs lassen sich allein aufgrund der schieren Anzahl von Codezeilen nicht so einfach ausfindig machen.
(Bild: testbytes / Pixabay )

„Bug“ ist die englische Vokabel für „Wanze“. Im IT-Bereich bezeichnet sie nicht funktionierende Systeme. Die Wurzeln dieser Verwendung reichen bis ins 19. Jahrhundert zurück. Thomas Edison prägte den Begriff, da tatsächlich Wanzen die Funktionsfähigkeit einige seiner Erfindungen beeinträchtigten.

Für Computer kam der Begriff in den 1940er Jahren erneut auf. Wiederum waren es echte Insekten, die für Fehlfunktionen sorgten. Die Verwendung schleifte sich so ein. Inzwischen ist Bug ein Synonym für einen speziellen Softwarefehler.

Kennzeichen eines Bugs

  • fehlerhafter Software-Code
  • Programm funktioniert nicht wie erwartet oder überhaupt nicht
  • Fehler wird bei der Syntaxprüfung durch den Compiler nicht gefunden
  • „menschliches Problem“, beispielsweise durch Vertippen
  • Auftreten häufig als Laufzeitfehler („Runtime Error“)

Bugs können ernste Konsequenzen haben

Programmfehler können teilweise ernste Konsequenzen haben. Beispielsweise kann ein logischer Fehler dazu führen, dass Sicherheitsvorkehrungen nicht wie gewünscht funktionieren. In der Vergangenheit sorgten zudem Bugs in Tools für die Suchmaschinenoptimierung dafür, dass genau das Gegenteil des Gewünschten erreicht wurde. Es ist deshalb unverzichtbar, dass Bugs möglichst schnell gefunden und beseitigt werden.

Hilfe bei der Beseitigung von Programmfehlern

Die Beseitigung von Programmfehlern wird „Bugfix“ genannt. Früher war der Mensch dabei weitgehend auf sich gestellt. Entwickler mussten mit dem bloßen Auge den Code nach Problemen absuchen. Dies war jedoch irgendwann nicht mehr realisierbar.

Software hat sich insgesamt stetig weiterentwickelt, entsprechend lang ist der Code geworden. Selbst wenn die Entwickler wissen, wo sie suchen müssen, sind nicht selten Tausende Zeilen zu kontrollieren. Deshalb wurden automatische Debugger entwickelt – diese tragen ihre Funktion bereits im Namen: Sie finden entsprechende Fehler und beheben sie.

Debugger sind beispielsweise in der Lage, den Code Zeile für Zeile auszuführen und so auf Schwachstellen aufmerksam zu machen. Zugleich beobachten Debugger das Gesamtverhalten des Programms. Dies betrifft beispielsweise Variablenwerte und weitere Funktionen. Kommt es hier zu Auffälligkeiten, werden die Entwickler darüber in Kenntnis gesetzt.

Selbst Debugger stoßen allerdings schnell an ihre Grenzen. So kann es beispielsweise sein, dass ein völlig anderer Abschnitt als der momentan untersuchte zum Programmfehler führt. Dies kann der Debugger nicht herausfinden. Deshalb gibt es inzwischen auch zahlreiche Werkzeuge zur generellen Code-Analyse sowie umfangreiche Testroutinen. Automatisierte Prüfungen gehen Funktion für Funktion durch.

Hilfssoftware steht noch relativ am Anfang

Obwohl die Hilfssoftware zum Auffinden und Beseitigen von Programmfehlern zunehmend besser geworden ist, steht die Entwicklung nach wie vor ganz im Anfang. Dies hat mit der Vielzahl von Programmiersprachen, Entwicklungsumgebungen und neuen technischen Möglichkeiten zu tun. Beispielsweise führt das Internet der Dinge dazu, dass Code neu gedacht werden musste. Aus diesem Grund bleibt es eine schwierige Aufgabe, Fehler schnell zu identifizieren und zu beheben. Daran wird sich vermutlich auch zeitnah nichts ändern.

(ID:46664576)