„10 things i wishedthey‘dtoldme!“ · 2019. 5. 8. · seqis „10 things“ –programm 2017...

50
„10 things I wished they‘d told me!“ aktuell. innovativ. praxisbezogen.

Upload: others

Post on 24-Sep-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

„10 things I wished they‘d told me!“

aktuell. innovativ. praxisbezogen.

Page 2: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

„10 things I wished they‘d told me!“

Julia Kremsl, MASEQIS Marketing

Page 3: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

Darum SEQIS...

Software-Qualitätssicherung

Page 4: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

SEQIS „10 things“ – Programm 2017

16.03.2017 AgileTestingStrategiefürdieeffizienteContinuousDelivery vonMicroservices

01.06.2017 Die EU Datenschutz-Grundverordnung –Auswirkungen auf den Test

21.09.2017 Auf dem Weg zur innovativen Lösung –Kreativität in der IT Analyse

16.11.2017 Sind Sie (sich) wirklich sicher? –IT Security im Fokus

Page 5: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

SEQIS „10 things“ – Programm 2017

16.03.2017 AgileTestingStrategiefürdieeffizienteContinuousDelivery vonMicroservices

01.06.2017 Die EU Datenschutz-Grundverordnung –Auswirkungen auf den Test

21.09.2017 Auf dem Weg zur innovativen Lösung –Kreativität in der IT Analyse

16.11.2017 Sind Sie (sich) wirklich sicher? –IT Security im Fokus

Page 6: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

Agile Testing Strategie für die effiziente Continuous Delivery von Microservices

Mag. Alexander Vukovic, BSc (Hons)Agile Quality Coach, Geschäftsleitung

Page 7: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

Presentation Layer

ServiceComposition/Choreography Layer

ServiceRuntime Environment

ServiceRuntime Environment

MicroserviceAPIServiceProtocol

BusinessLogik

HTTP-Client

DataStore

Page 8: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

Katalogservice

Bestellservice

Bezahlservice

Empfehlungsservice

Nachrichtenservice

Beispiel Microservices für einen Shop

Page 9: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

1. Berücksichtigen Sie die Eigenheiten von Microservices

• Fachliche Trennung• Unabhängig• Lose Kopplung• Redundanz• API

Page 10: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

Quellenverzeichnis siehe S. 50

Page 11: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

2. Setzen Sie auf geeignete Tools

• API-Testautomation• Containerization• Agile Issue Tracking• Agile Test Management

Page 12: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

Exploratives Session Based Testingvon Microservices?

Page 13: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices
Page 14: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

3. Exploratives Session BasedTesting, unbedingt!

• Nutzen Sie die Schnittstellen• Testen Sie über die GUI• Nutzen Sie Tools, die die

Schnittstellen sichtbar machen

Page 15: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

Unit Testing + Mocking

ServiceRuntime Environment

MicroserviceAPIServiceProtocol

BusinessLogik

HTTP-Client

DataStore

Page 16: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

Component/API Testing

ServiceRuntime Environment

MicroserviceAPIServiceProtocol

BusinessLogik

HTTP-Client

DataStoreIn-

Memory

FunktionaleTests• „Testmodus“• In-MemoryDatastore• Dependency Injection• Testmock fürandere

Services

Testmock

Page 17: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

Contract Testing

ServiceRuntime Environment

MicroserviceAPIServiceProtocol

BusinessLogik

HTTP-Client

DataStore

Frameworks• Pact• Pacto• Janus

Page 18: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

Automationsstrategie

Component/APIFunctional

Unit+Contract

Page 19: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

4. Setzen Sie auf die richtige Basis

• Unit Tests und Mocks decken Kernkomponenten ab

• Component Tests sichern Funktionalität• Contract Tests: Das Fallnetz für API-

Änderungen

Page 20: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

Presentation Layer

ServiceComposition/Choreography Layer

ServiceRuntime Environment

ServiceRuntime Environment

MicroserviceAPIServiceProtocol

BusinessLogik

HTTP-Client

DataStore

Page 21: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

End 2 End Testing Cookbook

• So wenige Testfälle wie möglich• Die richtigen Testfälle (risikobasiert)• Orientieren Sie sich am Endbenutzer• Testbreite über End 2 End• Testtiefe über Unit/Component/Contract

Page 22: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

Nutzen Sie Behavior Driven Development

Page 23: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

Automationsstrategie

SBTEnd2EndBDD

Component/APIFunctional

Unit+Contract

Page 24: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

5. Sichern Sie die Anforderungen aus Benutzersicht mittels End 2 End Tests

• Automatisieren aus Benutzersicht• E2E Cookbook realisieren• BDD Testfallbeschreibung• Kein Ersatz für Session Based Manual

Testing

Page 25: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

0%

20%

40%

60%

80%

100%

