Automated testingof complex serviceorientedarchitecturesALEXANDER GROSSEALEXANDER SCHWARTZ
Who are we?• ALEXANDER SCHWARTZ (NOKIA)• ALEXANDER GROSSE (SOUNDCLOUD)
SOUNDCLOUD• World’s leading sound sharing  platform• HQ in Berlin with 70 employees• Guess how many QA ROLES?
PROBLEM
PROBLEM• Service oriented architecture (REST)• Evolve services independently from  each other(loose coupling)• Release often
COMMON SOLUTION•   Chaos•   Full regression tests•   Hide behind client•   Release in big intervals
WHAT IS THEPROBLEM WITH FULLREGRESSION TESTS?• Users might only use Part of the API• results in unnecessary version  incre...
PROVIDERCONTRACTS• Provider Contracts bind the consumer to  the entirety of the provider’s functionality• Irrespective of ...
WHAT IS ACTUALLYUSED?      obj1      /      Resp      obj2      /      obj3      /      obj4      /      obj5      /      ...
CDC’S• contracts are becoming consumer centric  not provider centric• means the consumer writes the contract• provider sti...
HOW IS A CONTRACTMADE?• Consumer team develops the usage of the  api• Writes an executable test case• discusses that test ...
WELCOMED SIDEEFFECTS•   communication•   better use of API’s•   Responsibility for failed releases changes•   SOA is not R...
BUT...• API’s are also used by externals• the exact same procedure cannot be  repeated with external consumers
WHAT TO DO?• Choose lead customers• Analyze log files to get the used resources  (but not how responses are being used)
ALEX S STARTS!;)
Alex Schwartz•Background: Programming•20+ years in IT•Scrum Master, 7+ years agile•Sr. Release and Test Specialist•Head of...
Nokia gate5 Berlin                            ng!                                        h iri                            ...
Places Backend Services - Architecture2   © 2011 Nokia Company Confidential v1.0 2011-06-16 Alexander Schwartz CDCs@PlacesB...
Different Change Frequencies                                                                                              ...
CDCs - How to verify coverage?      Talk to the client team!      Expose each bug with a test.      Double check:      • F...
Services and Pipelines                   Places                  Backend                    API                <<REST serv...
Services and Pipelines           Places          Registry           <<REST>>                          Places          Sear...
Services and Pipelines                 Places                Registry                 <<REST>>Account                     ...
Services and Pipelines                                                 City Pages                                         ...
Services and Pipelines                                                          City Pages                                ...
Services and Pipelines                                                             City Pages                             ...
CDC Example              Use a builder              pattern.6
CDC Example                       Use a builder                       pattern.              The provider provides a librar...
How we manage the CDCs?    Provider                        Consumer Side          Library          lib-cdc                ...
CDC Example w/ cucumber6
CDCs - Test Data    • best practice: every single test controls its test      data    • options:        • create data     ...
CDCs - How to verify coverage?      Talk to the client team!      Expose each bug with a test.      Double check:      • F...
Q&A7
Automated testing of complex service oriented architectures
Upcoming SlideShare
Loading in …5
×

Automated testing of complex service oriented architectures

1,143 views

Published on

a talk by Alexander Grosse (soundcloud) & Alexander Schwartz (Nokia)

