Test-Driven Development (TDD) is a software development process that relies on the repetition of a very short development cycle. Developers write an automated test case that defines a desired improvement or new function, then produce the minimum amount of code to pass that test, and finally refactor the new code