Итак, вы слышали это много раз от тех, кто по-настоящему не понимает ценности тестирования. Просто для начала, я последователь Agile и тестирования ...
Недавно у меня была дискуссия о выполнении TDD для переписывания продукта, где текущая команда не практикует модульное тестирование на каком-либо уровне и, вероятно, никогда не слышала о методике внедрения зависимостей или шаблонах тестирования / дизайне и т. Д. (Мы даже не получим на чистом коде).
Теперь я несу полную ответственность за переписывание этого продукта, и мне сказали, что попытка его в стиле TDD просто сделает его кошмаром обслуживания и невозможным для команды. Кроме того, поскольку это интерфейсное приложение (не веб-приложение), добавлять тесты бессмысленно, так как бизнес-драйв меняется (под изменениями подразумеваются улучшения, конечно), тесты устаревают, другие разработчики, которые приходят к проект в будущем не будет поддерживать их и станет для них бременем, требующим исправления и т. д.
Я могу понять, что TDD в команде, которая в настоящее время не имеет опыта тестирования, звучит не очень хорошо, но мой аргумент в этом случае заключается в том, что я могу преподавать свою практику окружающим, но, кроме того, я знаю, что TDD делает ЛУЧШЕ програмное обеспечение. Даже если бы я должен был производить программное обеспечение с использованием TDD и отбросить все тесты при передаче его команде по техническому обслуживанию, это, безусловно, будет лучшим подходом, чем вообще не использовать TDD с самого начала?
Меня сбили с толку, поскольку я упоминал, что делал TDD в большинстве проектов для команды, которая никогда не слышала об этом. Мысль об «интерфейсах» и странно выглядящих конструкторах DI отпугивает их ...
Может ли кто-нибудь помочь мне в том, что обычно является очень коротким разговором о попытке продать TDD и мой подход к людям? У меня обычно очень короткое окно для споров, прежде чем я становлюсь на колени перед компанией / командой.