for the Agile Testing Days 2011 (http://www.agiletstingdays.com)

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,143
On SlideShare
0
From Embeds
0
Number of Embeds
15
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Automated testing of complex service oriented architectures

    1. 1. Automated testingof complex serviceorientedarchitecturesALEXANDER GROSSEALEXANDER SCHWARTZ
    2. 2. Who are we?• ALEXANDER SCHWARTZ (NOKIA)• ALEXANDER GROSSE (SOUNDCLOUD)
    3. 3. SOUNDCLOUD• World’s leading sound sharing platform• HQ in Berlin with 70 employees• Guess how many QA ROLES?
    4. 4. PROBLEM
    5. 5. PROBLEM• Service oriented architecture (REST)• Evolve services independently from each other(loose coupling)• Release often
    6. 6. COMMON SOLUTION• Chaos• Full regression tests• Hide behind client• Release in big intervals
    7. 7. WHAT IS THEPROBLEM WITH FULLREGRESSION TESTS?• Users might only use Part of the API• results in unnecessary version increases
    8. 8. PROVIDERCONTRACTS• Provider Contracts bind the consumer to the entirety of the provider’s functionality• Irrespective of how much of this functionality it really needs• Think WSDL + XML• As the name indicates: Provider Centric!• loose coupling?
    9. 9. WHAT IS ACTUALLYUSED? obj1 / Resp obj2 / obj3 / obj4 / obj5 / obj6 /
    10. 10. CDC’S• contracts are becoming consumer centric not provider centric• means the consumer writes the contract• provider still has to accept it
    11. 11. HOW IS A CONTRACTMADE?• Consumer team develops the usage of the api• Writes an executable test case• discusses that test case with the provider team• Provider accepts by integrating into CI
    12. 12. WELCOMED SIDEEFFECTS• communication• better use of API’s• Responsibility for failed releases changes• SOA is not RPC!
    13. 13. BUT...• API’s are also used by externals• the exact same procedure cannot be repeated with external consumers
    14. 14. WHAT TO DO?• Choose lead customers• Analyze log files to get the used resources (but not how responses are being used)
    15. 15. ALEX S STARTS!;)
    16. 16. Alex Schwartz•Background: Programming•20+ years in IT•Scrum Master, 7+ years agile•Sr. Release and Test Specialist•Head of a Delivery Team -DevOps -Kanban -Pipelines -Continuous Delivery
    17. 17. Nokia gate5 Berlin ng! h iri We a re•500+ people•from 40+ countries•very international•provides maps for web and devices, and other applications•100+ open positions
    18. 18. Places Backend Services - Architecture2 © 2011 Nokia Company Confidential v1.0 2011-06-16 Alexander Schwartz CDCs@PlacesBackend
    19. 19. Different Change Frequencies - frozen - multiple versions- frozen, legacy- one versions - frequent changed - one version (during rollout: two versions) 2 © 2011 Nokia Company Confidential v1.0 2011-06-16 Alexander Schwartz CDCs@PlacesBackend
    20. 20. CDCs - How to verify coverage? Talk to the client team! Expose each bug with a test. Double check: • Find all the requests: analyze the access log • which part of the response is used? • analyze the code7
    21. 21. Services and Pipelines Places Backend API <<REST services>>
    22. 22. Services and Pipelines Places Registry <<REST>> Places Search <<REST>> Backend API Recommendations <<REST services>> <<REST>>
    23. 23. Services and Pipelines Places Registry <<REST>>Account PlacesService Search<<REST>> <<REST>> Backend API Recommendations <<REST services>> <<REST>>
    24. 24. Services and Pipelines City Pages <<webapp>> Places Registry Maps app for <<REST>> Windows 7 <<device app>>Account PlacesService Search<<REST>> <<REST>> Backend Maps Web <<webapp>> API Recommendations <<REST services>> PBAPI client <<REST>> API <<client API>>
    25. 25. Services and Pipelines City Pages <<webapp>> Places Registry Maps app for <<REST>> Windows 7 <<device app>>Account PlacesService Search<<REST>> <<REST>> Backend Maps Web <<webapp>> API Recommendations <<REST services>> PBAPI client <<REST>> API <<client API>> Build Pipeline Order
    26. 26. Services and Pipelines City Pages <<webapp>> Places Registry Maps app for <<REST>> Windows 7 <<device app>>Account PlacesService Search<<REST>> <<REST>> Backend Maps Web <<webapp>> API Recommendations <<REST services>> PBAPI client <<REST>> API <<client API>> Upstrea Downstream Build Pipeline Order
    27. 27. CDC Example Use a builder pattern.6
    28. 28. CDC Example Use a builder pattern. The provider provides a library to simplify CDC suites.6
    29. 29. How we manage the CDCs? Provider Consumer Side Library lib-cdc CDC S60-to- Provider app code repo vvv - Test suite CDCs7
    30. 30. CDC Example w/ cucumber6
    31. 31. CDCs - Test Data • best practice: every single test controls its test data • options: • create data • use existing data • use a controlled data set • depends on context of the test system7
    32. 32. CDCs - How to verify coverage? Talk to the client team! Expose each bug with a test. Double check: • Find all the requests: analyze the access log • which part of the response is used? • analyze the code7
    33. 33. Q&A7

    ×