Microservices for Mortals by Bert Ertman at Codemotion Dubai
Testing in the era of microservices - Codemotion meetup - Amsterdam, 12-04-2016
-
Upload
pavel-chunyayev -
Category
Software
-
view
270 -
download
1
Transcript of Testing in the era of microservices - Codemotion meetup - Amsterdam, 12-04-2016
Testing in the era of microservices
The role of testing in the microservices application lifecycleCodemotion meetup, 12-04-2016Container Solutions, Amsterdam
Pavel Chunyayev
@PavelChunyayev
Amsterdam
Levi9 HQAmsterdam – 2005
25 people
Novi Sad
SerbiaNovi Sad – 2005
320+ people
Zrenjanin
SerbiaZrenjanin– 2014
30+ people
Iasi
RomaniaIasi – 200780+ people
Kiev
UkraineKiev – 2008130+ people
@PavelChunyayev
Electronic Retail
DigitalMarketing
Traffic and Transport
Software Services
@PavelChunyayev
Customer satisfaction 2015
• 4th year great results in Outsourcing Performance study
• 2015: 100% customer recommendation scoreExcellent 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 releasableBuild quality in
@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
Testing pyramid
Exec
ution
tim
e
Mor
e bu
sines
s fee
dbac
k
Mor
e de
velo
pmen
t fee
dbac
k
@PavelChunyayev
Pyramid vs microservice
@PavelChunyayev
Integration testing
@PavelChunyayev
Contract testing
@PavelChunyayev
End-to-end testing
@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
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 releasableBuild quality in
@PavelChunyayev
Key takeaways• Update testing practices• Immutable infrastructure• Reproducible and repeatable testing• Build quality in• Improve continuously
Any questions?