Programmfehler
Ein Softwarefehler ist ein Problem mit dem Code in einem Computerprogramm, das dazu führt, dass es nicht richtig funktioniert. Sie können dem Benutzer Unannehmlichkeiten bereiten und dazu führen, dass der Computer abstürzt oder einfriert. Die meisten Computerprogramme haben Fehler. Ein Programm, das eine große Anzahl von Fehlern (oder möglicherweise einen einzelnen oder einige wenige schwerwiegende Fehler) aufweist, wird als fehlerhaft bezeichnet.
Die meisten Fehler werden durch schlechte Programmierung durch den Entwickler verursacht, aber manchmal können sie auch durch Compilerprobleme verursacht werden. Wenn Fehler gefunden werden, schicken Leute Fehlerberichte an den Entwickler, um ihn über den Fehler zu informieren und ihn beheben zu lassen.
Manchmal sagen Leute, dass ihr Computer einen Fehler hat, wenn mit ihm etwas nicht in Ordnung ist. Das Problem wird normalerweise durch einen Computervirus verursacht, der ihren Computer infiziert hat und ihn langsam macht oder andere Dinge tut.
Einige Bugs sind harmlos, z.B. erlauben viele Videospiele fälschlicherweise, dass sich Objekte durch Wände bewegen. Andere Fehler sind schwerwiegender, z.B. ein Fehler in einem Navigationssystem, der ein Flugzeug explodieren lässt.
Arten von Fehlern
Puffer-Überlauf
Ein Pufferüberlauf tritt auf, wenn ein Programm in einen Speicherbereich schreibt oder aus einem Speicherbereich liest, auf den es nicht zugreifen soll.
Arithmetischer Überlauf
Ein arithmetischer Überlauf tritt auf, wenn eine in einer Variable enthaltene Zahl über die höchste Zahl hinaus erhöht wird, die die Variable zulässt. Dies führt normalerweise dazu, dass die Zahl wieder auf Null zurückgesetzt wird.
Endlosschleife
Eine Endlosschleife entsteht, wenn ein Programm in eine Schleife (eine Reihe von Anweisungen, die viele Male wiederholt wird) eintritt und es keinen Ausweg aus der Schleife gibt. Dies kann zum Einfrieren des Programms führen.
Roundoff-Fehler
Wenn eine Fließkomma-Variable nicht genau genug ist, kann die darin gespeicherte Zahl ungenau sein. Dies kann je nach Programmtyp verschiedene Probleme verursachen, z.B. kann es dazu führen, dass ein Navigationsprogramm zu einem unbeabsichtigten Ort navigiert oder der Ton in einem Tonaufnahmeprogramm verzerrt ist.
Division durch Null
Die Division durch Null ist eine ungültige mathematische Operation. Wenn ein Programm eine ganze Zahl durch Null dividiert, stürzt es ab. Unter Linux wird beim Auftreten dieses Fehlers die Meldung "Gleitkomma-Ausnahme" angezeigt, obwohl keine Gleitkommazahlen beteiligt waren. Fließkomma-Mathematik erlaubt manchmal die Division durch Null. Dies führt normalerweise zu einem speziellen "keine Zahl"-Wert.
Beschneidungsprobleme
Bei Videospielen treten Clipping-Probleme, auch als Kollisionserkennungsprobleme bezeichnet, auf, wenn ein Objekt eine Barriere (wie eine Wand, einen Boden oder eine Decke) passiert, die es nicht durchdringen sollte. Dies ist ein sehr häufiger Fehler, der in vielen Videospielen auftritt. Dies kann z.B. in Doom 2 auftreten, wenn ein zerquetschtes Monster von einem Erzvögel wiederbelebt wird. Clipping-Probleme können oft als zeitsparende Taktik bei Speedruns eingesetzt werden, z.B. kann man in Super Mario 64 die Wendeltreppe im Schloss überspringen, indem man durch die Decke springt.
Sicherheitslücken
Sicherheitsfehler sind Fehler, die es einem Eindringling ermöglichen, entweder Zugang zum Computer zu erhalten oder den Computer zum Absturz zu bringen. Den Computer zum Absturz zu bringen, wird als Denial-of-Service-Angriff bezeichnet. Die Behebung von Sicherheitsfehlern gilt als besonders wichtig, da sie es Eindringlingen ermöglichen könnten, wichtige Informationen wie Kreditkartennummern oder Passwörter zu stehlen. Beispiele für Sicherheitslücken sind Heartbleed und Shellshock.
Misbugs
Ein Misbug ist ein Fehler, der als Funktion verwendet wurde. Ein Beispiel wäre ein Fehler in einem Android-Telefon, der Benutzern Root-Zugriff ermöglicht.
Hardware-Fehler
Einige Fehler betreffen nicht die Software, sondern die Hardware (die physischen Teile eines Computers). Beispielsweise würde die Ausführung der Befehlssperre cmpxchg8b eax
auf alten Pentium-Prozessoren dazu führen, dass der Prozessor bis zum Neustart nicht mehr funktioniert. Da Hardware-Fehler physikalische Designfehler sind, können sie nicht mit einem Software-Update behoben werden, obwohl es möglich sein kann, den Fehler mit einem Software-Update zu umgehen (zu verstecken).
Fragen und Antworten
F: Was ist ein Softwarefehler?
A: Ein Softwarefehler ist ein Problem mit dem Code eines Computerprogramms, das dazu führt, dass es nicht richtig funktioniert.
F: Was sind die Folgen eines Softwarefehlers?
A: Ein Softwarefehler kann dem Benutzer Unannehmlichkeiten bereiten und dazu führen, dass sein Computer abstürzt oder einfriert.
F: Haben alle Computerprogramme Fehler?
A: Ja, die meisten Computerprogramme haben Bugs.
F: Was ist ein fehlerhaftes Programm?
A: Ein fehlerhaftes Programm ist ein Programm, das eine große Anzahl von Fehlern oder möglicherweise einen einzigen oder einige wenige schwerwiegende Fehler aufweist.
F: Wer ist für die meisten Bugs in Computerprogrammen verantwortlich?
A: Die meisten Fehler werden durch schlechte Programmierung seitens des Entwicklers verursacht, aber manchmal können sie auch durch Compiler-Probleme verursacht werden.
F: Was tun Menschen, wenn sie einen Fehler in einem Computerprogramm finden?
A: Wenn man einen Fehler findet, schickt man einen Fehlerbericht an den Entwickler, um ihn über den Fehler zu informieren und ihn beheben zu lassen.
F: Was meinen Menschen, wenn sie sagen, dass ihr Computer einen Fehler hat?
A: Wenn Menschen sagen, dass ihr Computer einen Fehler hat, meinen sie in der Regel, dass etwas mit ihm nicht in Ordnung ist. Dies wird in der Regel durch einen Computervirus verursacht, der ihren Computer infiziert hat und ihn langsam macht oder andere Dinge tut.