Testgetriebene Entwicklung in objektorientierten Sprachen setzt bislang meist auf beispielbasierte Testfälle, wie man sie leicht mit JUnit und ählichen Testframeworks erstellen kann. Schaut man jedoch über den Tellerrand und auf funktionale Programmiersprachen wie z.B. Haskell oder F#, findet man dort etwas anderes: Property-Tests. Property-Tests basieren auf der Idee, die erwünschten Eigenschaften unseres Programms zu beschreiben und anschließend das Framework selbstständig Testfälle generieren zu lassen, die diese Eigenschaften bestätigen oder falsifizieren.
In diesem Vortrag werde ich sowohl auf die Theorie hinter Property-based Testing eingehen als auch konkret zeigen, wie man mit jqwik unter Java und anderen JVM-Sprachen solche Tests umsetzen kann. Die Teilnehmer bekommen die Gelegenheit selbst Properties zu schreiben und auszuprobieren.
Liebe Teilnehmer: Für den Übungsteil benötigt ihr einen Laptop mit aktueller Java-IDE (IntelliJ oder Eclipse), eine Java-8-Installation und Internet-Zugang. Ihr könnt auch gerne schon das Repository auf https://github.com/jlink/pbt-workshop clonen und in eure IDE importieren.
Johannes Link beschäftigt sich schon seit Ende des letzten Jahrhunderts mit Extreme Programming und anderen agilen Ansätzen. Ein wesentlicher Schwerpunkt dabei war und ist die testgetriebene Entwicklung.
Johannes ist mitverantwortlich für die Architektur der JUnit-5-Plattform und entwickelt mittlerweile jqwik, eine Test-Engine für Property-based Testing.