BUG
(Kategorie: Computer)
Ein Bug (englisch bug - Käfer) ist ein Fehler in einem Computerprogramm (oder seltener: in einem Bauteil). Der Name kommt aus Zeiten, als Computer noch mit sehr viel Mechanik ausgestattet waren - eine der Fehlerquellen war nämlich, das kleine Käfer in den Geräten herumkrochen und die Geräte blockierten. Die Suche nach der Ursache muss fürchterlich gewesen sein, denn die Rechner waren zu dieser Zeit noch sehr viel größer als heute - viel Platz für viele Käfer!
Bugs sind nicht zu unterschätzen: Man schätzt, dass um die 50 Prozent der Zeit, die man für die Entwicklung eines Programmes benötigt, für Fehlersuche verwendet werden! Menschen machen eben Fehler - Computer aber verzeihen diese nicht.
Mit welchen Arten von Fehlern schlägt man sich herum?
- Mit solchen, die den Compiler direkt zum Anhalten bringen - Tippfehler etwa. Schreibt man versehentlich
prinmt "Hallo"
statt print "Hallo"
, wird der Compiler direkt abbrechen und mitteilen, dass in Zeile soundso ein Befehl auftaucht, den er nicht kennt. Diese Fehler sind leicht zu finden.
- Mit solchen, die zwar auch Tippfehler sind, aber subtiler, zum Beispiel eine vergessene Klammer. So etwas kann einen zur Verzweiflung bringen, weil das Programm an unvorhergesehene Stellen springt und man lange nicht versteht, wieso...
- Wenn man in der Aufgabenstellung z.B. eine mögliche Kombination von Faktoren, die das Programm von außen beeinflussen, übersehen hat (z.B. Benutzereingaben, Messwerte oder Dinge wie "Ich greife auf eine Datei zu, die gar nicht existiert"), ist es mitunter auch extrem knifflig, dahinterzukommen, wieso das Programm etwas anderes tut, als es soll.
- Ganz gemeine Tippfehler, besonders in Skriptsprachen: Wenn man sich im Variablennamen verschreibt:
variable1="Hallo"; echo $varialbe1;
liefert keinen Fehler, sondern eine leere Ausgabe, da der Rechner denkt, varialbe1
sei eine vom Programmierer bewusst neu eingeführte Variable - die im Normalfall zu Beginn einfach nichts beinhaltet. Das Programm verhält sich anders als erwartet, aber diesen Fehler zu finden ist wirklich tricky...
- Fehler, die erst auftauchen, wenn das Programm in Größenordnungen benutzt wird, die nicht bedacht wurden: Bei Youtube durchbrach Ende 2014 die Zugriffszahl für ein bestimmtes Video z.B. eine bestimmte (riesige) Zahl - woraufhin der Zugriffszähler plötzlich Unsinn anzeigte, denn der Variablentyp (Ganzzahl mit Vorzeichen) konnte diese riesige Zahl nicht mehr fassen! Aber rechnet man auch mit mehr als 2000000000 Zugriffen? (Das Problem trat genaugenommen bei 2^31 Zugriffen auf...)
Und so weiter. Programme sind nie vor Bugs gefeit! Manchmal weiß man nicht einmal genau, ob es sich bei einer Fehlfunktion nicht eher um eine geplante Einschränkung handelt - "It's not a bug, it's a feature" pflegen Nerds dann zu sagen...