Stephen Wolfram hat einen Aufsatz vorgelegt, der Bugs nicht als Handwerksfehler behandelt, sondern als naturgesetzliche Begleiterscheinung von Rechenleistung. Der Titel verspricht eine Theorie der Bugs, und die Argumentation endet bei einem unbequemen Ergebnis: Ein mächtiges Programm ist zwangsläufig fehleranfälliger als ein schwaches. Für Verantwortliche, die Testbudgets rechtfertigen müssen, ist der Gedankengang mehr als Philosophie.
drweb.de als bevorzugte Quelle auf Google hinzufügenQualitätsgeprüfte Inhalte direkt in Google News & DiscoverJetzt hinzufügenJeder Bug einzigartig, das Muster trotzdem beschreibbar

Wolframs Ausgangspunkt klingt paradox. Jeder Fehler ist definitionsgemäß unerwartet und damit ein Einzelfall, gleichzeitig treten Fehler so verlässlich auf, dass eine allgemeine Beschreibung möglich erscheint.
Das Werkzeug dafür liefert ein Begriffspaar aus Wolframs eigener Forschung. Berechnungsmäßig reduzible Systeme lassen sich abkürzen, ihr Verhalten also vorhersagen, ohne jeden Schritt durchzurechnen. Irreduzible Systeme geben diese Abkürzung nicht her, hier bleibt nur das vollständige Durchlaufen.
Der Zielkonflikt, den niemand wegtestet
Aus dieser Unterscheidung folgt der eigentliche Befund. Ein Programm gewinnt seine Mächtigkeit gerade aus der Irreduzibilität, und genau diese Eigenschaft macht sein Verhalten unvorhersehbar. Wolframs Aufsatz beschreibt daraus einen grundlegenden Handel zwischen Rechenmächtigkeit und Fehleranfälligkeit.
Besonders anschaulich wird die Sache an den sogenannten wily weasels, kleinen Rechenmaschinen, die ihren Fehler so lange wie irgend möglich verbergen. Ein Test, der solche Konstruktionen finden soll, müsste praktisch unbegrenzt lange laufen.
Warum das gerade jetzt zählt
Die Debatte trifft auf eine Branche, die im großen Stil maschinell erzeugten Code übernimmt. Bei der Portierung von Bun nach Rust hat der Erfinder der aufgegebenen Sprache genau diesen Punkt angegriffen: Eine Testsuite, die im alten Code keine Fehler fand, sichert eine Million neue Zeilen erst recht nicht ab. Wolfram liefert dazu die theoretische Begründung nach.
Testabdeckung in Prozent ist eine Beruhigungspille, keine Aussage über Risiko. Entscheidend bleibt, ob Ihre Tests die unvorhersehbaren Pfade überhaupt erreichen, und genau dort versagen die üblichen Kennzahlen.
— Michael Dobler, Herausgeber Dr. Web
Was Sie daraus ableiten können
Verschieben Sie Budget von der Fehlervermeidung zur Fehlererkennung im Betrieb, denn Beobachtbarkeit fängt genau die Fälle ab, die kein Test vorhersieht. Wie brüchig automatisierte Grossumbauten dabei werden, zeigt unsere Auswertung zu einer Million Zeilen KI-Code, und der Rust-Nachbau von Postgres zeigt die Gegenprobe mit vollständiger Regressionssuite.