Methodik & PraxisMethodik & Praxis

Mutation Testing in Theorie und Praxis

Java
Pitest
Qualität
Test

Abstract


Do. 8:45 - 9:30 Uhr | 2022

Unit Tests sind ein integraler Bestandteil im heutigen Entwicklungsprozess und niemand wird das wohl ernsthaft in Frage stellen. Wenn es jedoch darum geht, wie man die Qualität der Unit Tests messen kann, wird es schwieriger. Wann weiß ich, dass meine Tests gut sind und was heißt denn eigentlich ‚gut‘ in diesem Kontext? Metriken, wie die Test Coverage, sind sehr hilfreich, geben aber nur Hinweise und keine richtigen Antworten. Dies führt sogar manchmal zu sinnlosen Unit Tests, die nur geschrieben werden, um die Quality Goals zu erfüllen. Man kann sogar eine Situation konstruieren, in der ein Projekt eine Test Coverage von 100% hat, jedoch kein einziger Unit Test asserts oder ähnliches verwendet. Das Qualitätsziel ist hier übererfüllt und doch wird man so keinen einzigen Bug im Produktivcode finden. Aber wie steht es denn nun mit der Qualität der Unit Tests? Gibt es eine Möglichkeit, sie zu messen? Mutation Tests können uns hier wertvolle Antworten liefern. Sie detektieren sinnlose, unvollständige und auch fehlende Unit Tests. Ein HTML Report gibt einen tieferen Einblick in die Ergebnisse der Mutation Tests und man kann bis zu den betroffenen Codestellen navigieren. Die Einstiegshürde ist niedrig und man kann mit Mutation Tests jederzeit beginnen. Dennoch gibt es einige Dinge zu beachten. Idealerweise sollten Sie am Ende dieses Talks Lust haben, Mutation Tests sofort in Ihr erstes Projekt einzuführen. Ich möchte Ihnen mit einem Überblick zum Thema, Praxistipps und weiteren Hinweisen das entsprechende Rüstzeug dazu mitgeben.

Präsentation
Non-Sponsored TalkFortgeschritteneDeutsch

Vortragsimpressionen

Alexander John-Anacker

Alexander John-Anacker

www.sidion.de

Alexander John-Anacker ist als Senior Softwareentwickler bei sidion am Standort Frankfurt am Main tätig. Er hat langjährige Erfahrung mit Big Data sowie verteilten Anwendungen auf AWS. Aktuell unterstützt er Kunden beim Design und der Implementierung ihrer Geschäftsprozesse mit Microservices im Cloudnative Microservices Umfeld.