Eliminierung technischer Schulden mit PHPStan, Rector PHP und PHPUnit. Über 20 Jahre Praxiserfahrung in skalierbaren Backends.
- Aktualisiert:
- Autor:
- Roland Golla
Was ist StrykerJS
Inhalt
StrykerJS mit NCA: Schnelle Hilfe vom Experten
Gesetzliche Konformität & Inklusion. Optimierung von Performance und Conversion durch radikal nutzerzentriertes, universelles Design.
Skalierbare KI-Systeme mit echtem Code Ownership. CI/CD, Backup-Strategien und Infrastruktur, die mit deinem Team wächst.
So funktioniert Mutation Testing in der Praxis
export function isValidPrice(price) {
return price > 0;
}
import { expect, it } from 'vitest';
import { isValidPrice } from './price.js';
it('erkennt einen gueltigen Preis', () => {
expect(isValidPrice(10)).toBe(true);
expect(isValidPrice(-5)).toBe(false);
});
StrykerJS installieren und den ersten Lauf starten
cd mein-projekt
npm init stryker@latest
npx stryker run
npm install --save-dev @stryker-mutator/core @stryker-mutator/vitest-runner @stryker-mutator/typescript-checker
{
"$schema": "./node_modules/@stryker-mutator/core/schema/stryker-schema.json",
"testRunner": "vitest",
"mutate": ["src/**/*.ts", "!src/**/*.spec.ts", "!src/**/*.test.ts"],
"checkers": ["typescript"],
"tsconfigFile": "tsconfig.json",
"reporters": ["progress", "clear-text", "html"],
"concurrency": "50%",
"thresholds": {
"high": 80,
"low": 60,
"break": 60
}
}
Neu in StrykerJS 10: das bringt das Release vom August 2026
StrykerJS Releases im Überblick
| Version | Datum | Wichtigste Neuerung |
|---|---|---|
| 10.0.0 | 14. August 2026 | Node.js 22 Pflicht, TypeScript 7 experimentell, empty-expression-mutator, Mutant Filtering |
| 9.6.0 | 27. Februar 2026 | Concurrency als Prozentwert der CPU Kerne konfigurierbar |
| 9.5.0 | 30. Januar 2026 | Option testFiles grenzt die laufenden Tests ein, Vitest Fixtures werden unterstützt |
| 9.4.0 | 23. November 2025 | Unterstützung für Vitest 4 |
| 9.1.0 | 30. August 2025 | Mutation Server Protocol als Basis für das VS Code Plugin |
Mutation Testing direkt in der IDE
Warum Mutation Testing bei KI generiertem Code wichtiger wird
StrykerJS in CI: Laufzeit im Griff behalten
npx stryker run --incremental
See which mutants survive or are killed without leaving your editor.
Unsere Erfahrung mit Mutation Testing
Frontend 2025: Optimieren Sie Ihre Webseite mit Astro JS und nutzen Sie die Vorteile der Barrierefreiheit
Optimieren Sie Ihre Webseite mit Astro JS und nutzen Sie die Vorteile einer schnellen, sicheren und barrierefreien Webseite. Erfüllen Sie die gesetzlichen Anforderungen und verbessern Sie die Benutzererfahrung Ihrer Webseite. Mit Astro JS können Sie die Ladezeit reduzieren, die Sicherheit maximieren und die SEO-Optimierung verbessern. Kontaktieren Sie uns, um mehr zu erfahren und um Ihre Webseite auf ein neues Level zu heben.
Häufige Fragen zu StrykerJS
Welche StrykerJS Version ist 2026 aktuell?
Aktuell ist StrykerJS 10.0.0 vom 14. August 2026. Das Hauptpaket heißt @stryker-mutator/core, alle offiziellen Plugins tragen dieselbe Versionsnummer. Davor war 9.6.1 vom 10. April 2026 aktuell. Das Projekt folgt Semantic Versioning, ein Major Release pro Jahr ist die Regel und wird meist vom Ende des Supports einer Node Version ausgelöst.
Welche Node Version braucht StrykerJS 2026?
StrykerJS 10 setzt Node.js 22 oder höher voraus. Der Support für Node.js 20 ist mit dem August Release entfallen. Das ist der einzige Breaking Change der Version. Wer noch auf Node 20 arbeitet, bleibt vorerst auf der Linie 9.6.1 oder hebt zuerst die Node Version in CI und in der lokalen Umgebung an.
Was ist neu in StrykerJS 10 im Jahr 2026?
Neu sind der empty-expression-mutator, Mutant Filtering für gezieltere Läufe und experimenteller Support für TypeScript 7 im Checker. Bricht ein Lauf unerwartet ab, wird der bis dahin erreichte inkrementelle Report trotzdem gespeichert. Dazu kommen Babel 8, Unterstützung für Mocha 12 und weniger Warnungsrauschen im Vitest Runner.
Unterstützt StrykerJS 2026 Vitest 4?
Ja. Der Support für Vitest 4 kam mit Version 9.4.0 im November 2025, Fixtures über test.extend folgten in 9.5. Den Browser Mode unterstützt der Runner seit Version 9.0. Der Vitest Runner wird als eigenes Paket installiert und in der Konfiguration über testRunner ausgewählt.
Lohnt sich Mutation Testing 2026 bei KI generiertem Code?
Gerade dann. KI Agenten erzeugen leicht Tests, die jede Zeile berühren und trotzdem nichts behaupten. Coverage bewertet solche Tests positiv, Mutation Testing nicht: Ein Test ohne echte Zusicherung tötet keinen Mutanten und der Score fällt sofort. Das macht den Mutation Score zur ehrlichsten Metrik für generierte Testsuiten.
Was ist der Unterschied zwischen Code Coverage und Mutation Score?
Coverage misst, ob eine Zeile während der Tests ausgeführt wurde. Der Mutation Score misst, ob ein Fehler in dieser Zeile aufgefallen wäre. Eine Testsuite kann 100 Prozent Coverage haben und trotzdem keinen einzigen Grenzfall prüfen. Coverage ist eine Hygienemetrik, der Mutation Score eine Qualitätsaussage.
Wie hoch sollte der Mutation Score sein?
Ein Wert ab 80 Prozent gilt als gut. Die 100 ist kein sinnvolles Ziel, weil die letzten Punkte fast immer aus äquivalenten Mutanten und aus Code bestehen, dessen Verhalten egal ist. Sinnvoller ist eine break Schwelle in der Konfiguration, die den Lauf scheitern lässt, sobald der Score unter einen vereinbarten Wert fällt.
Wie lange dauert ein Mutationslauf?
Deutlich länger als die Testsuite selbst, denn für jeden Mutanten laufen Tests erneut. Drei Hebel senken die Zeit: Coverage Analyse pro Test, sodass nur relevante Tests laufen, der inkrementelle Modus, der nur Geändertes neu rechnet, und eine passende Parallelität. Seit Version 9.6 lässt sich die Worker Anzahl als Prozentwert der CPU Kerne setzen.
Was sind äquivalente Mutanten?
Das sind Mutanten, deren veränderter Code sich exakt wie das Original verhält. Sie lassen sich prinzipiell nicht töten und drücken den Score unverdient. StrykerJS bietet drei Auswege: den Mutator über excludedMutations abschalten, einen Kommentar Stryker disable an die Stelle setzen oder ein Ignore Plugin für wiederkehrende Muster schreiben. Ignorierte Mutanten bleiben im Report sichtbar.
Funktioniert StrykerJS mit Jest?
Ja. Neben Vitest gibt es offizielle Runner für Jest, Mocha, Jasmine, Karma, CucumberJS und den Test Runner von Node.js über den Tap Runner. Die Wahl steht in der Konfiguration unter testRunner, das passende Plugin wird als Dev Dependency installiert. Für Angular, React, Vue, Svelte und Node gibt es eigene Setup Guides.
Kann ich Mutation Testing in VS Code nutzen?
Ja. Seit November 2025 gibt es ein offizielles Plugin für Visual Studio Code. Es zeigt Mutanten im Test Explorer, blendet überlebende Mutationen direkt im Editor ein und zeigt den veränderten Code als Diff. Voraussetzung ist StrykerJS ab Version 9.3.0. Technische Basis ist das Mutation Server Protocol, das seit 9.1 implementiert ist.
Gibt es Mutation Testing auch für PHP oder andere Sprachen?
Ja. Für PHP ist Infection das verbreitete Framework, für C Sharp gibt es Stryker.NET und für Scala Stryker4s, beide aus derselben Projektfamilie wie StrykerJS. Für Java ist PIT der Standard. Das Konzept ist überall identisch, nur Mutatoren und Konfiguration unterscheiden sich.
Wie binde ich StrykerJS in eine CI Pipeline ein?
Als eigener Job neben Unit Tests und statischer Analyse, nicht als Teil des normalen Testlaufs. Bewährt hat sich ein inkrementeller Lauf bei jedem Push und ein vollständiger Lauf nachts oder vor dem Release. Der HTML Report wird als Artefakt abgelegt, die break Schwelle entscheidet über Erfolg oder Abbruch des Jobs.