und tÄglich grÜßt der systemtest · spock geb webdriver appium ui-automation robotium sikuli...
TRANSCRIPT
“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
2
Wer zum Teufel ist Jumio?
3
Was zum Teufel macht Jumio?
4
Was zum Teufel macht Jumio?
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…
6
Continuous Delivery
Continuous Delivery
Continuous Integration
Continuous Testing
Continuous Deployment = + +
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
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
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
10
Die Gretchen Frage
„Ist unsere Testautomation und unsere
Systemteststrategie geeignet um unseren
Anforderungen gerecht zu werden?“
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
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
- ...
13
Gestatten: Test Engineer, System Test Engineer!
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?”
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
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?
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
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
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
20
Jumio Testframework 1.0
21
JumiUM Testframework 2.0
22
JumiUM
Spock
Geb Webdriver
Appium UI-Automation
Robotium
Sikuli
Selenium Grid
Jenkins
Flexdriver
Selenium
Selenium / Grid
Geb / Webdriver
26
Spock / Groovy
Flexdriver/Sikuli
location = findImageOnScreen(image) Mouse.click(location)
28
Jenkins / Maven / Gradle
Selenium Grids – Browser Farms - Farmrunner
24 Browser *
13 Flash Versionen *
9 Betriebssysteme =
2808 –
~200 (ungültige Komb.)
= 2608
30
Movie Time
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
32
Wie geht es weiter?
Selenium goes mobile
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
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
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
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
37
Flakey Test
38
Antwort auf ihre ultimativen Fragen …
?
39
DONE