Charakterization Tests (oder Golden-Master-Tests) werden oft verwendet, um das Verhalten von unbekannten Code zu fixieren. Dabei wird der Zustand vor und nach einer Interaktion aufgezeichnet. In späteren Replays müssen die gleichen Zuständen durchlaufen werden.

In diesem Workshop zeigen wir:

  • wie man mit Entwicklungswerkzeugen Characterization-Tests generieren kann (Record)
  • wie man mit einer generierten Suite von Characterization Tests refactorn kann (Refactor)
  • die Characterization-Tests werden ständig ausgeführt (Replay)
  • und bei Bedarf werden neue generiert
  • für beliebige Applikationen (nicht nur Web- oder GUI-Applikationen)
  • ergänzend gibt es eine Anleitung für die Charakterisierung von Ausnahmen, globale Seiteneffekten, Input/Ouput

Zum Mitentwickeln benötigen Teilnehmer ein Notebook mit Java 8. Eine IDE und ein installiertes Maven 3 würde ich empfehlen.

Für den Workshop verwenden wir das Werkzeug Testrecorder, der Fokus liegt auf einer Umsetzung mit Java. Das Konzept ist aber auf viele Programmiersprachen übertragbar und es besteht natürlich die Möglichkeit hier auch Hinweise für Lösungen in anderen Sprachen zu erhalten.

Im Downloadsbereich befinden sich die Folien und die Aufgabenstellungen aus dem Workshop. Die vollständigen Quellen mit dem im Workshop verwendeten Beispielprojekt und den Aufgabenstellen und Konfigurationsdateien befinden sich auf GitHub.

Stefan Mandel andrena objects ag

Stefan Mandel arbeitet als Software-Entwickler bei andrena objects ag. Im Alltag kümmert er sich hauptsächlich um Clean Code und Automatisierte Tests. In der Freizeit fokussiert er sich auf Compilerbau und Programmanalyse (speziell für die JVM).