und tÄglich grÜßt der systemtest · spock geb webdriver appium ui-automation robotium sikuli...

39
LET S HAVE A PARTYRUDOLF E. GROETZ BENJAMIN HOFMANN HEAD OF QA, JUMIO INC. SYSTEM TEST ENGINEER, JUMIO INC. ASQF-VORTRAG 26.11.2013 1 UND TÄGLICH GRÜßT DER SYSTEMTEST

Upload: others

Post on 30-May-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

“LET’S HAVE A PARTY…” RUDOLF E. GROETZ BENJAMIN HOFMANN HEAD OF QA, JUMIO INC. SYSTEM TEST ENGINEER, JUMIO INC. ASQF-VORTRAG 26.11.2013

1

UND TÄGLICH GRÜßT DER SYSTEMTEST

Page 2: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

2

Wer zum Teufel ist Jumio?

Page 3: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

3

Was zum Teufel macht Jumio?

Page 4: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

4

Was zum Teufel macht Jumio?

Page 5: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

5

Woraus zum Teufel besteht Jumio?

Palo Alto Linz Wien Moskau

Barnaul

1 Scrum Master 4 Product Owner 24 Developer 7 Test Engineers 7 Operation Engineers 6 Integration Engineers + Sales, Marketing…

Page 6: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

6

Continuous Delivery

Continuous Delivery

Continuous Integration

Continuous Testing

Continuous Deployment = + +

Page 7: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

7

System Test Strategien

Sprint 1 Sprint 2

Sprint 3

2.) Nach dem SprintEnde durch ein externes QA-Team Scrum-Team arbeitet bereits am neuen Sprint

= Systemtests

Sprint 1 Sprint 2

Sprint 3

4.) Continuous System Test während des Sprints

Sprint 1 Sprint 2

Sprint 3

1.) Am SprintEnde durch das Scrum-Team

Sprint 1 Sprint 2

Hardening

3.) Eigener Hardeningsprint

Page 8: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

8

Jumio System Test Strategie 1.0

Sprint 1 Sprint 2

Sprint 3

= Systemtests

Sprint 1 Sprint 2

Sprint 3

4.) Continuous System Test während des Sprints

= Systemtests

2.) Nach dem SprintEnde durch ein externes QA-Team Scrum-Team arbeitet bereits am neuen Sprint

Sprint 1 Sprint 2

Sprint 3

1.) Am SprintEnde durch das Scrum-Team

Sprint 1 Sprint 2

Hardening

3.) Eigener Hardeningsprint

Page 9: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

9

Sprint 1 Sprint 2

Sprint 3 Hotfix 1.1

= Systemtests

Sprint 1 Sprint 2

Sprint 3

2.) Nach dem SprintEnde durch ein externes QA-Team Scrum-Team arbeitet bereits am neuen Sprint

Jumio System Test Strategie 1.0

Page 10: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

10

Die Gretchen Frage

„Ist unsere Testautomation und unsere

Systemteststrategie geeignet um unseren

Anforderungen gerecht zu werden?“

Page 11: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

11

Sprint 1 Sprint 2

Sprint 3

4.) Continuous System Test während des Sprints

= Systemtests

Jumio System Test Strategie 2.0

Sprint 1 Sprint 2

Sprint 3

2.) Nach dem SprintEnde durch ein externes QA-Team Scrum-Team arbeitet bereits am neuen Sprint

Sprint 1 Sprint 2

Sprint 3

1.) Am SprintEnde durch das Scrum-Team

Sprint 1 Sprint 2

Hardening

3.) Eigener Hardeningsprint

Page 12: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

12

Jumio Definition of Done

- ...

- Ein risikobasierter Systemtest fand permanent während der Entwicklung statt

- Ein risikobasierter Systemtest hat auf PREPROD mit dem Release Candidate stattgefunden (P4 liefern 3x in Folge kein rotes Ergebnis)

- Ein explorativer manueller Systemtest hat auf PREPROD mit dem Release Candidate stattgefunden

- ...

Page 13: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

13

Gestatten: Test Engineer, System Test Engineer!

Page 14: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

14

Was bedeutet Systemtest?

The question a system test attempts to answer is:

“Does the product operate the way a

user would expect and produce the desired results?”

Page 15: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

15

Artifact repository

Env/App Cfg

Commit Stage

Acceptance Stage

Production

Preprod Stage

Performance Stage

Diversity Stage

SourceCode

Artefactory

Customer Stage

X-UAT Stage

QA selbstgesteuertes Deployment

OPS Deployment Auf Knopfdruck

Die JUMIO Continuous Delivery Pipeline

