Gibt es einen modernen Ersatz für ein Mutationstest-Tool wie Jester für Java?

18

„Warum denkst du nur, dass deine Tests gut sind, wenn du es genau weißt? Manchmal sagt mir Jester, dass meine Tests luftdicht sind, aber manchmal kommen die Änderungen wie aus heiterem Himmel. Sehr zu empfehlen. ”- Kent Beck

Aber ich sehe, dass es nicht einmal einen Tag namens " Jester " im Stackoverflow gibt. Was ist der moderne Ersatz für Jester , wenn überhaupt? Wie kann man sicher sein, dass geschriebene Komponententests von Grund auf solide sind, außer dass Statistiken aus der Codeabdeckung von Tools wie Cobertura und Clover ermittelt werden ?

Aussenseiter
quelle
Ich habe meinen erklärenden Kommentar entfernt, weil Sie die Frage bearbeitet haben. :) Eine Google-Suche mit diesem Begriff liefert Ihnen 3 oder 4 Beispiele auf Anhieb. Konzentrieren Sie sich daher möglicherweise auf die konzeptionelle Frage, die Sie am Ende haben, damit Sie einige Ideen dazu erhalten, wie Sie das passende Tool am besten ausprobieren und auswählen können Deine Bedürfnisse?
Jcmeloni
@jcmeloni Gibt es einen Grund, warum der Narr nicht wirklich aufgehört hat?
Geek
Ich habe keine Ahnung; Ich habe es nie benutzt.
Jcmeloni

Antworten:

24

Soweit mir bekannt ist, ist der Mutationstest nach wie vor der beste automatisierte Prozess zur Messung der Qualität Ihrer Testsuite. Es gibt zwei gute moderne Ersetzungen für Spaßvogel

http://pitest.org (ich bin der Autor)

https://github.com/david-schuler/javalanche/

Ein detaillierter Vergleich zwischen ihnen, Jester und einigen anderen Systemen ist hier verfügbar

http://pitest.org/java_mutation_testing_systems/

Ich denke, der Hauptgrund, warum Jester nie abhob, war, dass es unglaublich langsam und sehr schlecht skaliert war.

PIT und Javalanche versuchen beide, dies auf ähnliche Weise anzugehen. Anstatt alle Tests in einem Projekt blind für eine Mutation auszuführen, erfassen sie zunächst die Linienabdeckung und führen nur die Tests aus, die tatsächlich eine Mutation treffen können.

PIT führt auch verschiedene andere Optimierungen durch, um die Dinge zu beschleunigen, und bietet die Option, die Ergebnisse früherer Analysen wiederzuverwenden, um die Berechnungskosten für nachfolgende Läufe erheblich zu reduzieren.

Henry
quelle
Das PIT-Eclipse-Plugin wird in Indigo nicht installiert. Dies scheint ein Fehler zu sein.
Narendra Pathai
@NarendraPathai Versuchen Sie, das Problem über die Google-Gruppe pit zu melden. Phil Glover, der das Plugin betreut, kann möglicherweise helfen.
Henry