1. Test double are very good substitutes for Mock. Mocking has a big learning curve and makes it difficult for people new to TDD to adopt it.
2. Design meetings can be used to make software more testable and better.
3. Database based tests can be made faster by having subset of dataset.
4. We need separate libraries for Unit and Integration Tests
5. Open/Close principle can reduce regression testing