Ответ 1
Начните с Эффективно работайте с устаревшим кодом.
Это не TDD, если вы начинаете с устаревшего кода, но все ваши кодировки могут быть TDD. Когда вы решаете новую проблему, напишите для нее тест. Если вы не можете, потому что устаревшие классы слишком сложны для тестирования, тогда начните писать тесты для них, вырезать биты и покрывать биты тестами.
Реорганизовать низко висящие фрукты.
Чтобы избежать повторения дефектов: с учетом примера дефекта, напишите тест, который его демонстрирует. Это может быть относительно широкий тест, который просто имитирует активность пользователя; еще не unit test. Убедитесь, что тест завершился неудачно. Сделайте свое исследование; выяснить, почему тест терпит неудачу. Теперь - это важно - прежде чем исправлять ошибку, напишите unit test, который демонстрирует ошибку. Исправьте ошибку, и теперь у вас есть два теста, по крайней мере один из них быстро, которые защищают вас от регрессий.