Zuruck zum Glossar
Testing

Mutation Testing

Eine Technik zur Bewertung der Testqualität durch Einführen kleiner Änderungen (Mutationen) am Code und Prüfen, ob Tests diese erkennen. Unerkannte Mutationen weisen auf schwache Tests hin.

Definition

Mutation Testing erstellt "Mutanten" — Kopien des Codes mit kleinen Änderungen wie dem Umkehren von Operatoren (> zu <), dem Entfernen von Anweisungen oder dem Ändern von Rückgabewerten. Gute Tests sollten beim Ausführen gegen Mutanten fehlschlagen (sie "töten"). Überlebende Mutanten offenbaren Lücken in der Testabdeckung oder Assertions. Tools sind Stryker (JavaScript/TypeScript), PIT (Java) und mutmut (Python). Mutation Score = getötete Mutanten / Gesamtmutanten.

Warum es wichtig ist

Die Codeabdeckung kann hoch sein, während Tests immer noch schwach sind (z.B. Tests, die Code ausführen ohne Ergebnisse zu prüfen). Mutation Testing misst die tatsächliche Testeffektivität. Forschung zeigt, dass Mutation Testing 2-4x mehr Defekte findet als abdeckungsbasiertes Testen.

Beispiel

Code: if (age >= 18) return true. Ein Mutant ändert >= zu >. Wenn Tests dies nicht erkennen (alle Testbenutzer sind >18, keiner genau 18), überlebt der Mutant und offenbart einen fehlenden Grenzfall-Test.

Verwandte Begriffe

mutation testingStrykerPITmutant testingtest qualitymutation score

Automatisieren Sie Code Review mit diffray

Multi-Agent KI-System fur Code Review. Findet automatisch Bugs, Sicherheitslucken und Architekturprobleme.