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.

Test Automation in the Microservices Oriented Enterprise by Shawn Wallace

559 views

Published on

Test Automation in the Microservices Oriented Enterprise by Shawn Wallace

Published in: Technology
  • Be the first to comment

Test Automation in the Microservices Oriented Enterprise by Shawn Wallace

  1. 1. Test Automation in the “Microservices” Oriented Enterprise Shawn Wallace Architect, Centric Consulting
  2. 2. I’m Shawn
  3. 3. I’m Shawn Favorite Movie
  4. 4. I’m Shawn My dog Favorite Movie
  5. 5. I’m Shawn My dog My Son Favorite Movie
  6. 6. I’m Shawn My dog My Son My Daughter Favorite Movie
  7. 7. I’m Shawn My dog My Son My Daughter My Family Favorite Movie
  8. 8. I’m Shawn My dog My Son My Daughter My Family I live here Favorite Movie
  9. 9. I’m Shawn My dog My Son My Daughter My Family I live here Favorite Movie I a MarineVet
  10. 10. I’m Shawn My dog My Son My Daughter My Family I live here I went to Ohio State Favorite Movie I a MarineVet
  11. 11. I’m Shawn My dog My Son My Daughter My Family I live here I went to Ohio State Where I work Favorite Movie I a MarineVet
  12. 12. What I got for Valentine’s Day
  13. 13. I’m a Developer…
  14. 14. Microservices
  15. 15. How did we get here?
  16. 16. Monolithic Applications
  17. 17. Monolithic Applications Orders
  18. 18. Monolithic Applications Invoicing Inventory Logging Profiles Warehouse Orders
  19. 19. Monolithic Applications Invoicing Inventory Logging Profiles Warehouse Orders
  20. 20. Monolithic Applications Invoicing Inventory Logging Profiles Warehouse Orders Time To Build
  21. 21. Monolithic Applications Invoicing Inventory Logging Profiles Warehouse Orders Time To Build Size of Codebase
  22. 22. Monolithic Applications Invoicing Inventory Logging Profiles Warehouse Orders Time To Build Time To Test Size of Codebase
  23. 23. Monolithic Applications Invoicing Inventory Logging Profiles Warehouse Orders Time To Build Time To Test Size of Codebase We are getting better at writing code than getting it into production.
  24. 24. Service Oriented Architecture (SOA) Orders Invoicing Inventory Logging Profiles Warehouse
  25. 25. Orders Invoicing Inventory Logging Profiles Warehouse Service Oriented Architecture (SOA)
  26. 26. Orders Invoicing Inventory Logging Profiles Warehouse Service Oriented Architecture (SOA)
  27. 27. Orders Invoicing Inventory Logging Profiles Warehouse Tightly Coupled Service Oriented Architecture (SOA)
  28. 28. Loosely Coupled Orders Invoicing Inventory Logging Profiles Reporting Event Bus
  29. 29. Service Based Architecture • No point-to-point integrations • Loosely coupled, highly scalable systems • Loosely coupled, TEAMS • Easier to test • Easier to change • Topology agnostic
  30. 30. Easy to Integrate New Systems Orders Invoicing Inventory Logging Profiles Reporting Event Bus
  31. 31. Easy to Integrate New Systems Orders Invoicing Inventory Logging Profiles Reporting Event Bus New System
  32. 32. Scales Orders Invoicing Inventory Logging Profiles Reporting Event Bus
  33. 33. Inventory Inventory Inventory Scales Orders Invoicing Inventory Logging Profiles Reporting Event Bus
  34. 34. Other benefits • Ease of 3rd party integration • Existing systems can be ‘wrapped’ • Can be deliberate about scaling • Fault tolerant • Event messages can be logged and ‘replayed’ • Can test subsystems in isolation
  35. 35. DevOps is a Real Thing
  36. 36. Engineering Quality Assurance IT Operations
  37. 37. Engineering Quality Assurance IT Operations Tension
  38. 38. IT Operations Quality Assurance Engineering
  39. 39. IT Operations Quality Assurance Engineering DevOps
  40. 40. …that you might need to develop
  41. 41. …that you might need to develop • Technical in nature • Http Verbs (POST, GET, PUT, PATCH, DELETE, OPTIONS) • Http Headers • ReST • API • More about networking than you would like • Oh, and you still need to know the business
  42. 42. Once you have developed these skills, a whole new world of testing capability becomes available to you.
  43. 43. Easy to Test
  44. 44. Easy to Test 80-90% 5-15% 1-5%
  45. 45. • Deliberately test your system at the physical boundaries • Know what your system does and how it works • Collaborate! Collaborate! collaborate!
  46. 46. • Deliberately test your system at the physical boundaries • Know what your system does and how it works • Collaborate! Collaborate! collaborate!
  47. 47. • Deliberately test your system at the physical boundaries • Know what your system does and how it works • Collaborate! Collaborate! collaborate!
  48. 48. Terminology
  49. 49. Terminology • Messaging • Contracts • Messaging Infrastructure • Asynchronous • Loosely Coupled • “Edge” Testing • Mocks/Fakes • Dynamic Scaling • Data Consistency, Master Data Management
  50. 50. • Messaging • Contracts • Messaging Infrastructure • Asynchronous • Loosely Coupled • “Edge” Testing • Mocks/Fakes • Dynamic Scaling • Data Consistency, Master Data Management Orders Invoicing Inventory Logging Profiles Reporting Event Bus Terminology
  51. 51. • Messaging • Contracts • Messaging Infrastructure • Asynchronous • Loosely Coupled • “Edge” Testing • Mocks/Fakes • Dynamic Scaling • Data Consistency, Master Data Management Orders Invoicing Inventory Logging Profiles Reporting Event Bus Terminology
  52. 52. • Messaging • Contracts • Messaging Infrastructure • Asynchronous • Loosely Coupled • “Edge” Testing • Mocks/Fakes • Dynamic Scaling • Data Consistency, Master Data Management Orders Invoicing Inventory Logging Profiles Reporting Event Bus Terminology
  53. 53. • Messaging • Contracts • Messaging Infrastructure • Asynchronous • Loosely Coupled • “Edge” Testing • Mocks/Fakes • Dynamic Scaling • Data Consistency, Master Data Management Orders Invoicing Inventory Logging Profiles Reporting Event Bus Terminology
  54. 54. Terminology • Messaging • Contracts • Messaging Infrastructure • Asynchronous • Loosely Coupled • “Edge” Testing • Mocks/Fakes • Dynamic Scaling • Data Consistency, Master Data Management Orders Invoicing Inventory Logging Profiles Reporting Event Bus
  55. 55. Terminology • Messaging • Contracts • Messaging Infrastructure • Asynchronous • Loosely Coupled • “Edge” Testing • Mocks/Fakes • Dynamic Scaling • Data Consistency, Master Data Management Orders Invoicing Inventory Logging Profiles Reporting Event Bus
  56. 56. Terminology • Messaging • Contracts • Messaging Infrastructure • Asynchronous • Loosely Coupled • “Edge” Testing • Mocks/Fakes • Dynamic Scaling • Data Consistency, Master Data Management Orders Fake Consumer
  57. 57. Terminology • Messaging • Contracts • Messaging Infrastructure • Asynchronous • Loosely Coupled • “Edge” Testing • Mocks/Fakes • Dynamic Scaling • Data Consistency, Master Data Management Orders Invoicing Inventory Logging Profiles Reporting Event Bus
  58. 58. Terminology • Messaging • Contracts • Messaging Infrastructure • Asynchronous • Loosely Coupled • “Edge” Testing • Mocks/Fakes • Dynamic Scaling • Data Consistency, Master Data Management Orders Invoicing Inventory Logging Profiles Reporting Event Bus Inventory Inventory Inventory
  59. 59. Terminology • Messaging • Contracts • Messaging Infrastructure • Asynchronous • Loosely Coupled • “Edge” Testing • Mocks/Fakes • Dynamic Scaling • Data Consistency, Master Data Management
  60. 60. Testing Approaches
  61. 61. Use your web browser • Can only execute un-authenticated GET requests • Can only access web clients • Hard to set headers
  62. 62. Use a web “sniffer”
  63. 63. Use a web “sniffer” • Fiddler - more granularity, more technical http://www.telerik.com/fiddler
  64. 64. Use a web “sniffer” • Fiddler - more granularity, more technical http://www.telerik.com/fiddler • Postman - more friendly user interface https://www.getpostman.com
  65. 65. Use a functional testing tool
  66. 66. Shawn Wallace shawn.wallace@centricconsulting.com @ShawnWallace http://blog.shawnewallace.com http://www.about.me/shawnwallace This Presentation

×