SlideShare a Scribd company logo
1 of 41
Testing in the era of microservices
The role of testing in the microservices application lifecycle
Codemotion meetup, 12-04-2016
Container Solutions, Amsterdam
Pavel Chunyayev
@PavelChunyayev
Amsterdam
Levi9 HQ
Amsterdam โ€“ 2005
25 people
Novi Sad
Serbia
Novi Sad โ€“ 2005
320+ people
Zrenjanin
Serbia
Zrenjaninโ€“ 2014
30+ people
Iasi
Romania
Iasi โ€“ 2007
80+ people
Kiev
Ukraine
Kiev โ€“ 2008
130+ people
@PavelChunyayev
Electronic
Retail
Digital
Marketing
Traffic and
Transport
Software
Services
@PavelChunyayev
Customer satisfaction 2015
โ€ข 4th year great results in Outsourcing Performance study
โ€ข 2015: 100% customer recommendation score
Excellent trust score
@PavelChunyayev
About me
โ€ข 12 years of IT experience
โ€ข Lived and worked in Ukraine and Estonia
โ€ข Moved a year and half ago to the Netherlands
โ€ข Love cycling
โ€ข Learn Dutch
โ€ข Alpe dโ€™HuZes - http://deelnemers.opgevenisgeenoptie.nl/levi9
@PavelChunyayev
The story we all know
Development Testing Acceptance Production
@PavelChunyayev
Continuous Delivery
Incept
โ€ข Business idea
โ€ข Is needed
immediately
โ€ข Should be validated
Plan
โ€ข Refine
โ€ข Estimate
โ€ข Prioritize
Develop
โ€ข Put into sprint
โ€ข Develop in a branch
โ€ข Conduct a code
review
โ€ข Merge into master
Build
โ€ข Trigger pipeline
โ€ข Build
โ€ข Unit testing
โ€ข Integration testing
โ€ข Static code analysis
Test
โ€ข Contract testing
โ€ข E2E testing
โ€ข Security testing
โ€ข Resilience testing
Release
โ€ข Zero-downtime
โ€ข Canary testing
โ€ข Rolling deployment
โ€ข Blue / green
deployment
Operate
โ€ข Monitoring
โ€ข Validation of the
idea
โ€ข Money generation
โ€ข Disposal
Quality > Speed
Keep the product releasable
Build quality in
@PavelChunyayev
@PavelChunyayev
Build quality in
โ€ข Testing is not just presence or absence of defects
โ€ข Test should not just raise the cost of maintenance
โ€ข Stop thinking about functional testing only
โ€ข Quality goal need to be established early in the development process
โ€ข Clear understanding of quality requirements
โ€ข Automated testing โ€“ part of Definition of Done
โ€ข Move tests to the left
โ€ข TDD
Build โ€ข Test โ€ข Release
@PavelChunyayev
Continuous Delivery
Incept
โ€ข Business idea
โ€ข Is needed
immediately
โ€ข Should be validated
Plan
โ€ข Refine
โ€ข Estimate
โ€ข Prioritize
Develop
โ€ข Put into sprint
โ€ข Develop in a branch
โ€ข Conduct a code
review
โ€ข Merge into master
Build
โ€ข Trigger pipeline
โ€ข Build
โ€ข Unit testing
โ€ข Integration testing
โ€ข Static code analysis
Test
โ€ข Contract testing
โ€ข E2E testing
โ€ข Security testing
โ€ข Resilience testing
Release
โ€ข Zero-downtime
โ€ข Canary testing
โ€ข Rolling deployment
โ€ข Blue / green
deployment
Operate
โ€ข Monitoring
โ€ข Validation of the
idea
โ€ข Money generation
โ€ข Disposal
@PavelChunyayev
@PavelChunyayev
@PavelChunyayev
@PavelChunyayev
@PavelChunyayev
@PavelChunyayev
Testing pyramid
Executiontime
Morebusinessfeedback
Moredevelopmentfeedback
@PavelChunyayev
@PavelChunyayev
Pyramid vs microservice
@PavelChunyayev
Unit testing
@PavelChunyayev
Integration testing
@PavelChunyayev
Contract testing
@PavelChunyayev
End-to-end testing
@PavelChunyayev
@PavelChunyayev
Updating the contract
@PavelChunyayev
Updating the contract
@PavelChunyayev
Updating the contract
@PavelChunyayev
Updating the contract
@PavelChunyayev
Updating the contract
@PavelChunyayev
The top of the pyramid
@PavelChunyayev
@PavelChunyayev
@PavelChunyayev
@PavelChunyayev
@PavelChunyayev
@PavelChunyayev
@PavelChunyayev
Pyramid vs microservice
@PavelChunyayev
Continuous Delivery
Incept
โ€ข Business idea
โ€ข Is needed
immediately
โ€ข Should be validated
Plan
โ€ข Refine
โ€ข Estimate
โ€ข Prioritize
Develop
โ€ข Put into sprint
โ€ข Develop in a branch
โ€ข Conduct a code
review
โ€ข Merge into master
Build
โ€ข Trigger pipeline
โ€ข Build
โ€ข Unit testing
โ€ข Integration testing
โ€ข Static code analysis
Test
โ€ข Contract testing
โ€ข E2E testing
โ€ข Security testing
โ€ข Resilience testing
Release
โ€ข Zero-downtime
โ€ข Canary testing
โ€ข Rolling deployment
โ€ข Blue / green
deployment
Operate
โ€ข Monitoring
โ€ข Validation of the
idea
โ€ข Money generation
โ€ข Disposal
Keep the product releasable
Build quality in
@PavelChunyayev
Key takeaways
โ€ข Update testing practices
โ€ข Immutable infrastructure
โ€ข Reproducible and repeatable testing
โ€ข Build quality in
โ€ข Improve continuously
Any questions?
pavel@levi9.com

More Related Content

Viewers also liked

Testing & deploying microservices - XP Days Ukraine 2014
Testing & deploying microservices  - XP Days Ukraine 2014Testing & deploying microservices  - XP Days Ukraine 2014
Testing & deploying microservices - XP Days Ukraine 2014
Sam Newman
ย 
Diffy : Automatic Testing of Microservices @ Twitter
Diffy : Automatic Testing of Microservices @ TwitterDiffy : Automatic Testing of Microservices @ Twitter
Diffy : Automatic Testing of Microservices @ Twitter
Puneet Khanduri
ย 

Viewers also liked (6)

Contract Testing Php-pact
Contract Testing Php-pactContract Testing Php-pact
Contract Testing Php-pact
ย 
Testing & deploying microservices - XP Days Ukraine 2014
Testing & deploying microservices  - XP Days Ukraine 2014Testing & deploying microservices  - XP Days Ukraine 2014
Testing & deploying microservices - XP Days Ukraine 2014
ย 
(Exploratory) Testing Micro Services
(Exploratory) Testing Micro Services(Exploratory) Testing Micro Services
(Exploratory) Testing Micro Services
ย 
Diffy : Automatic Testing of Microservices @ Twitter
Diffy : Automatic Testing of Microservices @ TwitterDiffy : Automatic Testing of Microservices @ Twitter
Diffy : Automatic Testing of Microservices @ Twitter
ย 
Testing & deploying Microservices GeeCon 2014
Testing & deploying Microservices   GeeCon 2014Testing & deploying Microservices   GeeCon 2014
Testing & deploying Microservices GeeCon 2014
ย 
Testing a Microservices Architecture
Testing a Microservices ArchitectureTesting a Microservices Architecture
Testing a Microservices Architecture
ย 

More from Pavel Chunyayev

More from Pavel Chunyayev (13)

