Best Practices for Test Driven Development