Abstract
A distributed system composed of multiple applications needs end-to-end testing to make sure the design contracts between the subsystems are respected, and as a form of last safety net to support Continuous Deployment.
End-to-end tests are usually a scam due to their slowness and brittleness. Here’s how we wrote fast Behat scenarios that can be verified while running in parallel. By employing time simulation, we were able to cover the evolution of users subscription in multiple countries and still maintain a test suite that can run at every new commit.