„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 ?
java
unit-testing
code-quality
tdd
Aussenseiter
quelle
quelle
Antworten:
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.
quelle