testing microservice-architecture-qe

Download Testing microservice-architecture-qe

If you can't read please download the document

Post on 15-Apr-2017

72 views

Category:

Technology

1 download

Embed Size (px)

TRANSCRIPT

Testing MICROSERVICE ARCHITECTURE

UKASZROSONEK

TESTING MICROSERVICESARCHITECTURE

1

ABOUT ME:

# Senior Test Engineer

# TestDetective.com

2

MONOLITHARCHITECTURE

ISSUES:# application scalability# technology stack commitment# reversed learning curve# development process# single point of failure

3

MICROSERVICESARCHITECTURE

PROS:# independent development# continuous deployment# scalability# technology diversity# fault isolation

4

WHATS THE RUSH ?

5

WHATS THE RUSH ?

6

HTTP REQUEST- RESPONSEclient

db

POSTGETValidationService/NewUser

7

REST / JSON APIPOST /NewUser

{ name: John, surname: Snow, address: { city: Winterfell, land: Seven Kingdoms }}UserService:

201 Created{ UserId: 1}

8

WEBSERVICE ANATOMY

ORMAPIDOMAINSERVICEEXTERNAL CLIENTSDB

9

TESTING STRATEGIES

10

UNIT TESTINGORMAPIDOMAINSERVICEEXTERNAL CLIENTS

11

WHATS THE PROBLEM ?

12

INTEGRATION TESTINGORMAPIDOMAINSERVICEEXTERNAL CLIENTSDB

13

WHATS THE PROBLEM ?

14

CONTRACT TESTING

15

E2E / FUNCTIONALTESTS

16

END-2-END TESTINGCHALLENGES# test releases stability# network calls issues# external services debugging

17

END-2-END TEST PATTERNS# as few as possible# focus on user perspective# user perspective != GUI# test environment as code

18

PERFORMANCE TESTING

-dekompozycja systemu w male niezalezne aplikacje zwieksza ilosc wywolan sieciowych w naszym systemie-przykladowo: jezeli w aplikacji monolitycznej dana funkcjonalnosc wymagala zapytania do bazy danych, to mozliwe ze w architekturze mikroserwisow bedzie wymagala requestow do kilku innych aplikacji-wszystko to spowalnia nasz system-jesli mamy lancuch synchronicznych wywolan, to opoznienie na jednym z wywolan powoduje wydluzenie calej operacji-wedlug badan, uzytkownik po 4sekundach czekania na odpowiedz aplikacji w wiekszosci przypadkow zamknie strone internetowa

-wazne jest zarowno testowanie wydajnosciowe poszczegolnych aplikacji, jak i calych funkcjonalnosci, skladajacych sie z requestow do kilku roznych aplikacji-testowanie pojedynczych endpoitow w izolacji pomaga nam poznac ograniczenia techniczne naszej aplikacji, oraz oraz lepiej dostosowac jej parametry-testowanie calych funkcjonalnosci pozwala nam poznac bottlenecki w naszym systemie. Znajac je mozemy efektywniej wyskalowac aplikacje lub dokonac dekompozycji systemu19

DESIGN FOR FAILURE

20

TAKEAWAYS# no silver bullet# automate your checks# test contracts# design for failure

21

Q&A# lukasz.roslonek@gmail.com# twitter.com/TestDetective# testdetective.com

22