Stryker: Mit Mutanten gegen schlechte Tests testen

Stryker: Mutation-Testing für JavaScript jetzt auch für .NET und Scala vorgestellt
Keine Kommentare

Teste den Test: Mit Stryker steht ein Framework für Mutation-Tests zur Verfügung, das sowohl für JavaScript als auch .NET und Scala entwickelt wird. Fertig ist bislang jedoch nur die JavaScript-Version. Mutation-Tests zeigen auf, dass eine gute Code-Coverage beim Testen noch nicht alles ist: Wer die meisten Mutanten findet, gewinnt!

Eine Code-Coverage von 100 Prozent bedeutet noch nicht unbedingt, dass wirklich jeder mögliche Fehler durch die vorhandenen Tests gefunden wird. Um herauszufinden, wie gut die Test-Abdeckung wirklich ist, können Entwickler darum zu Mutation-Tests greifen. Dabei werden kleine Fehler, sogenannte Mutants, in den Code eingefügt. Dann wird geprüft, wie viele davon die vorhandene Test-Abdeckung finden kann. Auch bei einer Code-Coverage von 100 % sind das nicht immer alle. Mit dem Tool Stryker steht Entwicklern eine Option zur Durchführung dieser Art von Tests für Tests in JavaScript-, .NET- und Scala-Anwendungen zur Verfügung. Die JavaScript-Version des Tools liegt bereits in v2.5 vor. Neuer sind die Versionen für .NET und Scala, die bislang nur als Previews zur Verfügung stehen. Stryker.NET ist mit .NET Core und .NET Framework verwendbar und kann via NuGet bezogen werden. Stryker für Scala trägt die Bezeichnung Stryker4s und steht auf Maven Central zum Download bereit. Insbesondere bei der Scala-Variante verweisen die Entwickler des Tools jedoch darauf, dass es sich noch um eine frühe Preview-Version handelt, die noch nicht für den Einsatz in großen Projekten geeignet ist.

Stryker: Mutanten in JavaScript einfügen

Stryker für JavaScript kann mit TypeScript, React, Angular, Vue.js und Node.js verwendet werden. Für folgende Test-Runner stehen als Plug-ins zur Verfügung:

  • Jasmine
  • Jest
  • Karma
  • Mocha
  • Web Component Tester

Hinsichtlich der verwendeten Test-Frameworks ist Stryker grundsätzlich agnostisch gehalten, kann jedoch eine bessere Performance bieten, wenn coverageAnalysis: 'perTest' mit einem spezifischen Plug-in verwendet wird. Entsprechende Lösungen stehen derzeit für Jasmine und Mocha zur Verfügung. Wie einer kürzlich gestarteten Reddit-Diskussion zu entnehmen ist, scheint die Performance bislang noch eine große Hürde für die Verwendung des Tools darzustellen. Die Nutzung dieser Plug-ins könnte also vorteilhaft für Projekte sein, die eine größere Menge zu testender Tests umfassen.

Auf der Website von Stryker ist eine Beispiel-Anwendung zu finden, die die Funktionsweise des Tools demonstriert. Auch ein Handbuch steht zur Verfügung, das den Einstieg in die Arbeit mit Mutation-Tests vereinfachen soll. Alle Stryker-Versionen stehen unter Apache-2.0-Lizenz.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -