• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Automated testing of complex service oriented architectures
 

Automated testing of complex service oriented architectures

on

  • 810 views

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

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

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

Statistics

Views

Total Views
810
Views on SlideShare
806
Embed Views
4

Actions

Likes
0
Downloads
10
Comments
0

2 Embeds 4

http://lanyrd.com 3
http://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \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 Automated testing of complex service oriented architectures Presentation Transcript

  • 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 increases
  • 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?
  • WHAT IS ACTUALLYUSED? obj1 / Resp obj2 / obj3 / obj4 / obj5 / obj6 /
  • CDC’S• contracts are becoming consumer centric not provider centric• means the consumer writes the contract• provider still has to accept it
  • 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
  • WELCOMED SIDEEFFECTS• communication• better use of API’s• Responsibility for failed releases changes• SOA is not RPC!
  • 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 a Delivery Team -DevOps -Kanban -Pipelines -Continuous Delivery
  • 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
  • Places Backend Services - Architecture2 © 2011 Nokia Company Confidential v1.0 2011-06-16 Alexander Schwartz CDCs@PlacesBackend
  • 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
  • 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
  • Services and Pipelines Places Backend API <<REST services>>
  • Services and Pipelines Places Registry <<REST>> Places Search <<REST>> Backend API Recommendations <<REST services>> <<REST>>
  • Services and Pipelines Places Registry <<REST>>Account PlacesService Search<<REST>> <<REST>> Backend API Recommendations <<REST services>> <<REST>>
  • 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>>
  • 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
  • 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
  • CDC Example Use a builder pattern.6
  • CDC Example Use a builder pattern. The provider provides a library to simplify CDC suites.6
  • How we manage the CDCs? Provider Consumer Side Library lib-cdc CDC S60-to- Provider app code repo vvv - Test suite CDCs7
  • CDC Example w/ cucumber6
  • 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
  • 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
  • Q&A7