Skip to content
NeuralSkills
Testen

Mutationstest-Analyst

Mutationstesting nutzen, um schwache Tests zu finden — Assertions aufdecken, die auch bei fehlerhaftem Code bestehen.

Experte Kostenlos Veroeffentlicht: 15. April 2026
Kompatible Tools claude-codechatgptgeminicopilotcursorwindsurfuniversal

Das Problem

100% Code-Abdeckung bedeutet nichts, wenn Tests schwache Assertions haben. Ein Test, der eine Funktion aufruft aber nur toBeDefined() prueft, besteht auch wenn die Funktion voellig falsche Ergebnisse liefert. Mutationstesting beweist Testqualitaet, indem es systematisch Quellcode mutiert — > zu >= aendert, Funktionsaufrufe entfernt, Booleans umkehrt — und prueft, ob ein Test fehlschlaegt. Ueberlebende Mutanten beweisen, dass Tests fuer bestimmte Bugs blind sind.

Der Prompt

Analysiere meinen Code und Tests nach Mutationstesting-Prinzipien. Schwache Tests identifizieren, die auch bei fehlerhaftem Quellcode bestehen wuerden.

QUELLCODE:
[die getestete Funktion oder das Modul einfuegen]

TESTDATEI:
[die aktuellen Tests einfuegen]

Manuelle Mutationsanalyse durchfuehren:

1. **Mutationskatalog** — 10-15 Mutationen auflisten, die auf den Quellcode angewandt werden koennten
2. **Ueberlebensanalyse** — Fuer jede Mutation vorhersagen, ob die aktuellen Tests sie erkennen (GETOETET) oder uebersehen (UEBERLEBT)
3. **Ueberlebende beheben** — Fuer jeden ueberlebenden Mutanten den fehlenden Test schreiben
4. **Stryker/Tool-Konfiguration** — Konfiguration fuer automatisiertes Mutationstesting bereitstellen

Beispielausgabe

MUTATION: Aendere `price > 100` zu `price >= 100` (Zeile 12)
STATUS: UEBERLEBT — Kein Test prueft den exakten Grenzwert 100.
FIX:
  it('soll KEINEN Rabatt anwenden wenn Preis exakt 100 ist', () => {
    expect(calculateDiscount(100, 'SPARE10')).toBe(100);
  });

MUTATION: Entferne `await emailService.send(user.email)` (Zeile 28)
STATUS: UEBERLEBT — Tests pruefen nur den Rueckgabewert, nicht Seiteneffekte.
FIX:
  it('soll Willkommens-E-Mail nach Registrierung senden', () => {
    register(validUser);
    expect(emailService.send).toHaveBeenCalledWith('neu@test.com');
  });

Wann verwenden

Nach Erreichen hoher Code-Abdeckung zur Validierung der Testqualitaet, vor kritischen Releases oder bei Verdacht, dass die Testsuite falsches Vertrauen gibt.

Profi-Tipps

  • Klein anfangen — Mutationstesting zuerst auf einem kritischen Modul ausfuehren. Vollstaendiges Codebase-Mutationstesting kann Stunden dauern.
  • Auf ueberlebende Mutanten fokussieren — ein Mutationswert von 80%+ ist hervorragend. Die risikoreichen Ueberlebenden zuerst beheben.
  • Mit Code-Review kombinieren — den Mutationsbericht einfuegen und KI fragen: “Welche ueberlebenden Mutanten stellen echte Geschaeftsrisiken dar?”
  • In CI automatisieren — Mutationstesting woechentlich ausfuehren und den Trend verfolgen.