SAEC Days 2020. online, 23.7.2020
Das Spock Testframework verwendet das ausdrucksstarke Groovy um Behaviour Driven Development (BDD) als Testansatz zu realisieren. Neben einer klaren und schlanken Teststruktur punktet es außerdem mit lesbaren Reports, die dank einer Template-Engine auch in AsciiDoc generiert werden können. Verfolgt man BDD mit Spock konsequent während der Entwicklung, dann entsteht eine Testsuite, die eine sehr hohe Zeilenabdeckung von über 80% erzeugt.
Allgemein anerkannt ist, dass eine so hohe Testabdeckung ein gutes Sicherheitsnetz bei Änderungen am Code darstellt.
Doch diese Sicherheit trügt, wie wir im zweiten Teil des Vortrags zeigen werden. Denn eine hohe Zeilenabdeckung schützt nicht vor Fehlern, wenn die Tests eine niedrige Qualität vorweisen. Hier kommt Mutationstesten ins Spiel. Es sät automatisiert Mutationen in den Code und führt die Testsuite aus. Schlägt mindestens ein Test fehl ist die Mutation getötet. Die Güte der Tests kann anschließend aus der Prozentzahl der getöteten Mutanten ermittelt werden.
Der Vortrag zeigt, wie sich Spock mit Mutationstesten zu einem unschlagbaren Duo kombinieren lässt.
http://spockframework.org/
http://pitest.org/
https://github.com/JohannesDienstDBSystel/spock-mutation-testing