← Neueste Arbeiten
💻 computer science

Treating Run-time Execution History as a First-Class Citizen: Co-Versioning Run-time Behavior alongside Code

Diese Arbeit stellt das Konzept des „Behavioral Co-Versioning" vor, das die Versionshistorie von Quellcode mit einer persistenten, abfragbaren Archivierung von Laufzeitbeobachtungen koppelt, um semantische Änderungen und Regressionen zu erkennen, die durch reine Text-Diffs unentdeckt bleiben.

Ursprüngliche Autoren: Marcus Kessel

Veröffentlicht 2026-04-21
📖 4 Min. Lesezeit☕ Kaffeepausen-Lektüre

Ursprüngliche Autoren: Marcus Kessel

Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen

Stellen Sie sich vor, Sie haben ein riesiges Kochbuch (das ist Ihr Software-Code). Wenn Sie eine neue Version des Kochbuchs veröffentlichen, notieren Sie genau, welche Zutaten Sie geändert haben: „Ich habe statt 200g Mehl jetzt 250g verwendet" oder „Ich habe den Ofen auf 180 Grad statt 200 Grad gestellt". Das ist das, was Entwickler heute mit Tools wie Git tun: Sie versionieren den Text des Codes.

Aber hier liegt das Problem: Das Kochbuch sagt Ihnen nicht, wie der Kuchen tatsächlich schmeckt.

Vielleicht haben Sie die Temperatur geändert, aber der Kuchen ist trotzdem perfekt. Oder vielleicht haben Sie die Temperatur nicht geändert, aber weil Sie eine andere Mehlmarke gekauft haben (ein Update einer Bibliothek), ist der Kuchen jetzt trocken. Das Kochbuch sieht gleich aus, aber das Ergebnis (der Laufzeit-Verlauf) ist anders.

Heute werfen Entwickler diese Ergebnisse nach dem Testen einfach weg. Sie schauen nur auf die Ampel: „Grün = Alles gut" oder „Rot = Fehler". Die feinen Details – wie lange das Backen dauerte, ob der Teig etwas klumpig war oder ob der Kuchen in der Mitte etwas anders aussah als erwartet – gehen verloren.

Die Idee: „Behavioral Co-Versioning" (Verhaltens-Versionierung)

Marcus Kessel schlägt in diesem Papier eine revolutionäre Idee vor: Wir sollten das „Backen" genauso archivieren wie das „Rezept".

Stellen Sie sich vor, Sie hätten nicht nur das Kochbuch, sondern auch einen digitalen Koch-Logbuch, das bei jedem Backversuch automatisch mitläuft. Dieses Logbuch speichert:

  • Wie lange hat das Backen gedauert?
  • Wie war die Temperaturverteilung im Ofen?
  • Wie sah der Teig genau aus, bevor er in den Ofen kam?

Und das Wichtigste: Dieses Logbuch wird mit dem Rezept verknüpft. Wenn Sie das Rezept ändern (neuer Git-Commit), wird automatisch auch der Eintrag im Logbuch für genau diesen Moment gespeichert.

Warum ist das so genial? (Die Analogie des Detektivs)

Stellen Sie sich vor, Sie sind ein Software-Detektiv.

  1. Das alte Problem: Ein Kunde beschwert sich: „Der Kuchen schmeckt heute anders!" Sie schauen in das Kochbuch (den Code-Diff). Da steht: „Nichts geändert!" Sie sind verwirrt. Vielleicht war es das Mehl? Vielleicht war der Ofen anders? Ohne das Logbuch können Sie es nicht beweisen. Sie müssen das Backen von vor 3 Monaten nachmachen, was oft unmöglich ist, weil die Zutaten (Abhängigkeiten) nicht mehr verfügbar sind.
  2. Die neue Lösung (BeCoV): Sie öffnen das Logbuch. Sie sehen: „Aha! Bei Version 10 war die Backzeit 45 Minuten. Bei Version 11 (nach dem Code-Update) war sie plötzlich 55 Minuten, obwohl das Rezept gleich blieb."
    • Sie können sofort sehen: Das Verhalten hat sich geändert, obwohl der Code gleich aussah.
    • Oder: Sie sehen, dass sich das Verhalten nicht geändert hat, obwohl der Code komplett umgeschrieben wurde (ein perfektes Refactoring!).

Die drei großen Vorteile im Alltag

  1. Der „Stille Killer" wird sichtbar: Oft laufen Tests grün durch, aber im Hintergrund passiert etwas Schlimmes (z. B. wird eine Funktion doppelt so langsam). Das Logbuch zeigt Ihnen diese „stille Verschlechterung", bevor der Kunde es merkt.
  2. Zeitreise ohne Zeitmaschine: Wenn Sie heute eine neue Sicherheitsregel einführen, können Sie im Logbuch nachschauen: „Wann ist dieses Verhalten zum ersten Mal aufgetaucht?" Sie müssen nicht das ganze Programm von vor einem Jahr neu bauen und testen. Die Daten sind schon da.
  3. Bessere Zusammenarbeit: Statt nur zu sagen „Der Code ist anders", können Sie sagen: „Schau mal, bei dieser Änderung hat sich das Verhalten von Funktion X verändert. Ist das gewollt?" Das macht Code-Reviews viel sinnvoller.

Wie funktioniert das technisch? (Ganz einfach)

Der Autor hat einen kleinen Prototyp gebaut, der wie ein digitaler Kellner funktioniert:

  • Er läuft neben dem normalen Test-Programm mit.
  • Er notiert alles Wichtige (Eingaben, Ausgaben, Zeit) in einem sehr effizienten Format (wie ein riesiges Excel-Sheet, das aber super schnell ist).
  • Er speichert das alles in einer Datenbank, die direkt mit dem Code-Verlauf verbunden ist.

Das Fazit

Bisher behandeln wir Software wie ein Buch: Wir ändern die Wörter und speichern die Versionen.
Marcus Kessel sagt: „Nein, Software ist wie ein Film." Wir müssen nicht nur das Drehbuch speichern, sondern auch die Aufführung.

Wenn wir das tun, verlieren wir nicht mehr den Überblick darüber, was unsere Software wirklich tut, sondern nur darüber, wie sie aussieht. Es ist wie der Unterschied zwischen einem Rezept und dem tatsächlichen Geschmack des Gerichts. Mit diesem Ansatz machen wir das „Geschmackserlebnis" der Software zu einem ersten Bürger (First-Class Citizen), den wir versionieren, suchen und analysieren können.

Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?

Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.

Digest testen →