Slides from Softwerkskammer Hamburg (SokaHH) Meetup in October 2014.
It explains in detail the Wait-Pattern introduced for UI-Tests at CoreMedia as well as the Selenium Grid infrastructure chosen to run the tests with focus on Firefox running in xvfb/openbox.
Pipeline-Patterns: z. B. „schnelle“ Pipelines ohne Integrations-/UI-Tests und „Full-Pipelines“.
Story-Merge: Alle Sprint-Story-Branches werden gemergt und damit ein Testsystem aufgesetzt und Tests gefahren
Single-Story: benötigt insbesondere für große oder konfliktträchtige Stories
Fixes-Merge: Bugfix-Branches werden hier gemergt und darauf die volle CI gestartet
Master: „Kopie“ des Master-Systems, für mehr Kontrolle vom Team aus.
Release-Pipeline: Enthält einen für gut befundenen Master-Stand + Fix-Commits
unsere UI-Test-Sprache in Anlehnung an Gherkin (siehe Cucumber, JBehave)
Vorteil: Im Fehlerfall leicht manuell nachzustellen.
Vorteil zu Cucumber: Steps und Implementierung in Java – und meist in einer Klasse
Globaler Timeout
Warte-Pattern für Server und UI identisch
API in Anlehnung an JUnit
Komplexität in Wrappern versteckt
Tests zu schreiben wird damit zum Kinderspiel
Wrapper-Entwicklung ebenfalls einfach gestaltet
Test- und Wrapper-Entwickler sehen dies JavaScript nicht – nur bei Debugging-Ausgabe
Hannoveraner wissen, was ich meine…
z. B. Expression:
SUT-Kontakt
Soll-/Ist-Vergleich
explizite Behandlung von Exception-Ignore
siehe http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp
siehe https://code.google.com/p/selenium/source/browse/java/client/src/org/openqa/selenium/support/ui/ExpectedConditions.java
Expression:
einziger Kontakt zur SUT
signalisiert:
Erfolg
Unbehebbarer Fehler
Behebbarer Fehler (z. B. durch Warten)
Keine Exception wird “verschluckt”. Condition wird über alle Exceptions informiert, Expression schlägt nur vor, dass man sie ignorieren könnte.
Matcher:
bekannte API: Hamcrest
Soll-/Ist-Vergleich
Condition:
ggf. Wiederholung
Caching Expression-Ergebnisse für Fehlerreports
Überprüfung Timeout
ExpressionEvaluationException: Vorschlag von Expression an Condition, dass eine Wiederholung zum Erfolg führen könnte.
Exception: Unbehebbarer Fehler
Grün: Test-Autor
Blau: Wrapper-Autor
ggf. in Personalunion
Balance wichtig: Zu viele UI-Tests sind teuer in Erstellung und vor allem Pflege
Balance wichtig: Zu viele UI-Tests sind teuer in Erstellung und vor allem Pflege
Manuelle Tests ergänzt etwa durch Test-Fest, etc.