SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Downloaden Sie, um offline zu lesen
Automated testing
of complex service
oriented
architectures
ALEXANDER GROSSE
ALEXANDER 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 THE
PROBLEM WITH FULL
REGRESSION TESTS?
• Users might only use Part of the API
• results in unnecessary version
  increases
PROVIDER
CONTRACTS
• 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 ACTUALLY
USED?
      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 CONTRACT
MADE?
• 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 SIDE
EFFECTS
•   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 - Architecture




2   © 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 code




7
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
                                Places
Service         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
                                Places
Service         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
                                         Places
Service         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
                                         Places
Service         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 CDCs

7
CDC Example w/ cucumber




6
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 system




7
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 code




7
Q&A




7

Weitere ähnliche Inhalte

Ähnlich wie Automated testing of complex service oriented architectures

(ATS4-DEV04) Protocols as RESTful Services and RESTful URL Routing
(ATS4-DEV04) Protocols as RESTful Services and RESTful URL Routing(ATS4-DEV04) Protocols as RESTful Services and RESTful URL Routing
(ATS4-DEV04) Protocols as RESTful Services and RESTful URL RoutingBIOVIA
 
RefCard API Architecture Strategy
RefCard API Architecture StrategyRefCard API Architecture Strategy
RefCard API Architecture StrategyOCTO Technology
 
Expressing your UI in JSON – plain, data binding, advanced data binding
Expressing your UI in JSON – plain, data binding, advanced data bindingExpressing your UI in JSON – plain, data binding, advanced data binding
Expressing your UI in JSON – plain, data binding, advanced data bindingStarcounter
 
What's New in Confluent Platform 5.5
What's New in Confluent Platform 5.5What's New in Confluent Platform 5.5
What's New in Confluent Platform 5.5confluent
 
戦う情シス!全社 API で社内アプリ開発を加速させよう
戦う情シス!全社 API で社内アプリ開発を加速させよう戦う情シス!全社 API で社内アプリ開発を加速させよう
戦う情シス!全社 API で社内アプリ開発を加速させようYuki Hattori
 
IBM Integration Bus and REST APIs - Sanjay Nagchowdhury
IBM Integration Bus and REST APIs - Sanjay NagchowdhuryIBM Integration Bus and REST APIs - Sanjay Nagchowdhury
IBM Integration Bus and REST APIs - Sanjay NagchowdhuryKaren Broughton-Mabbitt
 
Monitoring API Performance and Delivering a Scalable API Solution
Monitoring API Performance and Delivering a Scalable API SolutionMonitoring API Performance and Delivering a Scalable API Solution
Monitoring API Performance and Delivering a Scalable API SolutionWSO2
 
Creating APIs with the WSO2 Platform
Creating APIs with the WSO2 PlatformCreating APIs with the WSO2 Platform
Creating APIs with the WSO2 PlatformSagara Gunathunga
 
I Love APIs 2015 : Zero to Thousands TPS Private Cloud Operations Workshop
I Love APIs 2015 : Zero to Thousands TPS Private Cloud Operations WorkshopI Love APIs 2015 : Zero to Thousands TPS Private Cloud Operations Workshop
I Love APIs 2015 : Zero to Thousands TPS Private Cloud Operations WorkshopApigee | Google Cloud
 
Becoming a Connected Insurer With API-led Connectivity
Becoming a Connected Insurer With API-led ConnectivityBecoming a Connected Insurer With API-led Connectivity
Becoming a Connected Insurer With API-led ConnectivityBui Kiet
 
Becoming a Connected Insurer With API-led Connectivity
Becoming a Connected Insurer With API-led ConnectivityBecoming a Connected Insurer With API-led Connectivity
Becoming a Connected Insurer With API-led ConnectivityMuleSoft
 
Rs on Rails 2011
Rs on Rails 2011Rs on Rails 2011
Rs on Rails 2011Fabio Akita
 
SQL Azure Federation and Scalability
SQL Azure Federation and ScalabilitySQL Azure Federation and Scalability
SQL Azure Federation and ScalabilityEduardo Castro
 
