Some say test-driven development may work well initially, but as soon as we start to refactor our code, it breaks old tests and requires us to write new ones. This is not the fault of TDD; it’s the way we’re using it. TDD remains a valuable way to verify code as we write it, so we need to repair our test-driven damage.