Properties based testing ist eine Methode, die konstante Ausgabeeigenschaften überprüft und traditionelle Teststrategien ergänzt. Diese Technik eignet sich besonders für komplexe und Microservices-basierte Systeme, da sie die Überprüfung einer Vielzahl von Eingaben ermöglicht. Nikhil erklärt mit mehreren real life Beispielen, wie PBT funktioniert, was die Vorteile sind und wo die Methode an ihre Grenzen stößt.
“The fundamental proposition of properties based testing is when the system gets to complicated, it is not possible for human to write every test cases.” – Nikhil Barthwal
Nikhil Barthwal ist leidenschaftlich daran interessiert, dezentrale Systeme zu entwickeln. Er hat mehrere Jahre Berufserfahrung in großen Unternehmen sowie in kleineren Start-ups und fungiert als Mentor für verschiedene Start-ups. Außerdem ist er auf verschiedenen internationalen Konferenzen als Redner zu Gast und hält Vorträge zu Themen, die mit dezentralen Systemen und Softwarequalität zusammenhängen.
Highlights dieser Episode:
In dieser Episode habe ich mit Nikhil Barthwal über die Anwendungen von Properties Based Testing gesprochen. Da Software-Systeme zunehmend komplexer werden, stoßen traditionelle Testmethoden an ihre Grenzen und machen den Weg für fortschrittlichere Techniken wie Properties Based Testing frei.
Das Testen von Tausenden von Mikroservices stellt eine gewaltige Herausforderung dar. Nikhil erklärt, wie Properties Based Testing dies adressiert, indem es Testfälle automatisch auf Basis des Systemverhaltens generiert und so die Notwendigkeit manueller Testfallerstellung reduziert.
Es gibt drei Hauptkomponenten: Modellierungssprache, Generator und Schrumpfer. Nikhil verwendet ein Beispiel eines arithmetischen Dienstes, um zu veranschaulichen, wie diese Komponenten innerhalb von Properties Based Testing-Frameworks interagieren, um potenzielle Fehler effizient zu identifizieren.
Nikhil spricht über verschiedene Technologien, die Properties Based Testing unterstützen. Er hebt auch QuickCheck in Haskell als den Ursprung dieses Konzepts hervor, das seitdem in mehrere Sprachen übersetzt wurde wurde.
Properties Based Testing zielt darauf ab, menschliche Fähigkeiten zu übertreffen, indem es eine immense Anzahl von Permutationen im Systemverhalten bewältigt. Dies gewährleistet Zuverlässigkeit und deckt Fehler auf, die sich möglicherweise nur unter bestimmten Bedingungen oder im Laufe der Zeit gezeigt hätten.
Nikhil schlägt vor, klein mit Properties Based Testing zu beginnen und dessen Einsatz innerhalb einer Organisation allmählich auszuweiten. Er betont die Bedeutung kultureller Veränderungen und überzeugt Teams, neue Methoden für verbesserte Ergebnisse zu implementieren.
Properties Based Testing hat Einschränkungen. Zum Beispiel ist es nicht geeignet, wo Tests erhebliche Kosten verursachen oder destruktiv sind. Es ist entscheidend, diese Faktoren vor der Einführung abzuwägen.
Properties Based Testing ersetzt den Tester nicht, sondern agiert als Assistent, der die Produktivität erhöht, indem es potenzielle Probleme für die menschliche Analyse eingrenzt.