Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Fehler mit einem KI-Assistenten finden

Nach dieser Lektion: Ich kann einem Assistenten geben, was er für die Fehlersuche braucht, und prüfen, ob seine Korrektur den Fehler wirklich behebt.

Lektion, 60 Min.4 BefehleLab für KI-Coding-Agenten: mit opencode Code erklären und reparieren lassen und die Arbeit prüfen

Der Test scheitert, was nun?

Ein Test scheitert, und Sie wissen nicht, warum. Sie können den Assistenten bitten, den Fehler zu finden. Mit einer vagen Bitte, etwa „es geht nicht“, rät er.

Mit dem richtigen Material findet er die Ursache viel eher. Diese Lektion zeigt, was Sie ihm geben, und wie Sie prüfen, ob seine Korrektur den Fehler erklärt oder ihn nur versteckt.

Am Ende dieser Lektion

Notiz

Ich kann einem Assistenten geben, was er für die Fehlersuche braucht, und prüfen, ob seine Korrektur den Fehler wirklich behebt.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Fehlschlagender Testein Test, der den Fehler zeigtschnitt([2, 4, 6])
Fehlermeldungder Text, den das Programm bei einem Fehler ausgibt
Ursacheder Grund, aus dem der Fehler auftritt
Notlösungeine Änderung, die nur den gemeldeten Fall flickt
Kontrollfälleweitere Fälle, die nach der Korrektur noch bestehen müssen

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Was der Assistent für die Fehlersuche braucht

Geben Sie vier Dinge. Erstens den fehlschlagenden Test: den Aufruf, den erwarteten und den erhaltenen Wert. Zweitens die vollständige Fehlermeldung, nicht Ihre Zusammenfassung. Drittens, was Sie schon probiert haben. Viertens die Funktion selbst.

Der Assistent kann nur raten, was nicht auf dem Tisch liegt. Je genauer der Fall, desto weniger rät er.

Eine mögliche Anfrage an den Assistenten

So könnte eine Anfrage lauten: „schnitt([2, 4, 6]) gibt 6, ich erwarte 4. Hier ist die Funktion. Ich habe die Schleife schon geprüft, sie addiert richtig. Nenne zuerst die Ursache, dann eine einzige Änderung.“

Was zurückkommt, ist jedes Mal anders. Lassen Sie sich die Ursache vor der Änderung nennen, und ändern Sie immer nur eine Sache.

Drei Fassungen derselben Funktion

Die Runs unten schreiben in den Ordner demo-fehler/ eine Datei mit drei Fassungen eines Durchschnitts: die fehlerhafte, eine Notlösung und die richtige. Dazu kommt ein Kontrollskript mit fünf Fällen.

Alles ist von Hand geschrieben und keine Antwort eines Assistenten. Zuerst läuft nur der gemeldete Fall.

Drei Fassungen einer Funktion schreiben

Befehl
docker exec -w /home/node/project agent sh -c "mkdir -p demo-fehler && printf '%s\n' '// Durchschnitt einer Liste von Tagesumsaetzen.' 'function schnitt(liste) {' '  let summe = 0;' '  for (const x of liste) summe = summe + x;' '  return summe / (liste.length - 1);' '}' '// Eine Notloesung: Sie flickt nur den gemeldeten Fall.' 'function notloesung(liste) {' '  if (liste.join() === \"2,4,6\") return 4;' '  return schnitt(liste);' '}' '// Die Korrektur, die den Fehler erklaert: durch die Anzahl teilen.' 'function richtig(liste) {' '  if (liste.length === 0) return 0;' '  let summe = 0;' '  for (const x of liste) summe = summe + x;' '  return summe / liste.length;' '}' 'module.exports = { schnitt, notloesung, richtig };' > demo-fehler/schnitt.js"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Das Kontrollskript schreiben

Befehl
docker exec -w /home/node/project agent sh -c "mkdir -p demo-fehler && printf '%s\n' 'const funktion = require(\"./schnitt.js\")[process.argv[2]];' '// Jeder Fall: die Liste, dann der erwartete Durchschnitt.' 'const faelle = [[[2, 4, 6], 4], [[5], 5], [[1, 2], 1.5], [[10, 20, 30, 40], 25], [[], 0]];' 'const anzahl = process.argv[3] === undefined ? faelle.length : Number(process.argv[3]);' 'let fehler = 0;' 'for (const fall of faelle.slice(0, anzahl)) {' '  const erhalten = funktion(fall[0]);' '  if (erhalten === fall[1]) continue;' '  fehler = fehler + 1;' '  console.log(\"fehler: \" + process.argv[2] + \"(\" + JSON.stringify(fall[0]) + \") gibt \" + erhalten + \", erwartet \" + fall[1]);' '}' 'console.log(process.argv[2] + \": \" + fehler + \" Fehler, Fälle geprüft: \" + anzahl);' > demo-fehler/kontrolle.js"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Nur den gemeldeten Fall laufen lassen

Befehl
docker exec -w /home/node/project/demo-fehler agent node kontrolle.js schnitt 1

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Eine Notlösung besteht den gemeldeten Fall

Der gemeldete Fall scheitert, und das ist der Anfang der Suche. Die Notlösung gibt für genau diese Liste 4 zurück und rechnet sonst weiter falsch. Der gemeldete Fall besteht, der Fehler bleibt.

Eine gute Korrektur erklärt, warum der Fall gescheitert ist: Es wurde durch die Anzahl minus eins geteilt. Darum prüfen Sie sie auch an weiteren Kontrollfällen.

Notlösung und richtige Korrektur ausprobieren

Befehl
docker exec -w /home/node/project/demo-fehler agent sh -c "node kontrolle.js notloesung 1; node kontrolle.js notloesung; node kontrolle.js richtig"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Ein häufiger Fehler

Warnung

Viele denken, ein Fehler sei behoben, sobald der gemeldete Test grün ist. Das stimmt nur, wenn die Korrektur die Ursache beseitigt. Besteht nur dieser eine Fall, ist es eine Notlösung. Prüfen Sie darum immer auch Fälle, die Sie nicht gemeldet haben.

Beispiel: drei Fassungen im Vergleich

FassungGemeldeter FallAlle fünf Fälle
schnitt1 FehlerMehrere Fehler
notloesung0 Fehler3 Fehler
richtig0 Fehler0 Fehler

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Weiter: an einem anderen Fehler ausprobieren

Jetzt ist ein guter Moment, diese Ideen an einem anderen Fehler auszuprobieren. Der Fehler des Labs bleibt unberührt. Bauen Sie lieber in einer Kopie von shop.js absichtlich einen kleinen Fehler ein.

Geben Sie dem Assistenten Test, Meldung und Versuche, bitten Sie um die Ursache und eine einzige Änderung. Lassen Sie danach Kontrollfälle laufen und notieren Sie, ob er den Fehler erklärt hat.