Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Continuous Testing with Containers - 2020

144 views

Published on

Containers. Every manager thinks they want them, but few teams have experience in knowing what to DO with them. Used thoughtfully, containerization of your services can transform the way your organization thinks about testing. Gone can be the days of maintaining X different compute environments with Y different configurations. Imagine instead spinning up just the code you need, on the machine type it needs, and only for as long as you need it.

In this technical talk, Melissa will walk through what containerization means for a legacy code base attempting to practice continuous integration and deployment, and provide key insight in to the sea change this provides for a testing organization. Learn from practical, real-world examples about how testing practices and pipelines can be streamlined to take advantage of the ad-hoc world of containerization. Come away with a real integration test plan that can reduce your cycle times by an order of magnitude while increasing overall product quality. Unlock the power of testing… with containers!

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Continuous Testing with Containers - 2020

  1. 1. Melissa Benua / Director of Engineering Continuous Testing With Containers EUROPEAN TESTING CONFERENCE 2020
  2. 2. ABOUT ME Melissa Benua Director of Engineering, DevTestSecOps mParticle Get in touch! mbenua@gmail.com @queenofcode Follow my work! https://www.linkedin.com/in/mbe nua/ https://www.slideshare.net/Meliss aBenua/ https://github.com/queen-of- code/ https://queenofcode.net @QUEENOFCODE
  3. 3. ABOUT THE TALK @QUEENOFCODE WHAT IS A CONTAINER? WHAT IS CONTINUOUS INTEGRATION? WHAT IS THE CHANGE PROCESS? HOW DOES THIS AFFECT TESTING?
  4. 4. WHY DOES IT MATTER? +300% faster time to market -70% time remediating issues +1300% developer productivity @QUEENOFCODE
  5. 5. CONTAINERS 101 – LAYERS! Supporting Services Application Code + Config OS Image @QUEENOFCODE
  6. 6. ORCHESTRATI ON • From ‘container’ to ‘containers’ • Service health • Service discovery • Scale up / scale down @QUEENOFCODE
  7. 7. CONTAINER STACKS @QUEENOFCODE My Website Code Windows 10 ASP.Net Runtime MySQL Alpine Linux Shared Data Volume My API Code Ubuntu dotnet runtime
  8. 8. STOP! EXAMPLE TIME @QUEENOFCODE
  9. 9. WHAT IS CONTINUOUS DELIVERY? 1. Track Work Ensure the right change is being made 2. Write Code + Tests Keep prod and test code together in source control 3. Request a Peer Review Automated system to run build + unit test + static 6. Monitor Change in Prod Ensure nothing unexpected happened with the change 5. Merge Peer Review Land code + tests together for deployment 4. Deploy Change for Testing Validate the change works in a prod-like@QUEENOFCODE
  10. 10. TEST ENVIRONMENT PROBLEMS Data Hygiene Suitable build versions Machine maintenanc e and upkeep Availability Similarity to production Capacity @QUEENOFCODE
  11. 11. PEER REVIEW FLOW @QUEENOFCODE
  12. 12. TEST PYRAMID @QUEENOFCODE 01 Unit Tests 02 Integration Tests 03 Specialty Tests
  13. 13. UNIT TEST GUIDELINES Does not cross application boundaries Should support parallelism Textual `Input -> Output` validation Does NOT leave the box @QUEENOFCODE
  14. 14. INTEGRATION TESTS Crosses application boundaries Does not require manual intervention Simple `Input -> Output` validation Follows user stories @QUEENOFCODE
  15. 15. SPECIALTY TESTS Crosses many boundaries Requires manual intervention or setup Complex validation Validates non-functional scenarios @QUEENOFCODE
  16. 16. TEST ENVIRONMENTS @QUEENOFCODE Build under test Configuration under test Test data Machine OS version
  17. 17. Prod / QA – The Cloud Development – Local Box RECIPE APP ENVIRONMENTS @QUEENOFCODE UI ASP.Net dotnet core 3 Linux Backend ASP.Net dotnet core 3 Linux MySQL Azure-Hosted DynamoDB AWS-Hosted UI ASP.Net dotnet core 3 Linux Backend ASP.Net dotnet core 3 Linux MySQL Linux DynamoDB AWS Metadata Linux
  18. 18. RECIPE APP EXAMPLE @QUEENOFCODE Web UI MySQL Auth API DynamoDB Objects Alexa Skill Lambda Translator
  19. 19. WHAT DO YOU NEED? @QUEENOFCODE •Local container •QA/Staging •Production Control the environment being hit simply •Local data storage •Database rebuild + update scripts Strong test data management
  20. 20. HTTPS://GITHUB.COM/QUEEN-OF- CODE/ALEXA-RECIPE-APP @QUEENOFCODE
  21. 21. Thank you! GET IN TOUCH! MELISSA BENUA MBENUA@GMAIL.COM TWITTER: @QUEENOFCODE HTTPS://QUEENOFCODE.NET

×