главная новое лучшее написать
2

Ответ спасен из Яндекс.Кью

Зависит от предметной области и, как ни странно, от языка программирования (редко что в серьезном программировании так сильно зависит от языка).

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

Если вы пишете на Питоне или JavaScript, TDD тоже может пригодиться, но по другим причинам: большое количество тестов в этом случае будут аналогом "компиляции", т.е. достаточно рано (раньше, чем до соответствующего кода доберутся тестировщики или пользователи) спасут вас от банальных опечаток, перепутанного порядка аргументов и тому подобных простых ошибок.

Если же вы занимаетесь, например, machine learning-ом, или, наоборот, пишете какой-то очень простой код, склеивающий между собой вызовы сложных внешних систем, то TDD вам совершенно не пригодится, только время потратите.

В целом я считаю интеграционные тесты гораздо более полезными, нежели изолированные (юнит-, например). Соответственно, мне всегда нравился другой подход к разработке, упирающий, в отличие от TDD, именно на интеграционные тесты. Я напишу о нем в отдельном посте.