- Startseite
- Skills
- Fehlerbehebung
- Stille-Fehler-Finder
Stille-Fehler-Finder
Fehler finden, die keine Fehlermeldung erzeugen — Logikfehler, falsche Berechnungen und stille Datenkorruption.
Das Problem
Die schwierigsten Fehler sind jene, die nie einen Error werfen. Die Funktion gibt zurueck, die API antwortet mit 200, die Seite rendert — aber die Daten sind falsch. Eine Preisberechnung weicht um 3 Cent ab, ein Filter verwirft gueltige Datensaetze, eine Datumskonvertierung verliert Zeitzonen-Information. Kein Stack-Trace, kein Error-Log, kein roter Text in der Konsole. Nur still falsche Ergebnisse, die wochenlang unbemerkt bleiben koennen.
Der Prompt
Du bist ein Analyst fuer stille Fehler. Hilf mir, einen Fehler zu finden, der keinen Error produziert — nur inkorrekte Ergebnisse:
ERWARTETES ERGEBNIS: [was passieren sollte — praezise mit Zahlen, Formaten, Bedingungen]
TATSAECHLICHES ERGEBNIS: [was tatsaechlich passiert — exakte Werte]
DIE ABWEICHUNG: [wie genau unterscheidet sich das Ergebnis? Um wie viel? Welche Felder? Welche Faelle?]
CODE ZUR PRUEFUNG:
[vollstaendige Funktion oder Daten-Pipeline einfuegen]
Fuehre eine Stille-Fehler-Analyse durch:
1. **Invarianten-Extraktion**: Welche mathematischen oder logischen Invarianten MUESSEN gelten, damit die Ausgabe korrekt ist?
2. **Annahmen-Audit**: Fuer jede Invariante beweisen, dass sie gilt, indem der Code durchlaufen wird. Welche wird verletzt?
3. **Randfaelle-Matrix**: Randfaelle generieren, die jede Invariante brechen koennten: leere Eingabe, Null, Negativ, Grenzwerte, Unicode, Zeitzonen, Gleitkomma-Praezision.
4. **Datenfluss-Verfolgung**: Den exakten Eingabewert durch jeden Transformationsschritt verfolgen. Wo divergiert der Wert?
5. **Typ-Konvertierungsfallen**: Implizite Typumwandlungen pruefen, die Werte still veraendern.
6. **Der Abweichungskatalog**: Off-by-One? Off-by-Timezone? Off-by-Encoding? Off-by-Rounding? Das Abweichungsmuster kategorisieren.
Beispiel-Ausgabe
Verletzte Invariante: "Bestellsumme = Summe von (Preis * Menge) fuer alle Artikel" — scheitert bei prozentualen Rabatten
Annahmen-Audit: Code wendet Rabatt NACH Steuer an, Geschaeftsregel erwartet Rabatt VOR Steuer
Tatsaechliche Divergenz: Bei 99.99-Artikeln — Gleitkomma: 99.99 * 3 = 299.96999999999997, abgeschnitten auf 299.96 statt gerundet auf 299.97
Fix: Math.round(total * 100) / 100 oder eine Dezimal-Bibliothek fuer Finanzberechnungen verwenden
Wann verwenden
Diesen Skill einsetzen, wenn die Ausgabe falsch ist, aber keine Fehler in der Konsole oder den Logs erscheinen. Ideal fuer Finanzberechnungen, Datentransformationen, Filterlogik und Code, dessen Ergebnis technisch gueltig, aber sachlich falsch ist.
Profi-Tipps
- Zuerst die Abweichung eingrenzen — zu verstehen, WIE das Ergebnis falsch ist, zeigt sofort die Fehlerkategorie.
- Snapshot-Assertions hinzufuegen — fuer komplexe Transformationen bekannte gute Ausgaben als Test-Fixtures speichern und dagegen vergleichen.
- JavaScripts Typ-Konvertierung beachten —
"5" + 3 = "53"aber"5" - 3 = 2. Verantwortlich fuer unzaehlige Fehlberechnungen. - Zeitzone und Locale pruefen — wenn die Abweichung mit dem UTC-Offset korreliert, liegt der Fehler in der Datums-/Zahlenformatierung.