INTERFACE by apidays_What's your Type? Understanding API Types and Choosing t...
INTERFACE by apidays_What's your Type? Understanding API Types and Choosing t...INTERFACE by apidays_What's your Type? Understanding API Types and Choosing t...
INTERFACE by apidays_What's your Type? Understanding API Types and Choosing t...apidays
 
Building Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaBuilding Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaGuido Schmutz
 
2013 02-apache conna-api-manager-asanka
2013 02-apache conna-api-manager-asanka2013 02-apache conna-api-manager-asanka
2013 02-apache conna-api-manager-asankaWSO2
 
Triangle Node Meetup : APIs in Minutes with Node.js
Triangle Node Meetup :  APIs in Minutes with Node.jsTriangle Node Meetup :  APIs in Minutes with Node.js
Triangle Node Meetup : APIs in Minutes with Node.jsShubhra Kar
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop OverviewShubhra Kar
 

Ähnlich wie Automated testing of complex service oriented architectures (20)

(ATS4-DEV04) Protocols as RESTful Services and RESTful URL Routing
(ATS4-DEV04) Protocols as RESTful Services and RESTful URL Routing(ATS4-DEV04) Protocols as RESTful Services and RESTful URL Routing
(ATS4-DEV04) Protocols as RESTful Services and RESTful URL Routing
 
RefCard API Architecture Strategy
RefCard API Architecture StrategyRefCard API Architecture Strategy
RefCard API Architecture Strategy
 
Expressing your UI in JSON – plain, data binding, advanced data binding
Expressing your UI in JSON – plain, data binding, advanced data bindingExpressing your UI in JSON – plain, data binding, advanced data binding
Expressing your UI in JSON – plain, data binding, advanced data binding
 
What's New in Confluent Platform 5.5
What's New in Confluent Platform 5.5What's New in Confluent Platform 5.5
What's New in Confluent Platform 5.5
 
戦う情シス!全社 API で社内アプリ開発を加速させよう
戦う情シス!全社 API で社内アプリ開発を加速させよう戦う情シス!全社 API で社内アプリ開発を加速させよう
戦う情シス!全社 API で社内アプリ開発を加速させよう
 
IBM Integration Bus and REST APIs - Sanjay Nagchowdhury
IBM Integration Bus and REST APIs - Sanjay NagchowdhuryIBM Integration Bus and REST APIs - Sanjay Nagchowdhury
IBM Integration Bus and REST APIs - Sanjay Nagchowdhury
 
MSB Deep Dive
MSB Deep DiveMSB Deep Dive
MSB Deep Dive
 
Monitoring API Performance and Delivering a Scalable API Solution
Monitoring API Performance and Delivering a Scalable API SolutionMonitoring API Performance and Delivering a Scalable API Solution
Monitoring API Performance and Delivering a Scalable API Solution
 
Creating APIs with the WSO2 Platform
Creating APIs with the WSO2 PlatformCreating APIs with the WSO2 Platform
Creating APIs with the WSO2 Platform
 
I Love APIs 2015 : Zero to Thousands TPS Private Cloud Operations Workshop
I Love APIs 2015 : Zero to Thousands TPS Private Cloud Operations WorkshopI Love APIs 2015 : Zero to Thousands TPS Private Cloud Operations Workshop
I Love APIs 2015 : Zero to Thousands TPS Private Cloud Operations Workshop
 
Becoming a Connected Insurer With API-led Connectivity
Becoming a Connected Insurer With API-led ConnectivityBecoming a Connected Insurer With API-led Connectivity
Becoming a Connected Insurer With API-led Connectivity
 
Becoming a Connected Insurer With API-led Connectivity
Becoming a Connected Insurer With API-led ConnectivityBecoming a Connected Insurer With API-led Connectivity
Becoming a Connected Insurer With API-led Connectivity
 
REST APIs
REST APIsREST APIs
REST APIs
 
Rs on Rails 2011
Rs on Rails 2011Rs on Rails 2011
Rs on Rails 2011
 
SQL Azure Federation and Scalability
SQL Azure Federation and ScalabilitySQL Azure Federation and Scalability
SQL Azure Federation and Scalability
 
INTERFACE by apidays_What's your Type? Understanding API Types and Choosing t...
INTERFACE by apidays_What's your Type? Understanding API Types and Choosing t...INTERFACE by apidays_What's your Type? Understanding API Types and Choosing t...
INTERFACE by apidays_What's your Type? Understanding API Types and Choosing t...
 
