Bug

aus WB Wiki; freien Wissensdatenbank rund ums Thema Computer
Version vom 5. März 2011, 10:23 Uhr von Dirk (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Mit Bug (engl. Wanze) bezeichnet man einen Fehler in einem Computersystem oder einem Programm.

Die Bezeichnung geht sehr wahrscheinlich auf einen Hardware-Fehler des Computers Mark 1 (Harvard-Universität) im Jahr 1945 zurück, der vermutlich durch eine Motte ausgelöst worden war. Sie war wohl zwischen zwei Relaiskontakte geraten und hatte einen Kurzschluss verursacht. Tatsächlich war der Begriff schon früher, mindestens seit 1890, im englischen Sprachraum in ähnlicher Bedeutung gebräuchlich. Bug bezeichnete damals eine Fehlfunktion eines Gerätes oder einen Fehler im Betrieb eines Gerätes.


Im Englischen unterscheidet man zwischen Error und Bug, wobei Error einen Fehler in einem (Rechen-)Vorgang oder einer Operation darstellt und ein Bug ein Fehler im Programm selbst ist.


Heute steht ein Bug am häufigsten in Zusammenhang mit Programmierfehlern. In praktisch allen auf dem Markt erhältlichen Programmen befindet sich noch eine Vielzahl von – meist weniger bedeutenden – Fehlern. Ihre Auswirkungen werden oft mit der nächsten Programmversion behoben oder zumindest abgemildert.

Programm(ier)fehler sind logische Fehler innerhalb von Anwendungen, die bei der Prüfung der Syntax durch den Compiler nicht gefunden werden können. Sie tauchen erst während der Nutzung auf, wenn das Programm einen bestimmten Zustand erreicht oder bestimmte Datenkonstellationen verarbeiten soll.

Bei populären, in großen Stückzahlen verkauften Programmen oder bei schwerwiegenden Bugs geben die Hersteller manchmal korrigierte Programmteile, so genannte Patches oder Service Packs, heraus. Ein wegen schwerer Bugs herausgegebenes, bereinigtes Update eines Programmes wird oft Bugfix genannt.

Das Wort Bug hat sich auch in der Fehlersuche und Fehlerbehebung beim Programmieren erhalten. Man nennt diesen Korrekturvorgang Debuggen (dt. »entwanzen«). Meist stellt die Programmierumgebung Hilfsmittel zur Fehlersuche zur Verfügung, die in ihrer Gesamtheit als Debugger bezeichnet werden.


Theoretisch ist es möglich, alle Bugs in einem Programm aufzuspüren und zu beseitigen. Doch da man dazu die Richtigkeit aller Verzweigungen im Programmablauf überprüfen müsste, wäre dies ein sehr langwieriges Unterfangen. Viele Fehler machen sich außerdem nur in ganz speziellen Fällen (z.B. bestimmte Soft- und Hardwarekonstellationen) bemerkbar und sind daher schwer zu finden. Auf der anderen Seite erfolgt die Programmentwicklung häufig unter Zeitdruck. Oft bleibt nicht einmal die Zeit, bekannte, weniger schwere Fehler zu eliminieren.

Einen Teil der Softwareprüfung übernimmt mittlerweile der Anwender selber, wenn der Softwarehersteller vor dem öffentlichen Erscheinen des Programmes so genannte Beta- oder RC-Versionen in einem mehr oder weniger offenen Testbereich zur Verfügung stellt. Über die Vielzahl der Rückmeldungen wird dann (hoffentlich) noch einmal an der Fehlerbeseitigung gearbeitet. Vorteil des Users, er lernt die (ggf. fehlerhafte) Software kennen; Vorteil des Herstellers, er spart sich Prüfstunden und Programmierer.


Die Anwender werden in Teilen also weiter mit Bugs leben müssen, sofern sich der Softwarehersteller nicht durch massive Beschwerden der User bzw. der Verweigerung des Kaufes seiner Software dazu "überreden" lässt an der Qualität seiner Ware zu arbeiten. Schliesslich zahlt der Anwender für ein funktionierendes Produkt.