We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Building Operable Software with TDD (but not the way you think) - Martin Thwaites - NDC London 2023
Discover a new approach to Test-Driven Development (TDD) that prioritizes operability, observability, and context to ensure your software thoroughly meets business requirements and behaves as expected.
- Building operable software means making sure it runs in production environments and meets business requirements.
- TDD should be used to test the entire application, not just individual classes.
- Observability is crucial for understanding the internal state of a system, and should be built into applications.
- Context is important for understanding what code does, and should be provided in test names.
- Tests should be written from the outside in, starting with the consumer’s perspective.
- The goal of testing is to make sure the application behaves as expected, not to prove that it works.
- Don’t test individual methods or classes in isolation; test the entire application as a whole.
- Use business language in tests to make them more readable and understandable.
- Don’t reuse code or classes in main assemblies; instead, create separate test assemblies.
- Use in-memory exporters to speed up testing and make it more efficient.
- TDD is not just about writing tests; it’s about writing tests that are readable, understandable, and provide context.
- Tests should be written to provide a safety net for the application, not just to prove that it works.
- Don’t use asserts to test individual conditions; instead, test the entire application as a whole.
- Observability is not just about metrics or traces; it’s about understanding the internal state of a system.
- Context is important for understanding what code does, and should be provided in test names.
- Tests should be written to provide a safety net for the application, not just to prove that it works.