Building Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaBuilding Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache Kafka
 
2013 02-apache conna-api-manager-asanka
2013 02-apache conna-api-manager-asanka2013 02-apache conna-api-manager-asanka
2013 02-apache conna-api-manager-asanka
 
Triangle Node Meetup : APIs in Minutes with Node.js
Triangle Node Meetup :  APIs in Minutes with Node.jsTriangle Node Meetup :  APIs in Minutes with Node.js
Triangle Node Meetup : APIs in Minutes with Node.js
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop Overview
 

Mehr von Dr. Alexander Schwartz

Wrestling with Conway's Law: How to support cross-functional teams working on...
Wrestling with Conway's Law: How to support cross-functional teams working on...Wrestling with Conway's Law: How to support cross-functional teams working on...
Wrestling with Conway's Law: How to support cross-functional teams working on...Dr. Alexander Schwartz
 
#AT16VIE: Does Agile mean we have no time for testing?
#AT16VIE: Does Agile mean we have no time for testing?#AT16VIE: Does Agile mean we have no time for testing?
#AT16VIE: Does Agile mean we have no time for testing?Dr. Alexander Schwartz
 
Does agile mean having even less time for testing?!
Does agile mean having even less time for testing?!Does agile mean having even less time for testing?!
Does agile mean having even less time for testing?!Dr. Alexander Schwartz
 
User Stories Schneiden mit Elefanten-Carpaccio (Scrum-Day 2016)
User Stories Schneiden mit Elefanten-Carpaccio (Scrum-Day 2016)User Stories Schneiden mit Elefanten-Carpaccio (Scrum-Day 2016)
User Stories Schneiden mit Elefanten-Carpaccio (Scrum-Day 2016)Dr. Alexander Schwartz
 
Hilfe, wir haben keine Zeit zum Testen!
Hilfe, wir haben keine Zeit zum Testen!Hilfe, wir haben keine Zeit zum Testen!
Hilfe, wir haben keine Zeit zum Testen!Dr. Alexander Schwartz
 
ScrumDay2015: Ein neues Dojo: Anwendergeschichten zerschneiden
ScrumDay2015: Ein neues Dojo: Anwendergeschichten zerschneidenScrumDay2015: Ein neues Dojo: Anwendergeschichten zerschneiden
ScrumDay2015: Ein neues Dojo: Anwendergeschichten zerschneidenDr. Alexander Schwartz
 
A New Dojo: The Art of Story Splitting
A New Dojo: The Art of Story SplittingA New Dojo: The Art of Story Splitting
A New Dojo: The Art of Story SplittingDr. Alexander Schwartz
 
Wie verändert sich Testen mit Continuous Delivery?
Wie verändert sich Testen mit Continuous Delivery?Wie verändert sich Testen mit Continuous Delivery?
Wie verändert sich Testen mit Continuous Delivery?Dr. Alexander Schwartz
 
Help, we have no more time for testing! (gotoCon Berlin 2013)
Help, we have no more time for testing! (gotoCon Berlin 2013)Help, we have no more time for testing! (gotoCon Berlin 2013)
Help, we have no more time for testing! (gotoCon Berlin 2013)Dr. Alexander Schwartz
 
AWS Ingredients for Deployment Patterns & the PBAPI canary-blue/green-hotstan...
AWS Ingredients for Deployment Patterns & the PBAPI canary-blue/green-hotstan...AWS Ingredients for Deployment Patterns & the PBAPI canary-blue/green-hotstan...
AWS Ingredients for Deployment Patterns & the PBAPI canary-blue/green-hotstan...Dr. Alexander Schwartz
 
Ignite Talk: Help, we have no more time for testing!
Ignite Talk: Help, we have no more time for testing!Ignite Talk: Help, we have no more time for testing!
Ignite Talk: Help, we have no more time for testing!Dr. Alexander Schwartz
 
How We Introduced Continuous Delivery?
How We Introduced Continuous Delivery?How We Introduced Continuous Delivery?
How We Introduced Continuous Delivery?Dr. Alexander Schwartz
 
