
Буду первым.
Холиварить не хочу.
С краткой теорией TDD знаком. Против нее ничего не имею.
Но хотельсь бы услышать коментарии специалистов по такому моменту:
Есть некая Программа обладающая по мнению Программиста1 функциями A и B.
Программист1 покрывает эти функции тестами. Ок.
Программист1 решил внести функцию C. Соответственно подготовил тест, реализовал C. Прошел тесты для A, B и C.
Все вроде бы хорошо, но Программист1 не учел (потому что не знал), что Программа обладает еще и
функцией D, которая поломалась из-за C.
С точки зрения теории TDD, кмк, этого бы не произошло если бы Программист1 писал Программу начиная с ХелоуВорд.
Но в нашем примере это не так - был еще и Программист0.
Как избежать подобных проблем? Какие есть теории?
Стоит ли вообще полагаться на тесты?
Стоит ли большую часть времени разработки тратить на разработку теста, если вдруг окажется что тесты врут?
Или может нужно смотреть гораздо шире тестов и пытаться разумом и/или интуицией охватить последствия внесения функции C ?