Ctrl K
ComunidadGuías…

docs/novaberg-lesson_l_zeuge-prueft-die-funktion-nicht-ihre-verwendung.md

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Novaberg — Lesson: Ein Zeuge auf die Funktion sagt nichts über ihren Aufrufer

**Projekt:** Novaberg — The Nova Anima Resonance System
**Dokument:** Lesson — Die Rechnung stimmt, und der Node übergibt das Falsche
**Stand:** 31. August 2026
**Pfad:** novaberg/docs/novaberg-lesson_l_zeuge-prueft-die-funktion-nicht-ihre-verwendung.md
**Typ:** Lesson (`_l`) — Archiv, wird nicht gekürzt
**Auslöser:** drei Gegenproben blieben grün, während der Node die falsche Größe las
**Verwandt:** `novaberg-lesson_l_groesse-am-falschen-ort.md` · `20_TESTS/zwei-quellen`

---

## 1. Die Fehlerklasse

Eine reine Funktion wird isoliert bezeugt: Eingang rein, Ergebnis geprüft, grün. Der
Aufrufer übergibt ihr aber die falsche Größe — und **kein Zeuge schlägt an**, weil die
Funktion tut, was sie soll.

> **Die Gegenprobe bestätigt das.** Baut man die Funktion zurück, wird der Zeuge rot und
> alles sieht richtig aus. Baut man den *Aufruf* falsch, bleibt er grün.

---

## 2. Der Fund

`[gemessen]` 31.08.2026, beim Bau des Faden-Tors. Zwei Gegenproben am fertigen Node:

| Rückbau | erwartet | tatsächlich |
|---|---|---|
| Emotion wieder aus dem Verlauf statt aus dem Turn | rot | **grün** |
| Ausschlag von der Führung statt von der Fadenemotion | rot | **grün** |

Beide Zeugen prüften `_staerkstes_segment()` und `_ausschlag_der_emotion()` — beide
Funktionen waren korrekt, und beide blieben es. Was der Node **damit machte**, prüfte
niemand.

**Derselbe Tag, dieselbe Falle, eine Ebene tiefer.** Am Morgen hatte ein Zeuge die
Gravitationsformel in der Testdatei **nachgerechnet**, statt sie aufzurufen; die Gegenprobe
blieb grün, obwohl die Normierung im Produktivcode zurückgebaut war. Die Abhilfe damals war
eine aufrufbare Funktion — und genau die wurde am Abend isoliert bezeugt.

> **Die Ursache ist beide Male dieselbe: Der Zeuge prüft, was leicht erreichbar ist.** Eine
> Rechnung hinter einer Datenbankabfrage wird nachgerechnet; ein Node mit Schreibpfad wird
> durch seine Hilfsfunktionen ersetzt.

---

## 3. Die Regel

**Mindestens ein Zeuge je Bauteil läuft den Aufrufer und liest das Ergebnis dort, wo es
landet.** Bei einem Node, der schreibt, heißt das: Zustand bauen, Node rufen, **die Zeile
zurücklesen**.

```
zustand = {…}                      # der Verlauf führt mit A, der Turn perzipiert B
praegung_pruefen(zustand)          # der Aufrufer, nicht die Hilfsfunktion
zeile = SELECT emotion FROM …      # was tatsächlich ankam
assert zeile == "B"
```

Der Zeuge kostete zehn Zeilen und fing beide Rückbauten sofort.

**Die Prüffrage vor jedem Zeugen:** *Könnte ich den Aufruf falsch machen, ohne dass dieser
Test rot wird?* Lautet die Antwort ja, prüft er die Funktion und nicht den Bauteil.

---

## 4. Verwandtschaft

`20_TESTS/zwei-quellen` beschreibt den Fall, in dem der Zeuge **zu viel** sieht — eine
Zeichenfolge, die auch von woanders kommt. Hier sieht er **zu wenig**: den Bauteil ohne
seinen Kontext. Beide Male entscheidet der Ausschnitt, und beide Male findet es die
Gegenprobe — sofern sie am richtigen Ort ansetzt.