Am Mittwoch, dem 04.11. ist ReTest auf den Clean Code Days im NH Ost Konferenzcenter in München. Dr. Rößler hält dort um 14:00 bis 14:45 Uhr einen Vortrag mit dem Titel "Das neue Testparadigma: Behavioral Diff".

Bei der Clean Code Initiative wird viel Wert auf Automatisierung, insbesondere auf Test-Automatisierung gelegt. Diese zu erreichen bedeutet jedoch gerade bei alten Projekten mit großer Code-Basis (und wenig existierenden Tests) sehr viel Aufwand, oft ohne das der unmittelbare Nutzen im Verhältnis zum Aufwand steht bzw. der Aufwand amortisiert sich erst über eine gewisse Zeit. Bei Integrationstests auf Ebene der Benutzeroberfläche (Oranger 2. Grad) entsteht viel Aufwand bei der Erstellung und Pflege der Prüfregeln. Werden viele Prüfregeln erstellt, so ist dieser Aufwand größer. Werden weniger Prüfregeln erstellt, so wird eventuell ein Fehler nicht erkannt.

Behavioral Diff ist eine Weiterentwicklung zu Capture&Replay und eine Möglichkeit dieses Problem zu lösen. Dabei werden alle Unterschiede im Verhalten der Anwendung zwischen zwei Versionen aufgezeigt ("Verhalten" beinhaltet in diesem Fall insbesondere die Darstellung). Sind diese Unterschiede gewünscht, so wird (ähnlich einem Commit bei einem VCS) das neue Verhalten zur neuen "Wahrheit" und zukünftig Unterschiede zu diesem Verhalten dargestellt. Statt bei Tests einzelne Prüfregeln anzugeben, und dabei doch nie alle Details erfassen zu können, erhält man durch ein Behavioral Diff quasi 100% Assertions bei 0% Pflegeaufwand. Und mittels Monkey-Testing kann man dafür die Tests sogar generieren. Monkey-Testing bezeichnet zufallsbasiertes Testen von Software über die Benutzeroberfläche, und findet vollautomatisch und kostengünstig Fehler bzw. zeichnet das Programmverhalten auf. Durch die Kombination mit Behavioral Diff und wenn man diesen Affen etwas trainiert, kann man seinen Testaufwand halbieren und die Ergebnisse verdoppeln!

Tagged in : Vortraege,

Dr. Jeremias Rößler
Dr. Jeremias Rößler

ist Software Ingenieur – spezialisiert auf das Erstellen und die Pflege von großen, komplexen Softwaresystemen, die unter akzeptablen Kosten stabil und zuverlässig funktionieren. Er besitzt über sechs Jahre Berufserfahrung in der Entwicklung von Individualsoftware. 2013 hat er am Lehrstuhl für Softwaretechnik an der Universität des Saarlandes promoviert. Seine Forschung beschäftigt sich mit dem Auffinden und der Analyse von Fehlern, indem Software-Systeme mittels generierter Tests systematisch ausgeführt und dabei Fehler aufgedeckt und analysiert werden. Er ist Gründer von ReTest, einem IT-Dienstleistungsunternehmen, das Software programmunterstützt testet.