Experiment and validate business ideas - Talk outline at DevOps Showcase Amst...
Experiment and validate business ideas - Talk outline at DevOps Showcase Amst...Experiment and validate business ideas - Talk outline at DevOps Showcase Amst...
Experiment and validate business ideas - Talk outline at DevOps Showcase Amst...
ย 
Lifecycle of a microservices application - Iasi, Levi9 meetup - 28-6-2017
Lifecycle of a microservices application - Iasi, Levi9 meetup - 28-6-2017Lifecycle of a microservices application - Iasi, Levi9 meetup - 28-6-2017
Lifecycle of a microservices application - Iasi, Levi9 meetup - 28-6-2017
ย 
#nostaging - Software Circus - Amsterdam, 2-9-2016
#nostaging - Software Circus - Amsterdam, 2-9-2016#nostaging - Software Circus - Amsterdam, 2-9-2016
#nostaging - Software Circus - Amsterdam, 2-9-2016
ย 
Continuous Feedback from Testing - Continuous Delivery meetup - Amsterdam, 14...
Continuous Feedback from Testing - Continuous Delivery meetup - Amsterdam, 14...Continuous Feedback from Testing - Continuous Delivery meetup - Amsterdam, 14...
Continuous Feedback from Testing - Continuous Delivery meetup - Amsterdam, 14...
ย 
Lean part of DevOps - DevOps Amsterdam meetup - 17-8-2016
Lean part of DevOps - DevOps Amsterdam meetup - 17-8-2016Lean part of DevOps - DevOps Amsterdam meetup - 17-8-2016
Lean part of DevOps - DevOps Amsterdam meetup - 17-8-2016
ย 
Want Continuous Delivery? Give testing a priority! 16-6-2016, Friss, Utrecht
Want Continuous Delivery? Give testing a priority! 16-6-2016, Friss, UtrechtWant Continuous Delivery? Give testing a priority! 16-6-2016, Friss, Utrecht
Want Continuous Delivery? Give testing a priority! 16-6-2016, Friss, Utrecht
ย 
Versioning schemes and branching models for Continuous Delivery - Continuous ...
Versioning schemes and branching models for Continuous Delivery - Continuous ...Versioning schemes and branching models for Continuous Delivery - Continuous ...
Versioning schemes and branching models for Continuous Delivery - Continuous ...
ย 
Extending Ansible - Ansible Benelux meetup - Amsterdam 11-02-2016
Extending Ansible - Ansible Benelux meetup - Amsterdam 11-02-2016Extending Ansible - Ansible Benelux meetup - Amsterdam 11-02-2016
Extending Ansible - Ansible Benelux meetup - Amsterdam 11-02-2016
ย 
You donโ€™t need DTAP + Backbase implementation - Amsterdam 17-12-2015
You donโ€™t need DTAP + Backbase implementation - Amsterdam 17-12-2015You donโ€™t need DTAP + Backbase implementation - Amsterdam 17-12-2015
You donโ€™t need DTAP + Backbase implementation - Amsterdam 17-12-2015
ย 
DevOpsDays Ignite - Immutable infrastructure - Amsterdam 24-5-2015
DevOpsDays Ignite - Immutable infrastructure - Amsterdam 24-5-2015DevOpsDays Ignite - Immutable infrastructure - Amsterdam 24-5-2015
DevOpsDays Ignite - Immutable infrastructure - Amsterdam 24-5-2015
ย 
Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015
ย 
Arch9 - A cloud based continuous delivery implementation
Arch9 - A cloud based continuous delivery implementationArch9 - A cloud based continuous delivery implementation
Arch9 - A cloud based continuous delivery implementation
ย 
State of continuous delivery in 2015 - Minsk 15-5-2015
State of continuous delivery in 2015 - Minsk 15-5-2015State of continuous delivery in 2015 - Minsk 15-5-2015
State of continuous delivery in 2015 - Minsk 15-5-2015
ย 

Recently uploaded

Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
bodapatigopi8531
ย 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
ย 
CALL ON โžฅ8923113531 ๐Ÿ”Call Girls Badshah Nagar Lucknow best Female service
CALL ON โžฅ8923113531 ๐Ÿ”Call Girls Badshah Nagar Lucknow best Female serviceCALL ON โžฅ8923113531 ๐Ÿ”Call Girls Badshah Nagar Lucknow best Female service
CALL ON โžฅ8923113531 ๐Ÿ”Call Girls Badshah Nagar Lucknow best Female service
anilsa9823
ย 

