Объясните кто-нибудь смысл тестов
Предлагаю вам вопрос всей моей жизни после 1-го курса университета.
Тезис: тесты нужны чтобы не проверять код вручную, следовательно не тратить лишнее время.
Антитезис: для каждой новой реализации функции нужны новые тесты, то-есть тратится время, примерно эквивалентное на ручную проверку, после же подтверждения работоспособности функции проверка её не требуется, от чего написанные тесты становятся бесполезны, поскольку изменение рабочей функции не планируется (мы ведь модифицируем, а не изменяем).
Так какой же итог? Мне кто-нибудь когда-нибудь объяснит, как именно тесты сокращают рутину? (к слову я даже не приступал к их изучению, просто сложно изучать что-то, что заведомо считаешь бесполезным).