Книга "Robert C Martin", написанная Майклом Фезерсом (в наши дни "Дядя Боб", кажется, является торговой маркой!), Обязательна.
Практически невозможно - не говоря уже о безумно больших затратах времени - внедрить модульные тесты в приложение, не разработанное с их помощью. Код просто не будет доступен.
Но это не проблема. Рефакторинг - это изменение дизайна без изменения функций (надеюсь, я не слишком сильно повредил смысл), чтобы вы могли работать гораздо шире.
Начните с больших кусков. Установите повторяемое выполнение и запишите, что произойдет, как ожидаемый результат для последующих выполнений. Теперь у вас есть приложение или, по крайней мере, его часть, в процессе тестирования. Конечно, это не очень хороший или всеобъемлющий тест, но это только начало, и от этого дела могут только улучшиться.
Теперь вы можете начать рефакторинг. Вы хотите начать извлекать код доступа к данным, чтобы его можно было заменить функциональностью ORM без особых проблем. Часто тестируйте: с устаревшими приложениями вы будете удивлены, что ломается; сплоченность и сцепление редко бывают такими, какими они могут быть.
Я бы также подумал о том, чтобы посмотреть на Рефакторинг Мартина Фаулера , который, очевидно, является окончательной работой над процессом.