Software-Wiki
Advertisement

Als Heisenbug bezeichnet man in der Programmierung einen Programmfehler (engl. Bug), der nur äußerst schwer oder gar nicht zuverlässig reproduzierbar ist. Das Kennzeichen eines Heisenbugs ist die extrem schwierige Wiederherstellung der für die Reproduktion des Bugs notwendigen Rahmenbedingungen. Heisenbugs sind schwieriger aufzufinden und zu beheben als Bohrbugs.

Der Begriff ist angelehnt an die heisenbergsche Unschärferelation in Abgrenzung zum bohrschen Atommodell.

Ausschlaggebend für die Unterscheidung zwischen Bohrbugs und Heisenbugs ist dabei nicht die theoretische, sondern die praktische Wiederherstellung der den Bug auslösenden Rahmenbedingungen. Heisenbugs treten in nebenläufigen Umgebungen vermehrt auf. Eine besonders häufige Ursache für Heisenbugs sind Wettlaufsituationen wegen mangelnder Synchronisation (genauer: Sequentialisierung).

Auch in der Elektronikentwicklung können Heisenbugs auftreten, zum Beispiel dadurch, dass an eine galvanisch getrennte Schaltung ein Oszilloskop ohne galvanische Trennung angeschlossen wird. Eine andere Möglichkeit ist, dass durch das Oszilloskop eine Kapazität, zum Beispiel in einem Schwingkreis, geringfügig geändert wird, wodurch die Schaltung ihr Verhalten ändert.

In der Praxis zeigen sich Heisenbugs meist folgendermaßen: Unter bestimmten, noch nicht näher bekannten Bedingungen tritt der Bug auf. Versucht man, die Bedingungen, die den Bug auslösen, nachzustellen, tritt der Bug nicht mehr auf. Der Grund ist oft, dass der Einsatz eines Analysewerkzeuges (Debugger) verhindert, dass der Fehler auftritt, weil sich die Rahmenbedingungen, insbesondere das zeitliche Verhalten, dadurch ändern. Man kennt also entweder die Rahmenbedingungen ohne den Bug oder den Bug ohne die Rahmenbedingungen, daher die Anlehnung an die heisenbergsche Unschärferelation.

Weblinks[]

Wikidata-logo Im Wikidata-Objekt Q54270 befinden sich offene Daten zum Thema und Links zu Wikimedia-Projekten.
Info Sign  Dieser Wikipedia-Artikel wurde gemäß GFDL bzw. CC-by-sa mit allen Versionen importiert.
Advertisement