Behavior Driven Development in a complex environment – Consumer Driven Contracts

Prelegent: Remigiusz Dudek

Our software becomes more complex with every iteration we spent on it. There are new systems we need to integrate with or if you’re working in microservice eco-system there are dozens of new services in your environment every week (especially at the beginning the growth is rapid). When it comes to testing entire system on end-2-end basis, so far it seemed we had only 2 choices:

  1. Deploy the system with a prod-like configuration (with all the collaborators) and perform heavy manual tests followed by heavy manual regression tests… but as Maynard James Keenanaas sings „Boredom’s not a burden anyone should bare” – anyone who’s been doing manual regression tests knows exactly what I (and Maynard ;-)) am talking about
  2. Deploy the system with a prod-like configuration (similarly as above) and automate all the end-2-end tests that will eventually end-up as a regression test suite

Consumer driven contract gives us a third option:

  1. Establish contracts with all the collaborators and test your service in isolation using contracts whenever it comes to contacting an external system, regardless of whether it is developed within the company or outside (I must admit that the former case requires some more orchestration on managerial level but it is doable)

This workshop will give you a hands-on experience. You will create two REST services integrated with each other, and implement an API change using consumer contracts. This approach will allow us to do the change in both services in separation, in a BDD style.