How to brew a tasty agile test strategy
How to brew a tasty agile test strategyHow to brew a tasty agile test strategy
How to brew a tasty agile test strategyDr. Alexander Schwartz
 

Mehr von Dr. Alexander Schwartz (20)

Wrestling with Conway's Law: How to support cross-functional teams working on...
Wrestling with Conway's Law: How to support cross-functional teams working on...Wrestling with Conway's Law: How to support cross-functional teams working on...
Wrestling with Conway's Law: How to support cross-functional teams working on...
 
#AT16VIE: Does Agile mean we have no time for testing?
#AT16VIE: Does Agile mean we have no time for testing?#AT16VIE: Does Agile mean we have no time for testing?
#AT16VIE: Does Agile mean we have no time for testing?
 
Does agile mean having even less time for testing?!
Does agile mean having even less time for testing?!Does agile mean having even less time for testing?!
Does agile mean having even less time for testing?!
 
User Stories Schneiden mit Elefanten-Carpaccio (Scrum-Day 2016)
User Stories Schneiden mit Elefanten-Carpaccio (Scrum-Day 2016)User Stories Schneiden mit Elefanten-Carpaccio (Scrum-Day 2016)
User Stories Schneiden mit Elefanten-Carpaccio (Scrum-Day 2016)
 
Hilfe, wir haben keine Zeit zum Testen!
Hilfe, wir haben keine Zeit zum Testen!Hilfe, wir haben keine Zeit zum Testen!
Hilfe, wir haben keine Zeit zum Testen!
 
Change Dojo - Agile Testing Days 2015
Change Dojo - Agile Testing Days 2015Change Dojo - Agile Testing Days 2015
Change Dojo - Agile Testing Days 2015
 
ScrumDay2015: Ein neues Dojo: Anwendergeschichten zerschneiden
ScrumDay2015: Ein neues Dojo: Anwendergeschichten zerschneidenScrumDay2015: Ein neues Dojo: Anwendergeschichten zerschneiden
ScrumDay2015: Ein neues Dojo: Anwendergeschichten zerschneiden
 
Insights From Happy Change Agents
Insights From Happy Change AgentsInsights From Happy Change Agents
Insights From Happy Change Agents
 
A New Dojo: The Art of Story Splitting
A New Dojo: The Art of Story SplittingA New Dojo: The Art of Story Splitting
A New Dojo: The Art of Story Splitting
 
Wie verändert sich Testen mit Continuous Delivery?
Wie verändert sich Testen mit Continuous Delivery?Wie verändert sich Testen mit Continuous Delivery?
Wie verändert sich Testen mit Continuous Delivery?
 
What is Agile Testing?
What is Agile Testing? What is Agile Testing?
What is Agile Testing?
 
Ripening of a RESTful API
Ripening of a RESTful APIRipening of a RESTful API
Ripening of a RESTful API
 
Help, we have no more time for testing! (gotoCon Berlin 2013)
Help, we have no more time for testing! (gotoCon Berlin 2013)Help, we have no more time for testing! (gotoCon Berlin 2013)
Help, we have no more time for testing! (gotoCon Berlin 2013)
 
AWS Ingredients for Deployment Patterns & the PBAPI canary-blue/green-hotstan...
AWS Ingredients for Deployment Patterns & the PBAPI canary-blue/green-hotstan...AWS Ingredients for Deployment Patterns & the PBAPI canary-blue/green-hotstan...
AWS Ingredients for Deployment Patterns & the PBAPI canary-blue/green-hotstan...
 
Ignite Talk: Help, we have no more time for testing!
Ignite Talk: Help, we have no more time for testing!Ignite Talk: Help, we have no more time for testing!
Ignite Talk: Help, we have no more time for testing!
 
How releasing faster changes testing
How releasing faster changes testingHow releasing faster changes testing
How releasing faster changes testing
 
How to Introduce Continuous Delivery
How to Introduce Continuous DeliveryHow to Introduce Continuous Delivery
How to Introduce Continuous Delivery
 
How We Introduced Continuous Delivery?
How We Introduced Continuous Delivery?How We Introduced Continuous Delivery?
How We Introduced Continuous Delivery?
 
