Звучит как вся петля красно-зелёного рефактора. То есть TDD - это - что-то вроде - в этом переписывании интерфейсов. Это делает их стройными и точными. Как только вы освоите TDDing и напишите свои тесты, ориентированные на интерфейс, и сделаете ваши объекты небольшими, вы не увидите больших изменений, если не наткнетесь на что-то непредвиденное и должны адаптироваться, что является моментом гибкости ( надеюсь, почему ты TDDing)
Звучит так, будто вы определяете целые интерфейсы за один раз. Что было бы неправильно. Один тест должен генерировать одну функцию в интерфейсе, и это ожидаемое поведение. Ваш интерфейс будет расширяться вместе с набором тестов, что сводит к минимуму дальнейшее исправление ошибок.