Статическая типизация заменяет наверно половину юнит-тестов, если не больше. Как мы делаем рефакторинг в делфи? Изменяем нужный класс, потом запускаем компиляцию, видим список ошибок в других юнитах в самых неожиданных местах. Идем туда и смотрим как исправить в соответствии с изменениями в отрефакторенном классе.
В языках с динамической типизацией такой роскоши нет. Единственный способ более-менее убедиться, что твои изменения ничего не поломали - это запустить юнит-тесты.
Надо с самого начала внедрять. Покрытие уже готового старого года юнит-тестами - это адский труд.
Более того в языках с динамической типизацией не возможно выполнять рефакторинг, либо он приводит к непредсказуемым последствиям.