--- tags: - tdd - software-design - software-engineering --- Test Driven Development (or Design) is a software engineering paradigm where one starts off with writing a failing test (suite) and from there tries to implement code to ultimately make the test succeed. It is mainly divided into three styles: - [[Detroit-style TDD]] - [[London-style TDD]] - [[Discovery Testing]] [[Conway's Law]]