Agile2019 has ended
Wednesday, August 7 • 15:45 - 17:00
Software contracts or: how I learned to stop worrying and love releasing. (Seb Rose) popular

Sign up or log in to save this to your schedule, view media, leave feedback and see who's attending!

Limited Capacity seats available

The test automation pyramid suggests that we should favour unit and integration tests over end-to-end tests, which leads developers to use test doubles (fakes, stubs, mocks etc.). The risk is that the developer's test double does not behave in exactly the same way as the actual component that it is replacing. When this happens, the tests all pass in your build pipeline, but you get failures when it's released into an integration (or production) environment.
Contract testing is a technique that can give you confidence that your test doubles are accurately simulating the dependencies that they replace. This is not a new technique, but the extra investment in creating and maintaining (yet another) suite of tests has restricted its uptake. Instead, organizations mitigate the risks by investing in more and more integration environments and end-to-end tests. This was always expensive, but with the adoption of micro-service architectures across the industry, the cost and complexity has escalated to a point where this approach is no longer sustainable.
There is now an urgent need for organizations to revisit contract testing, with a specific focus on consumer driven contracts for micro-services. This need led to the creation of the Pact open source tool for HTTP based micro-services. The Pact project has created a multi-platform suite of tools that dramatically simplifies the adoption of contract testing.
In this session, you'll learn why contract testing is critically important, look at how you can incorporate contract testing in your development practices, and get an introduction to Pact.

Learning Outcomes:
  • Describe what contract testing is (using a high-level schematic of its operation) and how it enables teams to stick to the test automation pyramid
  • Implement contract testing from first principles without the use of frameworks (with an example in Java)
  • Demonstrate the challenges of continuous delivery for a family of integrated micro-services, and how consumer driven contracts can simplify matters
  • Show how PACT and PACT Broker can help teams adopt contract testing for HTTP-based micro-services, while acknowledging its limitations
  • Presentation History:


avatar for Seb Rose

Seb Rose

BDD Advocate, SmartBear
Consultant, coach, trainer, analyst, and developer for over 30 years.Seb has been involved in the full development lifecycle with experience that ranges from Architecture to Support, from BASIC to Ruby. He’s a BDD Advocate with SmartBear, helping people integrate all three practices... Read More →

Wednesday August 7, 2019 15:45 - 17:00 EDT
Chesapeake 4/5/6