OPS QA DEV

Page 16: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

16

Die JUMIO Continuous Delivery Pipeline

Artifact repository

Env/App Cfg

Commit Stage

Acceptance Stage

Production

Preprod Stage

Performance Stage

Diversity Stage

SourceCode

Artefactory

Customer Stage

X-UAT Stage

QA selbstgesteuertes Deployment

OPS Deployment Auf Knopfdruck

OPS QA DEV TDD BDD ATDD BDTD?

Page 17: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

17

Die JUMIO Continuous Delivery Pipeline

Artifact repository

Env/App Cfg

Commit Stage

Acceptance Stage

Production

Preprod Stage

Performance Stage

Diversity Stage

SourceCode

Artefactory

Customer Stage

X-UAT Stage

QA selbstgesteuertes Deployment

OPS Deployment Auf Knopfdruck

OPS QA DEV BUILD DEPLOY TEST DESTROY

Page 18: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

18

Die JUMIO Continuous Delivery Pipeline

Artifact repository

Env/App Cfg

Commit Stage

Acceptance Stage

Production

Preprod Stage

Performance Stage

Diversity Stage

SourceCode

Artefactory

Customer Stage

X-UAT Stage

QA selbstgesteuertes Deployment

OPS Deployment Auf Knopfdruck

OPS QA DEV

Page 19: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

19

P1 – P4

Admin Backend

Admin Frontend

Client

Neuer Code

Geä

nd

erte

r C

od

e

Story 4711 1 neues Feature entsteht - Acc. Crit 1 - Acc. Crit 2 1 bestehendes Feature muss angepasst werden - Acc. Crit 3

P1 Story Acc. Tests

P2 Story Acc. Tests Regression

P3 Story System Tests Regression

P4 System Tests Regression

Page 20: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

20

Jumio Testframework 1.0

Page 21: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

21

JumiUM Testframework 2.0

Page 22: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

22

JumiUM

Spock

Geb Webdriver

Appium UI-Automation

Robotium

Sikuli

Selenium Grid

Jenkins

Flexdriver

Page 23: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

Selenium

Page 24: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

Selenium / Grid

Page 25: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

Geb / Webdriver

Page 26: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

26

Spock / Groovy

Page 27: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

Flexdriver/Sikuli

location = findImageOnScreen(image) Mouse.click(location)

Page 28: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

28

Jenkins / Maven / Gradle

Page 29: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

Selenium Grids – Browser Farms - Farmrunner

24 Browser *

13 Flash Versionen *

9 Betriebssysteme =

2808 –

~200 (ungültige Komb.)

= 2608

Page 30: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

30

Movie Time

Page 31: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

31

Lessons Learned

- Bauen sie eine Continuous Delivery Pipeline

- Deployen sie immer das selbe Artifact (Build), egal in welche Umgebung

- Halten sie alles in version control (Testcode, Infrastructure as a code…)

- Verwenden sie Testfixtures zum Setup der Testdaten

- Machen sie die Testresults sofort, für jeden sichtbar (Pipeline Radiators)

- Verhindern sie Flakey Tests (Build – Deploy – Test – Destroy)

- Testautomation ist SW-Entwicklung. Holen sie Developer ins Testteam.

- Tester Entwickeln – Entwickler testen – Jeder im Team ist für Testautomation zuständig.

- Verwende sie Open Source Tool (fast feetback, fast support)

- DEVOPS

Page 32: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

32

Wie geht es weiter?

Selenium goes mobile

Page 33: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

33

Die Antwort auf die ultimative Frage …

"How long would it take your organization to deploy

a change that involves just one single line of code?“

Mary Poppendieck

Page 34: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

34

Die Antwort auf die ultimative Frage …

462min

"How long would it take your organization to deploy

a change that involves just one single line of code?“

Mary Poppendieck

Page 35: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

35

Die Antwort auf die ultimative Frage …

462min/11(Personen)= ??

"How long would it take your organization to deploy

a change that involves just one single line of code?“

Mary Poppendieck

Page 36: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

36

Die Antwort auf die ultimative Frage …

462min/11(Personen)=

"How long would it take your organization to deploy

a change that involves just one single line of code?“

Mary Poppendieck

42

Page 37: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

37

Flakey Test

Page 38: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

38

Antwort auf ihre ultimativen Fragen …

?

Page 39: UND TÄGLICH GRÜßT DER SYSTEMTEST · Spock Geb Webdriver Appium UI-Automation Robotium Sikuli Selenium Grid Jenkins Flexdriver . Selenium . Selenium / Grid . Geb / Webdriver . 26

39

DONE