SlideShare ist ein Scribd-Unternehmen logo
1 von 34
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

EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 

Kürzlich hochgeladen (20)

EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 

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