ты же понимаешь, что поддерживать один и тот же API неизменным технически невозможно при условии развития софта? Это безотносительно Анрила. Например, в semver подразумевается, что при апдейте мажорной версии возможны breaking изменения
Автоматические тесты люди в программировании придумали для того чтобы при изменениии или реализации другим методов ничего по итогу не поломалось. Это только минимум из того что могу сказать о тестах, говорить о них могу долго так как программист я постоянно их пишу на коммерческих проектах.
Покрыть тестыми все методы разработчиками которые их разрабатывают, не вижу в этом проблем
Если метод меняет своё предназначание или допустим класс, значит надо подумать о не правильно архитектуре или проблеме в архитектуре.