I got asked the question “When do I stop testing in order to get stuff done?” My answer was “I go faster doing TDD.” Here's why I get more done with TDD.

It forces me to think through the problem. This allows me to tackle the programming problem and solve it more quickly.

I can define the behavior. I can determine the inputs and outputs and any other behavior related to the function I'm writing.

I know it works when I'm done.

I know when I'm done. (All the tests pass.)

It provides a challenge I can focus on. I love a challenge and it gives me that sort of strong direction.

If you have trouble getting things done and getting tests in, you need to practice. You need to get used to working with tests and testing frameworks. The more you do it the better you are and the more it becomes integrated into your routine.

Learn your tool. The better you understand what it can and can't do, the better and quicker tests you'll write.

Only test what you need to test. You don't need to cover the entire code stack. Just the limited set of code that solves your problem.