A presentation that explains end-to-end testing, why it's useful, some strategies for doing it, and a tool to make your life easier when creating testing doubles of external services.
and fails sometimes, without any noticeable change in the code, tests, or environment. Such tests fail, then you re-run them and they pass. Test failures for such tests are seemingly random.”
detection by acting as regression tests • E2E give confidence to make big changes with broad impact • When NDT fail, you don’t know if you screwed up, or if that’s just part of the test’s behaviour.
3rd party service, you have introduced a large point of failure • 3rd party system might not have a test instance, might be unreliable, slow, or unstable • Your tests are dependent on infrastructure you can’t control in any way
external services that communicate with your application 2. Instruct your application to connect to chameleon’s host:port instead of the external service 3. Make a request to your application that will communicate with the external service 4. Let chameleon do its thing and continue as normal 5. Check in responses to your source control to have deterministic tests