SlideShare ist ein Scribd-Unternehmen logo

SokaHH: Testen von Rich-Web-UI (German)

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.

1 von 41
Downloaden Sie, um offline zu lesen
Softwerkskammer Hamburg 
Testen von Rich-Web-UIs 
Mark Michaelis 
Kudos to Martti Jeenicke 
© CoreMedia | 2014-10-21 | 1 www.coremedia.com
Dev@CoreMedia
Dev@CoreMedia 
 Entwickler sind für QA verantwortlich 
 keine dedizierte QA-Abteilung 
 5 Topic-Teams 
 Git als VCS 
 Feature-Entwicklung auf Branches 
© CoreMedia | 2014-10-21 | 3 www.coremedia.com
Dev@CoreMedia - Pipelines 
 verschiedene Pipeline-Patterns 
 pro Team ca. 4 Pipelines, jeweils mit UI-Tests: 
 Story-Merge-Pipeline 
 Single-Story-Pipeline 
 Fixes-Merge-Pipeline 
 Master-Pipeline 
 weiterhin: 
 Master-Pipeline 
 Release-Pipeline 
© CoreMedia | 2014-10-21 | 4 www.coremedia.com
Produkt
Frontend Beispiel: CoreMedia Studio 
© CoreMedia | 2014-10-21 | 6 www.coremedia.com
Anzeige

Recomendados

WebLogic Server auf ODA: Erfahrungen aus einem Kundenprojekt
WebLogic Server auf ODA: Erfahrungen aus einem KundenprojektWebLogic Server auf ODA: Erfahrungen aus einem Kundenprojekt
WebLogic Server auf ODA: Erfahrungen aus einem KundenprojektOPITZ CONSULTING Deutschland
 
Boost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerBoost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerSteven Grzbielok
 
2014 borys neselovskyi_web_logic_server_auf_oda_praesentation
2014 borys neselovskyi_web_logic_server_auf_oda_praesentation2014 borys neselovskyi_web_logic_server_auf_oda_praesentation
2014 borys neselovskyi_web_logic_server_auf_oda_praesentationbneselov
 
2012 borys neselovskyi_automatisierte_middleware_installation_praesentation
2012 borys neselovskyi_automatisierte_middleware_installation_praesentation2012 borys neselovskyi_automatisierte_middleware_installation_praesentation
2012 borys neselovskyi_automatisierte_middleware_installation_praesentationbneselov
 
Pilzinfektion Symptome
Pilzinfektion SymptomePilzinfektion Symptome
Pilzinfektion SymptomeLisa187
 
viZaar24 Leckortung online Präsentation
viZaar24 Leckortung online PräsentationviZaar24 Leckortung online Präsentation
viZaar24 Leckortung online PräsentationThomas Drost
 

Más contenido relacionado

Destacado

Browse E-Commerce Plattform für den stationären Fashion Handel
Browse E-Commerce Plattform für den stationären Fashion HandelBrowse E-Commerce Plattform für den stationären Fashion Handel
Browse E-Commerce Plattform für den stationären Fashion HandelBernd Gemmer
 
Wer zuerst wirbt, verkauft zuerst!
Wer zuerst wirbt, verkauft zuerst! Wer zuerst wirbt, verkauft zuerst!
Wer zuerst wirbt, verkauft zuerst! hennysports
 
eBusiness Lösung - Erklärvideo Mittels kurzer Videos komplexe Themen leicht v...
eBusiness Lösung - Erklärvideo Mittels kurzer Videos komplexe Themen leicht v...eBusiness Lösung - Erklärvideo Mittels kurzer Videos komplexe Themen leicht v...
eBusiness Lösung - Erklärvideo Mittels kurzer Videos komplexe Themen leicht v...eBusiness-Lotse Darmstadt-Dieburg
 
Online marketing workshop startplatz köln skillday.de
Online marketing workshop startplatz köln  skillday.deOnline marketing workshop startplatz köln  skillday.de
Online marketing workshop startplatz köln skillday.deSkill Day
 
How much food do we waste
How much food do we wasteHow much food do we waste
How much food do we wasteJessica161
 
