“TDD is software development process relying on software requirements being written as test cases before real code is written” But this definition can change for you. I use TDD to organize my code and to make my code conform to solid principles. And of course, we are working with development teams in our companies .