Kanban und DevOps bei Nokia
Kanban und DevOps bei NokiaKanban und DevOps bei Nokia
Kanban und DevOps bei Nokia
 
How to brew a tasty agile test strategy
How to brew a tasty agile test strategyHow to brew a tasty agile test strategy
How to brew a tasty agile test strategy
 

Kürzlich hochgeladen

Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsYoss Cohen
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentMahmoud Rabie
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...BookNet Canada
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...Karmanjay Verma
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxAna-Maria Mihalceanu
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFMichael Gough
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfAarwolf Industries LLC
 

Kürzlich hochgeladen (20)

Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platforms
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career Development
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDF
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdf
 

Automated testing of complex service oriented architectures

  • 1. Automated testing of complex service oriented architectures ALEXANDER GROSSE ALEXANDER SCHWARTZ
  • 2. Who are we? • ALEXANDER SCHWARTZ (NOKIA) • ALEXANDER GROSSE (SOUNDCLOUD)
  • 3. SOUNDCLOUD • World’s leading sound sharing platform • HQ in Berlin with 70 employees • Guess how many QA ROLES?
  • 5. PROBLEM • Service oriented architecture (REST) • Evolve services independently from each other(loose coupling) • Release often
  • 6. COMMON SOLUTION • Chaos • Full regression tests • Hide behind client • Release in big intervals
  • 7. WHAT IS THE PROBLEM WITH FULL REGRESSION TESTS? • Users might only use Part of the API • results in unnecessary version increases
  • 8. PROVIDER CONTRACTS • 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. WHAT IS ACTUALLY USED? obj1 / Resp obj2 / obj3 / obj4 / obj5 / obj6 /
  • 10. CDC’S • contracts are becoming consumer centric not provider centric • means the consumer writes the contract • provider still has to accept it
  • 11. HOW IS A CONTRACT MADE? • 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. WELCOMED SIDE EFFECTS • communication • better use of API’s • Responsibility for failed releases changes • SOA is not RPC!
  • 13. BUT... • API’s are also used by externals • the exact same procedure cannot be repeated with external consumers
  • 14. WHAT TO DO? • Choose lead customers • Analyze log files to get the used resources (but not how responses are being used)
  • 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. 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.
  • 19. Places Backend Services - Architecture 2 © 2011 Nokia Company Confidential v1.0 2011-06-16 Alexander Schwartz CDCs@PlacesBackend
  • 20. 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
  • 21. 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 code 7
  • 22. Services and Pipelines Places Backend API <<REST services>>
  • 23. Services and Pipelines Places Registry <<REST>> Places Search <<REST>> Backend API Recommendations <<REST services>> <<REST>>
  • 24. Services and Pipelines Places Registry <<REST>> Account Places Service Search <<REST>> <<REST>> Backend API Recommendations <<REST services>> <<REST>>
  • 25. Services and Pipelines City Pages <<webapp>> Places Registry Maps app for <<REST>> Windows 7 <<device app>> Account Places Service Search <<REST>> <<REST>> Backend Maps Web <<webapp>> API Recommendations <<REST services>> PBAPI client <<REST>> API <<client API>>
  • 26. Services and Pipelines City Pages <<webapp>> Places Registry Maps app for <<REST>> Windows 7 <<device app>> Account Places Service Search <<REST>> <<REST>> Backend Maps Web <<webapp>> API Recommendations <<REST services>> PBAPI client <<REST>> API <<client API>> Build Pipeline Order
  • 27. Services and Pipelines City Pages <<webapp>> Places Registry Maps app for <<REST>> Windows 7 <<device app>> Account Places Service Search <<REST>> <<REST>> Backend Maps Web <<webapp>> API Recommendations <<REST services>> PBAPI client <<REST>> API <<client API>> Upstrea Downstream Build Pipeline Order
  • 28. CDC Example Use a builder pattern. 6
  • 29. CDC Example Use a builder pattern. The provider provides a library to simplify CDC suites. 6
  • 30. How we manage the CDCs? Provider Consumer Side Library lib-cdc CDC S60-to- Provider app code repo vvv - Test suite CDCs 7
  • 31. CDC Example w/ cucumber 6
  • 32. 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 system 7
  • 33. 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 code 7
  • 34. Q&A 7

Hinweis der Redaktion

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n