Digitale Transformation im Gesundheitswesen
Digitale Transformation im GesundheitswesenDigitale Transformation im Gesundheitswesen
Digitale Transformation im GesundheitswesenHans Peter Knaust
 
Folgen der Medienkrise für die Kommunikation in der Finanzbranche
Folgen der Medienkrise für die Kommunikation in der FinanzbrancheFolgen der Medienkrise für die Kommunikation in der Finanzbranche
Folgen der Medienkrise für die Kommunikation in der Finanzbrancheergo Kommunikation
 
Platura_Woche2
Platura_Woche2Platura_Woche2
Platura_Woche2wuggi
 
Transit prestasi pelajar
Transit prestasi pelajarTransit prestasi pelajar
Transit prestasi pelajarnorazieyra
 
Transit prestasi ba thn 2 2013
Transit prestasi  ba  thn 2 2013Transit prestasi  ba  thn 2 2013
Transit prestasi ba thn 2 2013norazieyra
 
Unser Briesebote 02 - Zeitung der CDU Birkenwerder - Frühling 2014
Unser Briesebote 02 - Zeitung der CDU Birkenwerder - Frühling 2014Unser Briesebote 02 - Zeitung der CDU Birkenwerder - Frühling 2014
Unser Briesebote 02 - Zeitung der CDU Birkenwerder - Frühling 2014Cdu Birkenwerder
 
Erstellen sie eine unverbindliche offerte
Erstellen sie eine unverbindliche offerteErstellen sie eine unverbindliche offerte
Erstellen sie eine unverbindliche offertejolie111
 
Geschenke und Mitbringsel für Personen im Ausland | Umfrage 2014
Geschenke und Mitbringsel für Personen im Ausland | Umfrage 2014Geschenke und Mitbringsel für Personen im Ausland | Umfrage 2014
Geschenke und Mitbringsel für Personen im Ausland | Umfrage 2014kontakt_tutilbun
 

Destacado (17)

Browse E-Commerce Plattform für den stationären Fashion Handel
Browse E-Commerce Plattform für den stationären Fashion HandelBrowse E-Commerce Plattform für den stationären Fashion Handel
Browse E-Commerce Plattform für den stationären Fashion Handel
 
Wer zuerst wirbt, verkauft zuerst!
Wer zuerst wirbt, verkauft zuerst! Wer zuerst wirbt, verkauft zuerst!
Wer zuerst wirbt, verkauft zuerst!
 
Dresden #4
Dresden #4Dresden #4
Dresden #4
 
eBusiness Lösung - Erklärvideo Mittels kurzer Videos komplexe Themen leicht v...
eBusiness Lösung - Erklärvideo Mittels kurzer Videos komplexe Themen leicht v...eBusiness Lösung - Erklärvideo Mittels kurzer Videos komplexe Themen leicht v...
eBusiness Lösung - Erklärvideo Mittels kurzer Videos komplexe Themen leicht v...
 
Online marketing workshop startplatz köln skillday.de
Online marketing workshop startplatz köln  skillday.deOnline marketing workshop startplatz köln  skillday.de
Online marketing workshop startplatz köln skillday.de
 
How much food do we waste
How much food do we wasteHow much food do we waste
How much food do we waste
 
Digitale Transformation im Gesundheitswesen
Digitale Transformation im GesundheitswesenDigitale Transformation im Gesundheitswesen
Digitale Transformation im Gesundheitswesen
 
Folgen der Medienkrise für die Kommunikation in der Finanzbranche
Folgen der Medienkrise für die Kommunikation in der FinanzbrancheFolgen der Medienkrise für die Kommunikation in der Finanzbranche
Folgen der Medienkrise für die Kommunikation in der Finanzbranche
 
Platura_Woche2
Platura_Woche2Platura_Woche2
Platura_Woche2
 
Dresden #1
Dresden #1Dresden #1
Dresden #1
 
Up2015 UX in Kanban
Up2015 UX in KanbanUp2015 UX in Kanban
Up2015 UX in Kanban
 
Transit prestasi pelajar
Transit prestasi pelajarTransit prestasi pelajar
Transit prestasi pelajar
 