Hardwaretakesitall

Configmatters

Applikation,sonstnichts

WoliegtdiePerformance?

Hardware Konfiguration Applikation

Page 26: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

KonfigurationistTeildesCodes!(undmussdahergenausoversioniert undgetestetwerden)

Page 27: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

[https://wiki.jenkins-ci.org/display/JENKINS/Performance+Plugin]

Page 28: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

Performance Engineering: Toolgestützt

Quelle:http://omerio.com/2011/05/22/effective-and-affordable-load-testing-using-jmeter/

Quelle:https://blog.seqis.com/2011/04/06/neotys-neoload-vs-hp-loadrunner-wie-schlagt-sich-david-gegen-goliath-teil-2/

Page 29: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

PerformancestrategieProd

Monitor

SystemPerformanceEngineering

Component PerformanceEngineering

UnitTestPerformance

Page 30: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

6. Machen Sie auch die Performance zu Ihrem Projekt

• Nicht nur die Entwicklung, sondern auch der Betrieb sind Aufgabe des Teams

• Performance muss kontinuierlich überwacht und optimiert werden

• Damit sichern Sie auch Usability, Skalierbarkeit, Stabilität und Concurrency

Page 31: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

JedesMicroservice mussunabhängigversioniert unddeployed werdenkönnen.

Page 32: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

Katalogservice

Bestellservice

Bezahlservice

Empfehlungsservice

Nachrichtenservice

V1.2

Page 33: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

Quelle: https://blog.jetbrains.com/phpstorm/2015/10/docker-support-in-phpstorm/

Page 34: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

Quelle: www.docker.com

Page 35: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

Quelle: www.docker.com

Page 36: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

7. Testumgebungsmanagement automatisieren - containerisiert

• Vom ersten Build bis in Produktion• Minimaler OS-Overhead• Konfiguration ist Teil des Codes und des

Deployments• Skalierbar & wartbar

Page 37: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

Katalogservice

Bestellservice

Bezahlservice

Empfehlungsservice

Nachrichtenservice

Page 38: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

Der „Testmodus“

• Microservices können in einen Testmodus versetzt werden

• Damit „laden“ sie ein definiertes Set an Testdaten

• Testdaten können „resettet“ werden• Testdaten können verändert und gelöscht

werden

Page 39: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

8. Automatisieren Sie Ihre Testdaten

• Microservices stellen ihre eigenen Demodaten im Testmodus bereit

• Änderungen werden im Testmodus nicht an andere Services weitergegeben

• Testfälle nutzen die Demodaten oder erstellen ihre eigenen Testdaten

Page 40: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

Quelle: © SEQIS Software Testing GmbH

Page 41: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

9. Automatisierte Continuous Integration zur Absicherung Ihrer Qualität

• Wiederholbare Prozesse• Immediate Feedback• „Alles“

Page 42: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

Quelle: https://wiki.jenkins-ci.org/display/JENKINS/Build+Pipeline+Plugin

Page 43: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

Quelle: https://markosrendell.wordpress.com/2014/03/03/practical-benefits-of-continuous-delivery/

Page 44: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

10. Automatisieren Sie den gesamten Weg bis in Produktion mittels Continuous Delivery

• Weniger Fehler• Schnellerer Durchlauf• Nur kontrollierte Qualität in Produktion

Page 45: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

Agile Testing Strategie für effiziente Continous Delivery von Microservices

Page 46: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

[email protected]

Quelle: © Alexander Vukovic

Page 47: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

Agile Testing Strategie für die effiziente Continuous Delivery von Microservices

Mag. Alexander Vukovic, BSc (Hons)Agile Quality Coach, Geschäftsleitung

Page 48: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

SEQIS „10 things“ – Programm 2017

16.03.2017 AgileTestingStrategiefürdieeffizienteContinuousDelivery vonMicroservices

01.06.2017 Die EU Datenschutz-Grundverordnung –Auswirkungen auf den Test

21.09.2017 Auf dem Weg zur innovativen Lösung –Kreativität in der IT Analyse

16.11.2017 Sind Sie (sich) wirklich sicher? –IT Security im Fokus

Page 49: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

„10 things I wished they‘d told me!“

aktuell. innovativ. praxisbezogen.

Page 50: „10 things I wishedthey‘dtoldme!“ · 2019. 5. 8. · SEQIS „10 things“ –Programm 2017 16.03.2017 Agile Testing Strategie für die effiziente Continuous Deliveryvon Microservices

Quellenverzeichnis

• atlassian.com• jenkins.io• docker.com• junit.org• confluence.atlassian.com• bitbucket.org• seleniumhq.org• neotys.com• git-scm.com• cucumber.io• confluence.xpand-addons.com• eazybi.com• grafana.com• soapui.com• jmeter.apache.org• prometheus.io