Recently uploaded (20)

Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
ย 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
ย 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
ย 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
ย 
call girls in Vaishali (Ghaziabad) ๐Ÿ” >เผ’8448380779 ๐Ÿ” genuine Escort Service ๐Ÿ”โœ”๏ธโœ”๏ธ
call girls in Vaishali (Ghaziabad) ๐Ÿ” >เผ’8448380779 ๐Ÿ” genuine Escort Service ๐Ÿ”โœ”๏ธโœ”๏ธcall girls in Vaishali (Ghaziabad) ๐Ÿ” >เผ’8448380779 ๐Ÿ” genuine Escort Service ๐Ÿ”โœ”๏ธโœ”๏ธ
call girls in Vaishali (Ghaziabad) ๐Ÿ” >เผ’8448380779 ๐Ÿ” genuine Escort Service ๐Ÿ”โœ”๏ธโœ”๏ธ
ย 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
ย 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
ย 
Vip Call Girls Noida โžก๏ธ Delhi โžก๏ธ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida โžก๏ธ Delhi โžก๏ธ 9999965857 No Advance 24HRS LiveVip Call Girls Noida โžก๏ธ Delhi โžก๏ธ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida โžก๏ธ Delhi โžก๏ธ 9999965857 No Advance 24HRS Live
ย 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
ย 
Shapes for Sharing between Graph Data Spacesย - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spacesย - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spacesย - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spacesย - and Epistemic Querying of RDF-...
ย 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlanโ€™s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlanโ€™s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlanโ€™s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlanโ€™s ...
ย 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
ย 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
ย 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
ย 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
ย 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
ย 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
ย 
CALL ON โžฅ8923113531 ๐Ÿ”Call Girls Badshah Nagar Lucknow best Female service
CALL ON โžฅ8923113531 ๐Ÿ”Call Girls Badshah Nagar Lucknow best Female serviceCALL ON โžฅ8923113531 ๐Ÿ”Call Girls Badshah Nagar Lucknow best Female service
CALL ON โžฅ8923113531 ๐Ÿ”Call Girls Badshah Nagar Lucknow best Female service
ย 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
ย 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
ย 

Testing in the era of microservices - Codemotion meetup - Amsterdam, 12-04-2016

Editor's Notes

  1. Ideas come from all the sources. Questions are welcome. Disagreement is welcome, but after the talk.
  2. .
  3. .
  4. .
  5. .
  6. D - barely working T - people with special mindset test A - Some people accept months later
  7. Not every feature is needed. Shorter and shorter release cycles => Release more software in less time.
  8. Canโ€™t churn out. No manual testing.
  9. .
  10. * Independently releasable. * The testing strategies that applied for monolithic applications need to be reconsidered.
  11. Shared responsibility.
  12. .
  13. .
  14. Reproducible and repeatable process (including testing). Potentially shippable product -> Keeping the product releasable
  15. .
  16. Testing criteria. Run over and over again.
  17. .
  18. No DTAP. Immutable (testing framework?) TTL Docker Framework to allow restart - select arbitrary test
  19. Building the thing right Building the right thing
  20. Unit + Integration โ€“ level of microservices.
  21. .
  22. 100% coverage? Test your unit tests. Know exactly what is broken. Feature toggling.
  23. Connect units together How parts of application work together Feature toggling. Mock or not to mock
  24. Black box testing. How service works as a whole. Different integrations โ€“ pub/sub, request/reply. Feature toggling. Mock or not to mock
  25. Proof we are still on track Not only selenium Focus on: business flows personas, user journeys BDD + DSL? Data independency Feature toggling, page objects Mock or not to mock
  26. Communication โ€“ via contracts
  27. * Semantic or not semantic * API versioning - public or also internal? * Transition between versions โ€“ testing different versions * Running several versions together
  28. * Semantic or not semantic * API versioning - public or also internal? * Transition between versioning โ€“ testing different versions * Running several versions together
  29. * Semantic or not semantic * API versioning - public or also internal? * Transition between versioning โ€“ testing different versions * Running several versions together
  30. * Semantic or not semantic * API versioning - public or also internal? * Transition between versioning โ€“ testing different versions * Running several versions together
  31. * Semantic or not semantic * API versioning - public or also internal? * Transition between versioning โ€“ testing different versions * Running several versions together
  32. Testing in production Canary Dark launch Real users, not synthetic transactions Security testing Availability testing Resilience testing
  33. .
  34. .
  35. .
  36. .
  37. .
  38. .
  39. Unit + Integration โ€“ level of microservices. Unit + Integration โ€“ inside Contract + E2E - outside The same testing is needed for monolith, but crucial for microservices.