Testautomatisierung in Java und anderen objektorientierten Sprachen setzt bislang meist auf beispielbasierte Testfälle, wie man sie leicht mit JUnit und ähnlichen 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-basiertes Testen (engl. Property-based Testing).
Property-based Testing 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 solche Tests umsetzen kann. Dabei spielen Muster und Strategien zum Finden guter Properties eine wichtige Rolle.