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