Transit prestasi ba thn 2 2013
Transit prestasi  ba  thn 2 2013Transit prestasi  ba  thn 2 2013
Transit prestasi ba thn 2 2013
 
Unser Briesebote 02 - Zeitung der CDU Birkenwerder - Frühling 2014
Unser Briesebote 02 - Zeitung der CDU Birkenwerder - Frühling 2014Unser Briesebote 02 - Zeitung der CDU Birkenwerder - Frühling 2014
Unser Briesebote 02 - Zeitung der CDU Birkenwerder - Frühling 2014
 
Erstellen sie eine unverbindliche offerte
Erstellen sie eine unverbindliche offerteErstellen sie eine unverbindliche offerte
Erstellen sie eine unverbindliche offerte
 
Geschenke und Mitbringsel für Personen im Ausland | Umfrage 2014
Geschenke und Mitbringsel für Personen im Ausland | Umfrage 2014Geschenke und Mitbringsel für Personen im Ausland | Umfrage 2014
Geschenke und Mitbringsel für Personen im Ausland | Umfrage 2014
 
NUESTRAS OBRAS DE ARTE
NUESTRAS OBRAS DE ARTENUESTRAS OBRAS DE ARTE
NUESTRAS OBRAS DE ARTE
 

Ähnlich wie SokaHH: Testen von Rich-Web-UI (German)

Citrix Day 2014: BKW - Der Weg einer Enterprise-Mobility-Management-Strategie
Citrix Day 2014: BKW - Der Weg einer Enterprise-Mobility-Management-StrategieCitrix Day 2014: BKW - Der Weg einer Enterprise-Mobility-Management-Strategie
Citrix Day 2014: BKW - Der Weg einer Enterprise-Mobility-Management-StrategieDigicomp Academy AG
 
HCL Domino 14 - Leap 1.1.2 - DNUG Stammtisch Wien
HCL Domino 14 - Leap 1.1.2 - DNUG Stammtisch Wien HCL Domino 14 - Leap 1.1.2 - DNUG Stammtisch Wien
HCL Domino 14 - Leap 1.1.2 - DNUG Stammtisch Wien DNUG e.V.
 
Modulare Enterprise Systeme - Eine Einführung
Modulare Enterprise Systeme - Eine EinführungModulare Enterprise Systeme - Eine Einführung
Modulare Enterprise Systeme - Eine EinführungAndreas Weidinger
 
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...Marc Müller
 
Testing XAML-based Windows Store Apps mit VS 2013
Testing XAML-based Windows Store Apps mit VS 2013Testing XAML-based Windows Store Apps mit VS 2013
Testing XAML-based Windows Store Apps mit VS 2013Nico Orschel
 
Einführung in ASP.NET Core Middlewares
Einführung in ASP.NET Core MiddlewaresEinführung in ASP.NET Core Middlewares
Einführung in ASP.NET Core MiddlewaresMatthias Jauernig
 
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application VirtualizationDesktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application VirtualizationGWAVA
 
IBM Notes Domino & Verse Update
IBM Notes Domino & Verse UpdateIBM Notes Domino & Verse Update
IBM Notes Domino & Verse Updateeschwalb
 
Das eigene Test Lab, für jeden! (CeBIT-Edition mit Demo-Videos)
Das eigene Test Lab, für jeden! (CeBIT-Edition mit Demo-Videos)Das eigene Test Lab, für jeden! (CeBIT-Edition mit Demo-Videos)
Das eigene Test Lab, für jeden! (CeBIT-Edition mit Demo-Videos)Peter Kirchner
 
DevOps der Triple-E Klasse - Eclipse DemoCamp
DevOps der Triple-E Klasse - Eclipse DemoCampDevOps der Triple-E Klasse - Eclipse DemoCamp
DevOps der Triple-E Klasse - Eclipse DemoCampWerner Keil
 
Using openArchitectureWare 4.0 in domain "registration"
Using openArchitectureWare 4.0 in domain "registration"Using openArchitectureWare 4.0 in domain "registration"
Using openArchitectureWare 4.0 in domain "registration"joergreichert
 
