Tests in Mengen!
Hypothesis testet Python-Code mit automatischen Beispielen
Das Test-Framework Hypothesis erzeugt automatisch hunderte von Beispielen für Integrations- und Unittests. Das spart Entwicklern duplizierten Code und hilft Fehler zu finden. Die Automatik funktioniert besonders effektiv, wenn die Tests dabei im Kreis rechnen.
Wer Unittests schreibt, muss kreativ sein: Jeder Test muss nämlich ein Beispiel mit möglichen Eingaben und der dazu passenden Ausgabe der getesteten Funktion definieren. Wie einfach das mit Pythons unittest
geht, haben wir im Artikel „Programmierte Prüfer“ [1] beschrieben. Normalerweise erfinden die Tester diese Beispiele und kodieren sie in Handarbeit in die Tests.
Dabei ist es eine Kunst, die richtigen Beispiele zu finden, die alle Randfälle und Ausnahmen abdecken. Mutation-Tests [2] helfen zwar, ungenügende Tests zu identifizieren, der Fix besteht aber zumeist aus weiteren Tests mit mehr Beispielen, was den Test-Code schnell wachsen lässt.