Bulletproof Python – Property-based Testing mit Hypothesis

Herkömmliche, beispielbasierte Tests (example-based tests) nutzen handverlesene Eingaben, um die zu testenden Systeme zu überprüfen. Die Resultate werden mit den erwarteten Ausgaben verglichen und Tests schlagen fehl, wenn diese nicht übereinstimmen. Softwareentwickler sind nicht gut darin, geeignete Beispieleingaben für ihren Code zu finden, sonst hätten sie von vornherein besseren Code geschrieben. In einigen Fällen ist die erwartete Ausgabe – das so genannte Testorakel – schwer zu bestimmen oder völlig unbekannt.

Eigenschaftsbasierte Tests (property-based tests) suchen nach Eingaben, die Fehler im Code provozieren. Das Orakelproblem kann so umgangen werden und die Menge des gesamten Testcodes wird reduziert. Gleichzeitig deckt der Testcode mehr Sonderfälle ab. Kurz gesagt: Eigenschaftsbasierte Tests ermöglichen es, bessere Tests mit weniger Code zu schreiben. Dies erhöht die Robustheit und Wartbarkeit der entwickelten Software.

Nach diesem Workshop werden die Teilnehmer mit eigenschaftsbasierten Tests unter Verwendung des Hypothesen-Frameworks vertraut sein. Sie werden ein Verständnis für eigenschaftsbasiertes Testen haben und wissen, wie es sich von beispielbasiertem Testen unterscheidet. Die Teilnehmer haben praktische Erfahrung im Anfordern geeigneter Testdaten von Hypothesis und im Schreiben von Tests für allgemeine und fortgeschrittene Properties. Außerdem lernen sie verschiedene Strategien kennen, um die Techniken auf bestehende Projekte anzuwenden und die Continuous-Integration passend zu konfigurieren.

Es handelt sich um einen eintägigen Workshop für drei bis zehn Teilnehmer. Von den Teilnehmern wird erwartet, dass sie mit Unit-Tests und einem Test-Framework grundlegend vertraut sind. Die mitgelieferten Codebeispiele verwenden pytest. Die Kosten für diese Schulung betragen 465 € pro Teilnehmer für einen Präsenz-Workshop bzw. 405 € pro Teilnehmer für einen Remote-Workshop.

Was andere sagen

Großartige Einführung in Property-Based Testing, […]!

[…] das “Property-Based Testing mit Hypothesis” Tutorial […] von @seifertm0, war GROẞARTIG!

Property Testing rockt