Die besten 10 JavaScript Frameworks für moderne Web-Apps
Die besten 10 JavaScript Frameworks für moderne Web-AppsDie besten 10 JavaScript Frameworks für moderne Web-Apps
Die besten 10 JavaScript Frameworks für moderne Web-AppsDieter Ziegler
 
Apps for the Enterprise - Ein einheitliches Modulsystem für verteilte Unterne...
Apps for the Enterprise - Ein einheitliches Modulsystem für verteilte Unterne...Apps for the Enterprise - Ein einheitliches Modulsystem für verteilte Unterne...
Apps for the Enterprise - Ein einheitliches Modulsystem für verteilte Unterne...Andreas Weidinger
 
Sicherheit, Compliance, Höchsteistung mit SPARC/Solaris
Sicherheit, Compliance, Höchsteistung mit SPARC/SolarisSicherheit, Compliance, Höchsteistung mit SPARC/Solaris
Sicherheit, Compliance, Höchsteistung mit SPARC/SolarisJomaSoft
 
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...Marc Müller
 
Rapid Application Development mit Openobject
Rapid Application Development mit OpenobjectRapid Application Development mit Openobject
Rapid Application Development mit Openobjectopenbig
 

Ähnlich wie SokaHH: Testen von Rich-Web-UI (German) (20)

Citrix Day 2014: BKW - Der Weg einer Enterprise-Mobility-Management-Strategie
Citrix Day 2014: BKW - Der Weg einer Enterprise-Mobility-Management-StrategieCitrix Day 2014: BKW - Der Weg einer Enterprise-Mobility-Management-Strategie
Citrix Day 2014: BKW - Der Weg einer Enterprise-Mobility-Management-Strategie
 
HCL Domino 14 - Leap 1.1.2 - DNUG Stammtisch Wien
HCL Domino 14 - Leap 1.1.2 - DNUG Stammtisch Wien HCL Domino 14 - Leap 1.1.2 - DNUG Stammtisch Wien
HCL Domino 14 - Leap 1.1.2 - DNUG Stammtisch Wien
 
Modulare Enterprise Systeme - Eine Einführung
Modulare Enterprise Systeme - Eine EinführungModulare Enterprise Systeme - Eine Einführung
Modulare Enterprise Systeme - Eine Einführung
 
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
DWX 2017 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch m...
 
Testing XAML-based Windows Store Apps mit VS 2013
Testing XAML-based Windows Store Apps mit VS 2013Testing XAML-based Windows Store Apps mit VS 2013
Testing XAML-based Windows Store Apps mit VS 2013
 
Einführung in ASP.NET Core Middlewares
Einführung in ASP.NET Core MiddlewaresEinführung in ASP.NET Core Middlewares
Einführung in ASP.NET Core Middlewares
 
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application VirtualizationDesktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
 
IBM Notes Domino & Verse Update
IBM Notes Domino & Verse UpdateIBM Notes Domino & Verse Update
IBM Notes Domino & Verse Update
 
Citrix Day 2014: APPDNA
Citrix Day 2014: APPDNACitrix Day 2014: APPDNA
Citrix Day 2014: APPDNA
 
Infrastructure Solution Day | Core
Infrastructure Solution Day | CoreInfrastructure Solution Day | Core
Infrastructure Solution Day | Core
 
Das eigene Test Lab, für jeden! (CeBIT-Edition mit Demo-Videos)
Das eigene Test Lab, für jeden! (CeBIT-Edition mit Demo-Videos)Das eigene Test Lab, für jeden! (CeBIT-Edition mit Demo-Videos)
Das eigene Test Lab, für jeden! (CeBIT-Edition mit Demo-Videos)
 
DevOps der Triple-E Klasse - Eclipse DemoCamp
DevOps der Triple-E Klasse - Eclipse DemoCampDevOps der Triple-E Klasse - Eclipse DemoCamp
DevOps der Triple-E Klasse - Eclipse DemoCamp
 
Net@night asp.net mvc
Net@night asp.net mvcNet@night asp.net mvc
Net@night asp.net mvc
 
Using openArchitectureWare 4.0 in domain "registration"
Using openArchitectureWare 4.0 in domain "registration"Using openArchitectureWare 4.0 in domain "registration"
Using openArchitectureWare 4.0 in domain "registration"
 
