Testsuites auf dem Prüfstand
Längst schon gehört das Schreiben von Tests zum alltäglichen Aufgabenfeld von Entwicklern. Dabei befassen sich die Informatiker nun zunehmend mit der Einordnung der Qualität ihrer Arbeit, mit dem Niveau ihrer Testsuites. Kevin Wittek (Artikel von Kevin Wittek), Mitarbeiter am Institut für Internet-Sicherheit – if(is), beschreibt im aktuellen Java Magazin ein Tool, das bereits während der Entwicklungszeit eingesetzt werden kann. Klarer Vorteil, die Tests können quasi simultan verbessert werden, während der Entwickler sie schreibt.
Der Arbeitsalltag hat Informatiker Wittek auf die Idee gebracht: „Für viele von uns sind Tests ein ständiger Begleiter im Entwickleralltag und für manche womöglich ein zuverlässiger Partner, der es uns erlaubt, die Kontrolle über unseren Produktionscode zu behalten. So ermöglicht es uns eine gute Testsuite, unseren Code kontinuierlich zu erweitern und einem Refactoring zu unterziehen, ohne dass wir uns Sorgen machen müssen, bestehende Funktionalitäten dabei zunichte zu machen“, beschreibt Kevin Wittek seinen Gedankengang.
„Aber wie kann ich beim Refactoring meines Testcodes Sicherheit erhalten? Woher weiß ich, dass ich einer Testsuite trauen kann, wenn ich in ein bestehendes Projekt komme? Wie kann ich sicherstellen, dass ich effektive Tests schreibe? Und woher weiß ich, dass mein Team effektive Tests schreibt?“, so der if(is)-Mitarbeiter weiter.
Um diesen Fragen auf den Grund zu gehen, widmet sich Wittek in seinem Artikel dem Mutation Testing mit PIT: PIT wurde laut Autor im Jahre 2010 von Henri Coles unter der Apache License veröffentlicht und stand ursprünglich für „Parallel Isolated Test“. Der initiale Anwendungsfall war die parallelisierte Ausführung von JUnit-Tests in separaten Class Loadern. Das diente letztlich als Grundlage, um aus PIT ein Mutation-Testing-System zu machen. Detailliert geht Kevin Wittek im Java-Artikel auf die Vorzüge dieser Testing-Variante ein und schildert seine Vorgehensweise.
Final kommt der Informatiker zu dem Ergebnis, dass Mutation Testing eine gute Technik ist, die verschiedene Vorteile bietet: Fehlende Test-Cases oder fehlerhafte Tests können identifiziert werden. Weiterhin bietet es ein Sicherheitsnetz, um die Tests einem Refactoring zu unterziehen. Außerdem können durch Equivalent Mutants Hinweise auf Code Smells und redundanten Code gegeben werden. Damit sei es, so Kevin Wittek, ein ideales Tool, um bei der Entwicklung unterstützend eingesetzt zu werden.
Den gesamten Artikel gibt es unter: https://public.centerdevice.de/e358f1eb-4943-47fc-b184-285335ee3774