Instructor-Led | Virtual or In-Person | 1 Full or 2 Half-Days | 25 Participants → Technical

Full-Stack Microservices Testing (003)


Description

Software development is trending toward functionally decomposing systems into small, independently deployable microservices. Microservice architectures align well with DevOps practices and agile methodologies because they make it easier to create and deploy new increments of the system early, frequently, and continuously, with minimal to no service interruption. But how do microservices affect software testing and testability? Are there new testing challenges that arise from this paradigm? Or are they simply old challenges disguised as new ones? In this course, I'll introduce you to strategies for testing microservice-based architectures, including the benefits and drawbacks of microservices as they testing and testability. I'll walk you through a full-stack approach to testing microservices as part of the hands-on project. Whether you're already using microservices or just considering making the shift, your journey from monolith to microservices begins here.

Content
  • Course Introduction
  • Introductions
  • Course Goals
  • Introduction to Microservices
  • Definition
  • Characteristics
  • Motivation: Why Microservices?
  • Structure and Behavior
  • Communication
  • Event Sourcing and CQRS
  • Hands-On: Project First Look
  • Architecture and Technology Stack
  • Introduction to Docker
  • Docker Cheatsheet
  • Spinning up the Microservices
  • Service Discovery and Readiness
  • Microservices Testing and Testability
  • The Good, the Bad, and the Reality
  • Microservices Testing Pyramid
  • Hands-On: Class-Level Unit Testing within Microservices
  • Class Isolation: Solitary vs. Sociable Unit Testing
  • Unit Testing the Transactions Controller
  • Guidance on Writing Good Unit Tests
  • Hands-On: Microservice-Level Unit Testing
  • Microservice Isolation
  • Unit Testing the AccountCmd Service in Isolation
  • Re-testing AccountCmd with its Database Connected
  • Guidance on When and When Not to Mock
  • Hands-On: Contract Testing
  • Contracts vs. Defensive Design
  • Testing Each Side in Isolation
  • Testing Consumer with Provider
  • Introduction to PACT
  • Generating and Running Pacts
  • Guidance on Consumer-Driven Contract Testing
  • Hands-On: Service Integration Testing
  • Integration Test Ordering
  • Neighborhood Integration
  • Pairwise Integration
  • END-TO-END API TESTING AND SYSTEM TESTING
  • RESTful API Testing Tools
  • End User Testing
  • Performance Testing
  • Security Testing
  • Monitoring, Operations, and Shift-Right Testing
  • Testing vs. Monitoring
  • Automation and Pipeline-Driven Organizations
  • Testing in Production
  • Course Wrap Up
  • Lessons Learned
  • Future Directions
Completion rules
  • All units must be completed