Governance
GovernanceGovernance
Governance
 
Die besten 10 JavaScript Frameworks für moderne Web-Apps
Die besten 10 JavaScript Frameworks für moderne Web-AppsDie besten 10 JavaScript Frameworks für moderne Web-Apps
Die besten 10 JavaScript Frameworks für moderne Web-Apps
 
Apps for the Enterprise - Ein einheitliches Modulsystem für verteilte Unterne...
Apps for the Enterprise - Ein einheitliches Modulsystem für verteilte Unterne...Apps for the Enterprise - Ein einheitliches Modulsystem für verteilte Unterne...
Apps for the Enterprise - Ein einheitliches Modulsystem für verteilte Unterne...
 
Sicherheit, Compliance, Höchsteistung mit SPARC/Solaris
Sicherheit, Compliance, Höchsteistung mit SPARC/SolarisSicherheit, Compliance, Höchsteistung mit SPARC/Solaris
Sicherheit, Compliance, Höchsteistung mit SPARC/Solaris
 
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
BASTA 2016 - Alternativen zu Visual-Studio-Testtools: Wann lohnt es sich auch...
 
Rapid Application Development mit Openobject
Rapid Application Development mit OpenobjectRapid Application Development mit Openobject
Rapid Application Development mit Openobject
 

SokaHH: Testen von Rich-Web-UI (German)

  • 1. Softwerkskammer Hamburg Testen von Rich-Web-UIs Mark Michaelis Kudos to Martti Jeenicke © CoreMedia | 2014-10-21 | 1 www.coremedia.com
  • 3. Dev@CoreMedia  Entwickler sind für QA verantwortlich  keine dedizierte QA-Abteilung  5 Topic-Teams  Git als VCS  Feature-Entwicklung auf Branches © CoreMedia | 2014-10-21 | 3 www.coremedia.com
  • 4. Dev@CoreMedia - Pipelines  verschiedene Pipeline-Patterns  pro Team ca. 4 Pipelines, jeweils mit UI-Tests:  Story-Merge-Pipeline  Single-Story-Pipeline  Fixes-Merge-Pipeline  Master-Pipeline  weiterhin:  Master-Pipeline  Release-Pipeline © CoreMedia | 2014-10-21 | 4 www.coremedia.com
  • 6. Frontend Beispiel: CoreMedia Studio © CoreMedia | 2014-10-21 | 6 www.coremedia.com
  • 7. Anwendungsarchitektur Studio-Server (WebApp) Client (Browser) Content REST Service Presentation Remoting ExtJS MVC AJAX Request Backend Services JSON … Content Server Search © CoreMedia | 2014-10-21 | 7 www.coremedia.com
  • 8. Lebenszyklus  Versionen derzeit:  mehrere Versionen im Extended Support (bis zu RD 2005)  2 in Maintenance-Phase  Erstes Release Oktober 2012  Erstes Release September 2014  1 in Entwicklungs-Phase © CoreMedia | 2014-10-21 | 8 www.coremedia.com
  • 10. Technischer Rahmen  Test-Setup durch viele Applikationsschichten:  Content-Server  Search-Server  Web-Application-Server (Tomcat, Websphere)  Browser/UI  Selenium/WebDriver als Basis-Technologie © CoreMedia | 2014-10-21 | 10 www.coremedia.com
  • 11. Framework-Design Prinzipien Simplicity Born to Fail Succeed Fast Extensible Reusable © CoreMedia | 2014-10-21 | 11 www.coremedia.com
  • 13. Oben: Manuell reproduzierbare Tests @Test void scenario_document_change_updates_date() { Reference<Document> doc = ref(); given_document_D_exists(doc); given_document_D_is_opened(doc); when_I_change_document_D(doc); then_modification_date_of_document_D_is_updated(doc); } © CoreMedia | 2014-10-21 | 13 www.coremedia.com
  • 14. Mitte: Warte-Pattern für Server als auch UI @Test void scenario_document_change_updates_date() { Reference<Document> doc = ref(); given_document_D_exists(doc); given_document_D_is_opened(doc); when_I_change_document_D(doc); then_modification_date_of_document_D_is_updated(doc); } searchServiceWrapper .indexed(doc) .waitUntil(is(true)); © CoreMedia | 2014-10-21 | 14 www.coremedia.com
  • 15. Mitte: UI-Wrapper Verwendung @Test void scenario_document_change_updates_date() { Reference<Document> doc = ref(); given_document_D_exists(doc); given_document_D_is_opened(doc); when_I_change_document_D(doc); then_modification_date_of_document_D_is_updated(doc); } @Inject DocumentPanel panel; TextField field = panel.getTextField(); field.write(„lorem“); panel.saveDocument(); © CoreMedia | 2014-10-21 | 15 www.coremedia.com
  • 16. Mitte: UI-Wraper Entwicklung @Test void scenario_document_change_updates_date() { @ExtJSObject(id = „docPanel“) DocumentPanel extends ExtPanel { Reference<Document> doc = ref(); @FindByExtJS(itemId=„save“) Button saveButton; given_document_D_exists(doc); given_document_D_is_opened(doc); when_I_change_document_D(doc); then_modification_date_of_document_D_is_updated(doc); } saveDocument() { saveButton.click(); @Inject DocumentPanel panel; TextField field = panel.getTextField(); field.write(„lorem“); panel.saveDocument(); } © CoreMedia | 2014-10-21 | 16 www.coremedia.com
  • 17. Unten: Generiertes JavaScript Code, den keiner sieht… self = Ext.getCmp(„panel“); key = „itemId“; value = „save“; btn = (self.find && self.find(key, value)[0]) || (self.buttons && self.buttons.filter( function(b){return b[key] && b[key]==value})[0]) || (self.items && self.items.filter(key, value).get(0)); © CoreMedia | 2014-10-21 | 17 www.coremedia.com
  • 18. Warte, warte nur ein Weilchen…
  • 19. WebDriver Wait Pattern Unklare Verantwortlichkeiten © CoreMedia | 2014-10-21 | 19 www.coremedia.com
  • 20. Joala Wait-Pattern Klare Verantwortlichkeiten © CoreMedia | 2014-10-21 | 20 www.coremedia.com
  • 21. Wait Pattern Vergleich © CoreMedia | 2014-10-21 | 21 www.coremedia.com
  • 22. Wait-Pattern Terminierung in Joala © CoreMedia | 2014-10-21 | 22 www.coremedia.com
  • 23. Was der Tester wissen muss… WebDriver © CoreMedia | 2014-10-21 | 23 www.coremedia.com
  • 24. Was der Tester wissen muss… Joala © CoreMedia | 2014-10-21 | 24 www.coremedia.com
  • 26. Test-Pyramide (nach Mike Cohn) Manual UI Service Unit © CoreMedia | 2014-10-21 | 26 www.coremedia.com
  • 27. Test-Pyramide (nach Mike Cohn) Manual UI Service Unit  600 UI-Tests  200 Integration  2000 System  10000 JUnit  600 JooUnit  1 Team (von 5):  25 Einzeltests  5 Stories, 30 Steps  20 explorativ © CoreMedia | 2014-10-21 | 27 www.coremedia.com
  • 29. Infrastruktur – Das Grid  1 zentrales Se-Grid  Wartung durch eines der Topic-Teams (das Team mit dem größten Se-Know-How)  10 Xvfb+Firefox Nodes  8 IE Nodes basierend auf modern.ie Konzept angelehnt an conceptsandtraining/modernie_selenium © CoreMedia | 2014-10-21 | 29 www.coremedia.com
  • 30. Infrastruktur – Erfahrungen  Virtuelle Windows-Nodes mit rdesktop sind potentiell gefährlich  nur per Skript aufgesetzte Systeme schaffen Stabilität  Firefox + Xvfb läuft “wartungsfrei” seit vielen Monaten © CoreMedia | 2014-10-21 | 30 www.coremedia.com
  • 31. Infrastruktur – Firefox & Xvfb  Xvfb installieren  CentOS, required: libXfont und xorg-x11-fonts  Ubuntu, required: xfonts-*  alte Xvfb-Version (z. B. CentOS) benötigt Patch für Bug #337703  Openbox – benötigt, etwa um Fenster maximieren zu können  Optional: xwud, um auf Framebuffer-Images zugreifen zu können  gtk2-engines: Benötigt für Openbox, falls der Fehler Xlib: extension "RANDR" missing on display ":105“ auftritt. © CoreMedia | 2014-10-21 | 31 www.coremedia.com
  • 32. Infrastruktur – Firefox & Xvfb Skript-Skizze function start_wm() { openbox & # remember PID } function start_selenium_node() { start_wm start_selenium # java –jar …, not in background! kill_wm } function start_selenium_node() { bash xvfb [options] xvfb_subcommand & } © CoreMedia | 2014-10-21 | 32 www.coremedia.com
  • 33. Links
  • 34. Referenzen (1)  The Forgotten Layer of the Test Automation Pyramid Mike Cohn, 2009  TestPyramid Martin Fowler, 2012  WebDriver: Advanced Usage — Selenium Documentation, Explicit and Implicit Waits  Joala u. a. Referenzimplementierung Warte-Pattern  Jangaroo u. a. JooUnit © CoreMedia | 2014-10-21 | 34 www.coremedia.com
  • 35. Referenzen (2)  conceptsandtraining/modernie_selenium modern.ie VBox-VM-Setup  Modern.IE : Interoperabilität, Browser & Cross Platform Testing © CoreMedia | 2014-10-21 | 35 www.coremedia.com
  • 36. Weitere Informationen  SoCraTes 2014: Testing Rich-Web-UI Mark Michaelis  Death to sleeps! Raise of Conditions! | Minds Mark Michaelis  Selenium Server as Windows Service via NSSM | Minds Mark Michaelis  Meetup Softwerkskammer HH: Collected Thoughts on Testing Pyramid | Minds Mark Michaelis  The Calm after the Storm | Minds Olaf Kummer  Haste makes waste | Minds Olaf Kummer  Entwickler entdecken UI-Testing Mark Michaelis, Testing Experience DE 4/2014, S. 12ff © CoreMedia | 2014-10-21 | 36 www.coremedia.com
  • 38. Erfahrung  UI-Tests sind heute deutlich weniger Thema in der Test- Ergebnis-Analyse  Analyse der Infrastruktur ist nicht mehr notwendig  keine „Heisenbugs“ mehr  Nichtsdestotrotz: Auch im jüngsten Sprint mussten wir Maßnahmen beschließen, um mit „Wacklern“ umzugehen.  (Zu)viel Investition in UI-Tests verführt: “Ich schreibe lieber einen UI-Test, als…” (Entwickler-Zitat) © CoreMedia | 2014-10-21 | 38 www.coremedia.com
  • 39. CONTENT | CONTEXT | CONVERSION Mark Michaelis about.me/michaelismark © CoreMedia | 2014-10-21 | 39 www.coremedia.com
  • 41. Wait-Pattern Terminierung in WebDriver © CoreMedia | 2014-10-21 | 41 www.coremedia.com

Hinweis der Redaktion

  1. 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
  2. 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
  3. Globaler Timeout Warte-Pattern für Server und UI identisch API in Anlehnung an JUnit
  4. Komplexität in Wrappern versteckt Tests zu schreiben wird damit zum Kinderspiel
  5. Wrapper-Entwicklung ebenfalls einfach gestaltet
  6. Test- und Wrapper-Entwickler sehen dies JavaScript nicht – nur bei Debugging-Ausgabe
  7. Hannoveraner wissen, was ich meine…
  8. 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
  9. 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
  10. ExpressionEvaluationException: Vorschlag von Expression an Condition, dass eine Wiederholung zum Erfolg führen könnte. Exception: Unbehebbarer Fehler
  11. Grün: Test-Autor Blau: Wrapper-Autor ggf. in Personalunion
  12. Balance wichtig: Zu viele UI-Tests sind teuer in Erstellung und vor allem Pflege
  13. Balance wichtig: Zu viele UI-Tests sind teuer in Erstellung und vor allem Pflege Manuelle Tests ergänzt etwa durch Test-Fest, etc.