TDD - не удовольствия ради, а пользы для.

TDD или же test driven development - это такой подход в разработке ПО, когда ты настолько преисполнился в своем познании, что явно представляешь требуемое решение. И хакая вселенную ты сперва пишешь тест на то, чего еще нет, а потом реализуешь это нечто, пытаясь сделать так, чтобы тест стал зеленым. Это если кратко.

Не могу сказать, что я приверженец тестирования как такового, а уж тем более достаточно экзотических, на мой взгляд, методов разработки. Но случилось так, что я, сам того не осознавая, пришел к TDD и смог явно увидеть места, где я получаю реальный буст от его использования.

Вот что мне удалось выявить - TDD мощно бустит скорость и качество отдельной фичи в тех случаях, когда фича является типовой. В моем случае примером типовой фичи служит добавление в Duit реализации нового типа виджета. Каждый новый виджет - это композиция уже готовых супер-классов, миксинов и интерфейсов, а это значит, что сценарии тестирования для 85% виджетов будут очень и очень похожи. Разве что будем проверять соотвествие разных свойств для разных виджетов.

Итак, вот к чему я веду - TDD классно работает уже на "перекопанной грядке", где ясны большинство corner-case. Если бы я начал заниматься подобным при старте проекта, то гарантированно потерял бы кучу времени. Поэтому если я не могу за 5-10 минут накидать основные тестовые сценарии, значит мне не так уж и нужно - лучше сосредоточиться непосредственно на фиче. Первым делом, первым делом разработка, ну а тестики, а тестики потом)

repost

78

input message

напишите коммент

· 20.01

Интересное наблюдение! Действительно, TDD раскрывает свою силу именно там, где структура уже устоялась, а сценарии тестирования повторяются. В таких условиях он помогает ускорить процесс и повысить надёжность кода.

Согласен, что на старте проекта TDD может скорее тормозить разработку, чем помогать, особенно если требования и архитектура ещё не до конца сформированы. Тут важен баланс: если тесты пишутся слишком рано, есть риск потратить время впустую, но если слишком поздно – можно столкнуться с неприятными сюрпризами.

В итоге TDD – инструмент, а не догма. Главное – понимать, где он реально приносит пользу, а где лучше сосредоточиться на самой разработке. Хороший подход!

ответить

· 20.01

Самые большие затраты на тесты в начале, когда надо заложить основы, подготовить генераторы данных, написать первые тесты с которых потом можно копировать кусочки. Но пройдя этот этап, становится значительно проще. Особенно неприятно писать тесты когда всё уже сделал и сам проверил. В этот момент, кажется, что от тестов толку и не будет. :)

Когда есть инфраструктура и наборы тестов с которых можно копировать, то и следовать практикам TDD или близкому к этому становится не очень сложно.

ответить

еще контент в этом сообществе

еще контент в этом соообществе

войдите, чтобы увидеть

и подписаться на интересных профи

в приложении больше возможностей

пока в веб-версии есть не всё — мы вовсю работаем над ней

сетка — cоциальная сеть для нетворкинга от hh.ru

пересекайтесь с теми, кто повлияет на ваш профессиональный путь