Automatisierte Akzeptanztests Olaf Eschenbruch 10.04.2018
Motivation Wo stehen wir im Cynefin Framework Iterative Feedback Systeme Realm of unknown unknowns Agile Methoden Quelle: A Leader s Framework for Decision Making, David Snowden & Mary Boone, HBR 2
Fehler aufgetreten Fehler aufgetreten Fehler aufgetreten Fehler aufgetreten Fehler aufgetreten Fixen Die Release Pipeline Schneller erfolgreicher Durchlauf schafft Mehrwert Development CI-Server Integration Environment Pre-Production Production Simple Unit Test Unit Test Integration Test Acceptance Test Neudurchlauf erforderlich Kosten pro Fehler Teststages
Schnelles Feedback, kurze Zyklen Möglichst viel, möglichst früh 4
Test von Anwendungen, nicht von Code
Test von Anwendungen, nicht von Code
Ein Vorgehen, viele Namen Behaviour Driven Development Acceptance Test Driven Development Specification by Example (Ausführbare Spezifikation)
Spezifikation sind meistens falsch!
Spezifikation verliert Wert über die Projektlaufzeit Spezifikation wird erstellt und beschreibt auch ein (meist erstes) Release, wird aber nicht konsequent weitergepflegt ständig am laufenden Produkt überprüft (Papier ist geduldig). Konsequenz Korrektheit der Software ist nicht überprüfbar, da nur beweisbar mittels Spezifikation Korrektheit der Spezifikation schwer überprüfbar Hoher Forschungsaufwand im Falle von unerwartetem Verhalten der Software 29
Beschreibungen sind interpretierbar Gibt es nur ein Feld für Adresse? Was genau wird ausgefüllt? Bezieht sich eine Pflichtprüfung auf alle Felder? Testkategorie Testfall Action Expected Kunde Kunde anlegen. In der Maske 'Kunde anlegen' müssen die Felder für Name, Vorname und Adresse gefüllt werden Der Kunde kann angelegt werden. Heißt müssen, hier ist ein Pflichtfeld? Wird das irgendwo geprüft? OK-Meldung beim Speichern? In einer anderen Maske kann eine Rechnung gestellt werden? 34
Wochen Test im Wasserfall Kunde Business Analyst Architekt Spezifikation Entwicklung QA/Test Software V 4.2.9 Testfallkatalog V 1.23 Feedback
Von der Idee zur Spezifikation
Von der Spezifikation zur ständigen Überprüfung
Given..When..Then..
Von Beispiel zur ausführbaren Spezifikation Testfall/Beispiel Testkategorie Testfall Action Expected Kunde Kunde anlegen In der Maske Neukunden' müssen die Felder für Name, Vorname und Adresse gefüllt werden Der Kunde kann angelegt werden. Ausführbare Spezifikation Anlegen eines Neukunden Given Page Should be Open Neukunden When Input Text Vorname Harry And Input Text Nachname Hirsch And Click Button Anlegen Then Saving Should succeed Befüllen der Addressfelder Given Page Should be Open Neukunden Page Should be open Neukunden Input Text Vorname Harry Input Text Nachname Hirsch Click Button Anlegen Saving Should Suceed Kontinuierliche Ausführung Starte jede Stunde / immer um Mitternacht, Teste IE, Firefox, Chrome Teste auf Umgebung Dev, Test, Preprod Führe nur folgende Testsuites aus Stelle Testergebnisse bereit Dev Test
Tage Automatisierte Akzeptanztests Domäne QA/Test Entwickler Feedback Beispiele / Ausführbare Spezifikation V 4.2.9 Software V 4.2.9
Von der fachlichen zur technischen Ebene 1 7
Feedback: Wird es gebraucht? Fachliche Qualität Was entscheidet den Erfolg einer Anwendung? Sprint-Reviews mit Kunden Story Mapping Acceptance Test Driven Development Sprint-Reviews Präsentation automatisierter Tests Präsentation der CI-Tests Modul- und QA-Test Test Driven Development Continuous Integration Continuous Delivery Technische Qualität Feedback: Funktioniert es?
Fallbeispiel: Komplexe Fachanwendung im Browser Automatisierung entlastet den Fachbereich Eindeutige Definition der Testfälle Gemeinsame Sicht auf die Erwartung Schnelles Feedback und ständige Überprüfung robotframework-reports and movie\robottest.avi robotframework-reports and movie\report.html
Fazit Korrektheit einer nicht-ausführbaren Spezifikation ist schwer beweisbar Continuous Communication ist notwendig für agiles Vorgehen Technische Exzellenz alleine genügt nicht! 41
Fazit Die ausführbare Spezifikation adressiert dies auf den Ebenen Technik Zusammenarbeit Dokumentation 42
Tools und Frameworks
Setup Szenario
Gibt es noch Fragen? Olaf Eschenbruch Senior Consultant olaf.eschenbruch@mt-ag.com Mobile: 0162 4310830 24