Mutation Testing: Sind Deine Tests gut?
Coverage zeigt, welcher Code ausgeführt wurde – nicht, ob Tests kleine Verhaltensänderungen bemerken. Mutation Testing baut kontrolliert Fehler ein und prüft, ob die Tests darauf reagieren.
ls -lt posts/
Über Systeme, Tooling und das gelegentliche Yak-Shaving.
Coverage zeigt, welcher Code ausgeführt wurde – nicht, ob Tests kleine Verhaltensänderungen bemerken. Mutation Testing baut kontrolliert Fehler ein und prüft, ob die Tests darauf reagieren.
Mehr Signale in die Schleife: Type Hints mit mypy, Ruff, Coverage und Claude-Code-Hooks. Schnelle Checks laufen nach Änderungen, die volle Suite vor dem Stopp – nebenbei kommt der Reroll dazu.
Nahrung steht in der Rule of 3 weit hinten – und gerade deshalb lohnt kein riskantes Pflanzenexperiment. Was Into the Wild über Kalorien, Foraging und falsche Sicherheit lehrt.
5.166 Zeilen C++-Tabellen, vier Enums, die nur per Position dazu passen, und ein Regelwerk, das alles in place umbaut. Teil 5 zeigt, wie die Spieldaten aus der Referenz gedumpt, generiert und gegen sie geprüft werden – und was eine -2 in den Fixtures verriet.
Beispieltests prüfen, woran Du gedacht hast. Hypothesis erzeugt Testdaten aus Strategien, sucht Gegenbeispiele und schrumpft Fehler auf kleine, nachvollziehbare Fälle.
Explodierende Würfel und Vorteil/Nachteil zeigen, wie grüne Tests täuschen können: Overfitting, geschwächte Tests, unvollständige Semantik und Hänger. Property-Based Testing macht die Schleife robuster.
Die ersten portierten Zeilen: der Zufallsgenerator, der in Python exakt dieselben Zahlen liefern muss wie in C++. Teil 4 zeigt, warum die Testvektoren aus der Referenz kommen, was Seeds 0, 1 und INT_MAX gemeinsam haben und was Python-Zufall an Laufzeit kostet.
Recursive Descent ist die zugänglichste Art, einen Parser zu bauen: eine Funktion pro Grammatikregel, Präzedenz fällt aus der Verschachtelung. Gezeigt an einem kleinen Taschenrechner.
Der naive String-Zerteiler stößt bei 4d6kh3 an seine Grenzen. Wir trennen Tokenizer, Parser und Evaluator – unter Testschutz, der Regressionen sichtbar macht, aber nicht jede ungetestete Änderung erkennen kann.
Wasser, so weit das Auge reicht – und kein Tropfen trinkbar. Warum Meerwasser tödlich ist, wie eine Solardestille funktioniert und warum Regen Dein bester Freund auf See ist.